Fail2ban(0.9.6-2)与 pure-ftpd(1.0.46)

Fail2ban(0.9.6-2)与 pure-ftpd(1.0.46)

我正在使用 pureftpd 和 fail2ban,但不起作用。似乎能够读取日志,但事件fail2ban.filter未触发。我调查了很多有关所有可能的问题,并且已经做了很多检查,但我不知道为什么它不起作用。我将开始输入我的配置、日志和我所做的操作。之前,我必须说我已经在同一台机器上运行了 ok fail2ban 来对抗 apache 和 ssh。问题只发生在 pureftpd 上。:

在我的 /etc/fail2ban/jail.local 上

[pureftpd]
enabled = true
port = 21
filter = pure-ftpd
logpath = /var/log/messages
backend = polling
maxretry = 5

我修改了数千次(当然,每次修改后都要重新启动 fail2ban 守护进程)。测试了port = ftp而不是port = 21似乎得到了相同的结果。我尝试使用backend = auto或删除后端语句...结果相同。

/var/log/messages已成功接收登录 ftp 的尝试,以下是一些示例行:

Aug  3 08:31:01 88a4998e8b37 pure-ftpd: ([email protected]) [INFO] New connection from 192.168.0.159
Aug  3 08:31:09 88a4998e8b37 pure-ftpd: ([email protected]) [WARNING] Authentication failed for user [testinguser]

我的/etc/fail2ban/filter.d/pure-ftpd.conf

[Definition]
__errmsg = Authentication failed for user
failregex = pure-ftpd: \(\?@<HOST>\) \[WARNING\] %(__errmsg)s \[.+\]$
ignoreregex =

我对此进行了测试fail2ban-regex /var/log/messages /etc/fail2ban/filter.d/pure-ftpd.conf并且它返回了很多结果,所以我认为它有效。

我还将 fail2ban 置于调试模式,这是用户连接并尝试登录失败时的日志:

2017-08-03 03:31:10,163 fail2ban.filterpoll     [4429]: DEBUG   /var/log/messages has been modified
2017-08-03 03:31:10,164 fail2ban.datedetector   [4429]: DEBUG   Matched time template (?:DAY )?MON Day 24hour:Minute:Second(?:\.Microseconds)?(?: Year)?
2017-08-03 03:31:10,165 fail2ban.datedetector   [4429]: DEBUG   Got time 1470231069.000000 for "'Aug  3 08:31:09'" using template (?:DAY )?MON Day 24hour:Minute:Second(?:\.Microseconds)?(?: Year)?
2017-08-03 03:31:10,165 fail2ban.datedetector   [4429]: DEBUG   Sorting the template list
2017-08-03 03:31:10,166 fail2ban.datedetector   [4429]: DEBUG   Winning template: (?:DAY )?MON Day 24hour:Minute:Second(?:\.Microseconds)?(?: Year)? with 2 hits

因此,它检测到文件正在更改,但过滤器未被触发。为什么?

与我的其他 fail2ban 服务(例如 apache)相比,我在日志中看到了差异……当它运行时,日志中会出现如下行:

2017-08-03 03:43:37,024 fail2ban.filterpoll     [4429]: DEBUG   /var/log/apache2/error.log has been modified
2017-08-03 03:43:37,025 fail2ban.datedetector   [4429]: DEBUG   Matched time template (?:DAY )?MON Day 24hour:Minute:Second(?:\.Microseconds)?(?: Year)?
2017-08-03 03:43:37,026 fail2ban.datedetector   [4429]: DEBUG   Got time 1501767816.000000 for "'Thu Aug 03 08:43:36.224686 2017'" using template (?:DAY )?MON Day 24hour:Minute:Second(?:\.Microseconds)?(?: Year)?
2017-08-03 03:43:37,026 fail2ban.filter         [4429]: DEBUG   Processing line with time:1501767816.0 and ip:192.168.0.154
2017-08-03 03:43:37,027 fail2ban.filter         [4429]: INFO    [apache] Found 192.168.0.154

因此,检查文件时一切似乎都相似...它获取了时间,但之后没有触发任何操作。会发生什么?有人遇到过这种情况吗?谢谢。

答案1

现在解决了。问题是容器内的时区与主机上设置的时区不同。阅读我在 fail2ban 的 github 上发布的这个“错误问题”:

https://github.com/fail2ban/fail2ban/issues/1855#event-1195174858

相关内容