当写一个iptables(1)脚本,如果你打算检查无效的源IP地址,你应该这样做之前或之后接受build立的stream量,为什么?
您想先接受已build立的相关stream量。 这通常是您的大部分stream量,并且您希望尽快处理。 在应用此规则之前,连接需要被其他规则所接受。
如果您刚刚了解iptables防火墙,则可能需要使用防火墙生成器为您构build防火墙。 这将帮助您以最less的努力获得政策和常规规则设置,并且可能比您手动编写更好的质量。 我喜欢Shorewall ,但还有其他几个工具可用。
我总是在-t raw -A PREROUTING检查无效的源地址。 根据定义, -t raw在conntrack之前发生,显然这个检查发生在RELATED,ESTABLISHED的匹配之前。
我的推理是无效的源地址是垃圾,我想把我的防火墙的CPU周期专用于非垃圾。
是的,这会给有效stream量带来额外的延迟,但实际上检测不到,而且我的盒子可以保持非常高的吞吐量,因为垃圾数据包不会堵塞netfilter / xtablespipe道。 通过一些智能链分支,可以显着减less延迟;)