我的 iptables 现在是这样的:
Table: filter
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:12001
2 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:12001
3 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 state NEW udp dpt:8989
4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:8989
5 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:8888
端口 8989 上的 STATE NEW 规则将允许新连接通过。但是,它会阻止端口 8989 上所有已建立的连接吗?
答案1
如果这是您的整个 INPUT 链,它不会阻止任何内容,因为 INPUT 策略是 ACCEPT 并且您没有 DROP 规则。
如果您想要一个正常运行的防火墙,您需要将 INPUT 策略更改为 DROP 或添加 DROP 规则。但是,是的,如果您这样做,您还需要一个规则来接受已建立的连接。您可以这样做:
iptables -I INPUT 1 -m state --state ESTABLISHED,RELATED -j ACCEPT
它接受所有已建立的连接作为第一个输入规则,这通常是合理的做法。
如果您通过 ssh 进行连接,请确保在添加 DROP 策略或规则之前,在您的 ssh 端口上接受新的和已建立的 tcp 连接。否则,您可能会把自己锁在外面。