如何仅允许使用 iptables 进行 ssh 和 Internet 访问?

dmx*_*dmx 2 server ssh iptables firewall

我只想在我的服务器上允许 Internet 访问(它对更新很有用)和 ssh。我发现了这组规则:

  sudo iptables -P INPUT DROP
  sudo iptables -P OUTPUT DROP
  sudo iptables -A INPUT -i lo -j ACCEPT
  sudo iptables -A INPUT -p tcp -m tcp --dport [port number] -j ACCEPT
  sudo iptables -A OUTPUT -o lo -j ACCEPT
  sudo iptables -A OUTPUT -p tcp --sport [port number] -m state --state ESTABLISHED -j ACCEPT
  sudo service iptables save
  sudo netfilter-persistent reload
Run Code Online (Sandbox Code Playgroud)

这运行良好,但我无法更新我的系统或访问互联网。我应该添加哪些规则以允许传出 Internet 连接?

270*_*974 10

开始吧

删除当前规则和链:

sudo iptables --flush
sudo iptables --delete-chain
Run Code Online (Sandbox Code Playgroud)

允许环回:

sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT
Run Code Online (Sandbox Code Playgroud)

掉落ICMP

sudo iptables -A INPUT -p icmp --icmp-type any -j DROP
sudo iptables -A OUTPUT -p icmp -j DROP
Run Code Online (Sandbox Code Playgroud)

允许建立的连接:

sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Run Code Online (Sandbox Code Playgroud)

允许SSH

sudo iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)

默认策略:

sudo iptables -P INPUT DROP
sudo iptables -P OUTPUT ACCEPT
Run Code Online (Sandbox Code Playgroud)

节省:

sudo iptables-save
Run Code Online (Sandbox Code Playgroud)

就是这个。我认为 :)