6

我无法让 fail2ban 检测失败的 apache-auth 尝试

过滤器如下所示:

^%(_apache_error_client)s (AH01617: )?user .* authentication failure for "\S*": Password Mismatch$

^%(_apache_error_client)s (AH01618: )?user .* not found(: )?\S*\s*$

以及出现的错误:

[Tue Dec 23 13:41:45.870693 2014] [auth_basic:error] [pid 2818] [client 97.171.82.123:91131] AH01617: user miati: authentication failure for "/test/file.html": Password Mismatch, referer: https://example.org/test/file.html
[Tue Dec 23 13:41:45.870693 2014] [auth_basic:error] [pid 2818] [client 97.171.82.123:91131] AH01617: user miati: authentication failure for "/test/file.html": Password Mismatch, referer: https://example.org/test/file.html

两者都不能正常工作。我想让它们重新编写,以便它们可以工作,但我无法弄清楚过滤器是如何工作的,而且谷歌搜索并没有让我到任何地方。大多数指南都假定我理解正则表达式,但我不知道。

谁能解释(或链接到)过滤器中的这些参数的含义,以便我可以自己修改它?

4

2 回答 2

8

我在使用 Fail2Ban v0.8.11 时遇到了同样的问题,最初在您发布后大约 13 小时找到了您的帖子。我最终的解决方案是使用来自官方 GitHub 存储库的更多最新的 apache-common.confapache-auth.conf文件。它现在捕获登录尝试,然后自动禁止 IP 地址,尽管我正在使用ufw实际的禁止/取消禁止。

于 2014-12-26T13:23:43.020 回答
1

您的错误消息中有 fail2ban 没有预料到的额外文本,告诉 fail2ban 接受这个额外的文本:

$从模式末尾删除或.*$.

规则中的$表示日志行必须在那里结束,但是您的日志行包含“密码不匹配”字样之后的文本,删除$删除该限制。 .*表示“允许任何东西”,因此在行尾之前添加允许任何东西,

于 2014-12-23T22:09:45.867 回答