使用“--syn”匹配新 TCP 连接的优点

使用“--syn”匹配新 TCP 连接的优点

iptables我在几个匹配新连接的示例中看到了类似的技术:

-A INPUT -p tcp -m tcp --dport 443 --syn -m conntrack --ctstate NEW -j SSH

如上所示,除了模块tcp之外,TCP 连接还会根据 TCP 标志(SYN 必须为 1,RST、ACK 和 FIN 为 0)进行检查。与此相比,它是否提供任何优势:--ctstate NEWconntrack

-A INPUT -p tcp -m tcp --dport 443 -m conntrack --ctstate NEW -j SSH

我的假设是它确实如此,因为匹配模块是按照规则中指定的顺序进行评估的,并且没有--syn全部发送到端口 443 的 TCP 数据包将从一个tcp模块传递到conntrack另一个模块。换句话说,--syn应该提供这种快速失败范例。

答案1

换句话说,--syn应该提供这种快速失败范例。

差不多就这样了。实际上,是扩展机制短路了;联机帮助页

匹配按照命令行上指定的方式从头到尾进行评估,并以短路方式工作,即如果一个扩展产生错误,评估将停止。

在上述情况下,规则使用两个扩展:tcp处理 和 的扩展--dport--syn后面是conntrack处理 的扩展--ctstate。如果tcp扩展名无法匹配,conntrack则将完全跳过该扩展名。

相关内容