仅允许 HTTPS、HTTP 和 Postgres 传出端口

仅允许 HTTPS、HTTP 和 Postgres 传出端口

我有 Ubuntu 服务器,并且我只想允许到以下任何 IP 的传出连接:

  • HTTPS
  • HTTP
  • Postgres

我想阻止所有其他端口。我还想查看从这些端口建立的连接,以便在需要时可以打开这些端口。

如何在 Ubuntu 18.04 上进行设置?

答案1

为传出连接设置的规则可能是:

# Allow establishing connections to desired set of services
sudo iptables -A OUTPUT -p tcp --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --dport 443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --dport 5432 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT

# Log any outgoing connection attempts
sudo iptables -A OUTPUT -m conntrack --ctstate NEW -m tcp -p tcp  -j LOG --log-uid --log-prefix="outgoing connection: "    

# Allow incomig traffic for established connections
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# set default policy to drop
sudo iptables -P INPUT DROP
sudo iptables -P OUTPUT DROP

如果需要,使用 ip6tables 添加 IPv6 规则。

我认为您仍然需要允许 ssh 访问才能访问主机。

**请注意:如果远程错误配置防火墙规则,您可能会被锁定!**

相关内容