Fail2Ban禁止重启

我正面临一个令人困惑的问题与Fail2Ban。

我运行一个较旧的版本,在重新启动Fail2Ban后台程序时会取消所有的IP地址。

我现在在Centos 7上安装了Fail2Ban 0.9.3版本。当我重新启动Fail2Ban时,它重新禁止以前禁止的IP地址。 我不希望发生这种情况,而是希望在重新启动时清除所有禁令,这是以前的工作方式。

我已经设置dbfile = None以防止持续的禁止,并设置dbpurgeage = 0只是为了安全。

但重启后,任何被禁止的IP都会被禁止。

以下是/var/log/fail2ban.log摘录,当用户被禁止通过vsftpd时:

2016-09-19 20:45:58,671 fail2ban.filter [23752]: INFO [vsftpd] Found xx.xx.xx.xx 2016-09-19 21:01:55,665 fail2ban.filter [23752]: INFO [vsftpd] Found xx.xx.xx.xx 2016-09-19 21:02:06,679 fail2ban.filter [23752]: INFO [vsftpd] Found xx.xx.xx.xx 2016-09-19 21:02:06,936 fail2ban.actions [23752]: NOTICE [vsftpd] Ban xx.xx.xx.xx

然后重新启动Fail2Ban这里是日志文件的最后几行:

2016-09-19 21:02:42,719 fail2ban.jail [24213]: INFO Jail 'vsftpd' started 2016-09-19 21:02:42,761 fail2ban.filter [24213]: INFO [vsftpd] Found xx.xx.xx.xx 2016-09-19 21:02:42,761 fail2ban.filter [24213]: INFO [vsftpd] Found xx.xx.xx.xx 2016-09-19 21:02:42,921 fail2ban.actions [24213]: NOTICE [vsftpd] Ban xx.xx.xx.xx

这似乎是重新扫描日志文件,并重新禁止以前禁止的用户。

正如我所提到的,这不是如何在老版本的Fail2Ban中工作 – 我怎样才能恢复到以前的function呢?

禁用dbfile的使用意味着fail2ban在重新启动时会丢失每个文件的读取位置,因此会读取整个文件,导致您观察到的行为。

logpath语句中的文件名之后添加tail会告诉fail2ban从文件结尾开始读取,而不是从头开始读取。 这应该(我认为)给你想要的行为(或接近)。 请参阅文档了解更多细节。 相关部分是…

可选的空格分隔选项'tail'可以添加到path末尾,以便从最后读取日志文件,否则默认的'head'选项从头开始读取文件

不过,我同意迈克尔·汉普顿的评论 – 解决这个问题的正确方法是恢复使用dbfile并使用unbanfunction。