是否有可能使iptables回落到负载下的无状态过滤,在攻击等过程中,当连接跟踪表已满并且新的连接即将被丢弃?
我知道这会有一些严重的安全隐患,因此应该非常保守地select后备规则。 另外,禁用连接跟踪时,NAT将不可避免地中断,但这不是问题(所讨论的主机是实际的防火墙)。
任何解决scheme可能有两个部分:
可以这样做吗? 如果没有,有没有比通过某种日志分析检测表溢出,通过插入或删除规则来反应,还是卸载连接跟踪模块更好的方法?
如果你正在运行一个完整的连接跟踪表,那么简单地放大它。
在/etc/sysctl.conf或其中包含的文件中设置以下内容:
net.ipv4.netfilter.ip_conntrack_max = 131072
(提高数字,直到有足够的空间。)
在更旧的Linux服务器上,您必须使用与旧的不推荐使用的sysctl:
net.ipv4.ip_conntrack_max = 131072
要应用更改,请重新引导或运行:
sysctl -p
在高负荷下,特别是有很多的连接,是的,它会开始放缓。 所以去无国界是个好主意。
可悲的是,没有办法回到无状态的过滤。 但是,您可以简单地跳过重交通的状态:udp,端口80,…使用NOTRACK目标。
在非常高的负载下,如果可能的话,我build议尽可能无状态。