在 INPUT 链中检查 conntrack 状态的用途

在 INPUT 链中检查 conntrack 状态的用途

如果我想INPUT在我的服务器建议中添加防火墙规则,我看到的是执行以下操作(这里是端口 80,但可以是任何其他服务的知名端口)

iptables -A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT

这与

iptables -A INPUT -p tcp --dport 80 -j ACCEPT

INPUT即:由于服务器必须在端口 80 上处理任何请求,因此检查链中的连接状态有什么好处?

答案1

iptables -A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT

这将仅允许目标端口 80 上的新会话和已建立会话,并且不允许相关会话(由正在运行的另一个会话启动)和无效会话。因此,如果有人首先为新连接(例如 ACK 标志)使用非 SYN 标志,则此规则将被丢弃,服务器将为此发送重置,这最终(如果数量很大)可能会压垮服务器处理。现在,由于此规则丢弃了此类数据包,因此它更安全。

iptables -A 输入 -p tcp --dport 80 -j 接受

而第二条规则不会阻止这样的数据包,因此安全性不如第一条。

相关内容