我正在新的 Web 专用服务器上配置 iptables。规则非常简单:
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere tcp dpt:4567
ACCEPT tcp -- anywhere anywhere tcp dpt:https
ACCEPT tcp -- anywhere anywhere tcp dpt:http
Chain FORWARD (policy ACCEPT)
Chain OUTPUT (policy ACCEPT)
端口 4567 用于 SSH。第一个 INPUT 行用于具有环回接口的本地主机。我无法使用 apt-get install、update 或任何相关操作。
我试过在 Google 上找到的所有规则来解决这个问题,但都没有用,我试图接受端口 53、FTP,我弄乱了 ESTABLISHED RELATED 和其他东西,但似乎无法让它发挥作用。
如果您对要应用哪些规则有任何想法...
答案1
您可能需要开放 DNS 访问权限才能拥有正常运行的服务器。TCP 和 UDP 端口均为 53。否则,您将无法解析主机名(除非您拥有通过 DNS-over-HTTPS 转发的本地 DNS 服务器)。
您还需要使用该conntrack
模块来允许现有的连接,因为您本地的端口与远程的端口不同,并且不会匹配。
我对服务器的一般政策以及我在现任和前任雇主那里看到的政策是限制传入流量但不限制传出流量,除非有某些令人信服的理由(例如,阻止 NAT 盒上的端口 25)。您可以通过编写仅适用于 WAN 上的输入接口的规则来实现这一点。conntrack
不过,您仍然需要设置适当的处理。