我使用 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。
编辑:这不是另一个问题的重复,因为另一个问题只处理多个静止的文件名,我的问题是关于每日变化文件名。