如果我想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 接受
而第二条规则不会阻止这样的数据包,因此安全性不如第一条。