fail2ban 忽略每日日志文件

fail2ban 忽略每日日志文件

我使用 fail2ban 来检测和禁止违规用户。这种方法或多或少效果不错,但 Exim 有一个问题,它会在我的系统上写入每日日志文件:第二天的新日志文件会被忽略。这是我的配置文件:

[exim]
enabled = true
filter = exim
failregex = \[<HOST>\]: 535 Incorrect authentication data
            \[<HOST>\] .* rejected RCPT <.*>: Unknown user$
            \[<HOST>\] .* rejected after DATA: This message scored [0-9.]+ spam points\.$
            \[<HOST>\] sender verify fail for <.*>: Unrouteable address$
            \[<HOST>\] .* rejected RCPT <.*>: relay not permitted$
action = iptables-multiport[name=exim,port="25,465,587"]
logpath = /var/log/exim4/main-*.log

今天我发现该程序只监视昨天的文件,没有当前禁令。我在今天的日志文件中发现了许多匹配的模式。重新启动fail2ban后,有3个禁令处于活动状态。

日志文件是:

  • /var/log/exim4/main-20190601.log
  • /var/log/exim4/main-20190602.log
  • /var/log/exim4/main-20190603.log
  • ETC。

所以的*模式logpath显然不是很动态。我想知道它到底有什么用处。

有什么解决方案可以让 fail2ban 始终使用今天的文件?

我正在考虑每晚重启服务。但只有当今天的日志文件已经创建,即任何电子邮件已经处理完时,它才会正确启动。我应该将重启时间推迟几分钟吗?在这段延迟时间内,系统会更加“脆弱”。

总的来说,我对 fail2ban 的印象不是很好。它似乎不太成熟、实用或经过深思熟虑。但我找不到任何能给我留下更好印象的替代品。这些工具大多已过时,没有社区。

这是 Ubuntu 16.04 的 Fail2Ban v0.9.3。

编辑:这不是另一个问题的重复,因为另一个问题只处理多个静止的文件名,我的问题是关于每日变化文件名。

答案1

如果您可以改变exim的日志轮换程序,我建议您创建下面的结构。

这些是网络服务器的日志,但想法是一样的。

access.log是一个始终链接到当天日志文件的符号链接。有权访问的程序 (fail2ban)access.log并不关心它指向的内容,而只是获取内容。

您的 exim 日志轮换需要取消access.log与旧文件的链接并创建到新日志文件的新链接。

通过这种方式fail2ban就不必担心新文件,只需access.log一直读取旧的文件。

在此处输入图片描述

相关内容