编写 iptables(1) 脚本时,如果您打算检查无效的源 IP 地址,您应该在接受已建立的流量之前还是之后进行检查,为什么?
答案1
您希望首先接受已建立的相关流量。这通常是您的大部分流量,并且您希望尽快处理它。在应用此规则之前,连接需要被其他规则接受。
如果您刚刚开始学习 iptables 防火墙,您可能希望使用防火墙构建器来为您构建防火墙。这将帮助您以最少的努力设置策略和通用规则,并且质量可能比您手动编写代码更好。我喜欢岸墙,但还有其他一些工具可用。
答案2
我总是检查 中的无效源地址-t raw -A PREROUTING
。根据定义,-t raw
发生在 conntrack 之前,因此显然检查发生在 匹配之前RELATED,ESTABLISHED
。
我的理由是无效的源地址是垃圾,并且我想将防火墙盒的 CPU 周期专用于非垃圾。
是的,这会增加有效流量的延迟,但实际上无法检测到,而且我的盒子可以保持非常高的吞吐量,因为垃圾数据包不会阻塞 netfilter/xtables 管道。通过一些智能链分支,可以显著减少延迟 ;)