如何通过 iptables 仅允许 ssh 和 internet 访问?

如何通过 iptables 仅允许 ssh 和 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

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

答案1

开始吧

删除当前规则和链:

sudo iptables --flush
sudo iptables --delete-chain

允许环回:

sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT

降低ICMP

sudo iptables -A INPUT -p icmp --icmp-type any -j DROP
sudo iptables -A OUTPUT -p icmp -j DROP

允许建立连接:

sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

允许SSH

sudo iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

默认策略:

sudo iptables -P INPUT DROP
sudo iptables -P OUTPUT ACCEPT

节省:

sudo iptables-save

就是这样了。我想:)

相关内容