我有一个fail2banconfiguration如下:
这完美的作品,我想保持这样的方式,使有效的用户有机会在超时后重试login。 现在,我想实现一个规则,即如果检测到相同的IP被攻击和阻止,解锁5次,永久阻止IP并且不再解除阻塞。 这可以单独使用fail2ban来实现吗?或者我需要编写自己的脚本来做到这一点?
我正在做这个。
fail2ban中没有默认function或设置来实现此function。 但是,您可能正在寻找设置fail2ban来监视自己的日志文件 。 这是一个两步的过程…
我们可能需要创build一个filter来检查日志文件中的BAN (fail2ban的日志文件)
我们需要定义监狱 ,类似于以下…
[的fail2ban] enabled = true filter = fail2ban action = iptables-allports [name = fail2ban] logpath = /path/to/fail2ban.log #findtime:1天 findtime = 86400 #禁令:1年 bantime = 31536000
从技术上讲,这不是一个永久性的障碍 ,而只是阻止一年(我们也可以增加)。
无论如何,对于你的问题(这可以通过fail2ban单独实现,或者我需要写自己的脚本来做到这一点?)…编写自己的脚本可能会运行良好。 设置脚本来提取经常被禁止的IP,然后把它们放入/etc/hosts.deny
是我的build议。
我相信,如果你把bantime = -1
在configuration部分,这是一个永久性的块。
菲尔·哈根就这个问题写了一篇很好的文章。 “ 使用fail2ban永久禁止重犯 ”。
他的build议和Pothi一样,但提供了一步一步的指导。
这包括:
为了扩大Chin的答案,这很简单。 只需编辑/etc/fail2ban/jail.local
的2个设置以符合您的偏好。
# ban time in seconds. Use -1 for forever. Example is 1 week. bantime = 604800 # number of failures before banning maxretry = 5