我使用fail2ban / firewalld来限制对Nginx服务器的类似bot的访问.通常,相应jail的配置如下所示:
[Nginx-botsearch] #banaction = iptables-multiport enabled = true filter = Nginx-botsearch logpath = /var/log/Nginx*/*access*.log maxretry = 3 bantime = 3600
这按预期工作(banaction默认为firewallcmd-ipset),即iptables -L命令在INPUT_direct链中显示一个条目:
REJECT tcp -- anywhere anywhere multiport dports http,https match-set fail2ban-Nginx-botsearch src reject-with icmp-port-unreachable
使用fail2ban-Nginx-botsearch的相应ipset.
然而,当bantime增加时,我注意到一种奇怪的行为.一切都按预期的方式工作< = 4294967.当我设置bantime = 4294968并重新加载fail2ban服务时,缺少iptables输出中的条目(未创建ipset)实际上,使用例如ab实用程序进行测试显示该禁令未得到执行.有趣的是,使用banaction = iptables-multiport甚至可以用于“大型”bantimes.这种行为可能是什么原因?我在CentOS 7上使用fail2ban v 0.9.7.