这个 iptables 规则是什么意思?

What does this iptables rule mean?

我在我正在从事的某个项目中发现了这个 iptables 规则:

-A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP

这条规则是什么意思?它如何使网络更安全?

可以由 "Drop every incoming segment that initialize a new TCP connection and where SYN control bit is not set among FIN,SYN,RST,ACK." 翻译(参见 here)。

用于初始化连接的 TCP 段应该设置 SYN 控制位,以便有规则来确保这一点。此外,我认为该规则避免使用不同的 port scan techniques 涉及未设置 SYN 控制位的段,如 ACK 扫描。它会静静地丢弃该段,而不是发送可能向潜在攻击者提供信息的 RST 段。