iptables 中的一般允许 ACK 规则有什么用处?

iptables 中的一般允许 ACK 规则有什么用处?

我遇到过一些 iptables 配置,其中传入规则以允许所有带有 ACK 标志的 TCP 数据包的规则开始,后面跟着所有明显的服务端口规则。这是为什么?服务器仍然响应此规则禁用的情况。除了所服务的端口之外,其他端口是否也有有用的 ACK 接受?

答案1

设计防火墙的人可能是最适合回答这个why is this here?问题的人。

如果我尝试找到一个有用的用例:

前提:带有 ACK 标志的 TCP 数据包是常见的

前提:ACCEPT, DROP, REJECT, etc..将在匹配的第一条规则处停止评估

假设:ACK 数据包基本上无害

#Accept any TCP Acknowlegements and let the OS / Service handle any issues
-A INPUT -m tcp -p tcp --tcp-flags ACK -j ACCEPT

-A INPUT -m tcp -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -m tcp -p tcp -m state --state NEW --dport 80 -j ACCEPT
...
...
-A INPUT -j DROP

结论:可能添加了 ACK 语句来提高防火墙的性能。

我没有任何基准来支持这样的假设。

相关内容