【问题标题】:fail2ban apache-auth filter not detecting failed passwordsfail2ban apache-auth 过滤器未检测到失败的密码
【发布时间】:2014-12-23 22:04:53
【问题描述】:

我无法让 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

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

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

【问题讨论】:

    标签: apache fail2ban


    【解决方案1】:

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

    【讨论】:

    • 如果人们没有否决我的问题,我会赞成你的问题。无论如何,这解决了它。我最初更换了 apache-auth 并没有奏效。在进行了 common 和 auth 之后,它运行完美,并在测试后禁止了我。
    【解决方案2】:

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

    从模式末尾删除$ 或在$ 之前添加.*

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

    【讨论】:

    • $ 和 .* 表示什么?
    • $ 是“密码不匹配”fail2ban 规则中的最后一个字符,在其前面添加 .* 或删除 $
    猜你喜欢
    • 2019-01-28
    • 2016-05-27
    • 1970-01-01
    • 1970-01-01
    • 2014-08-27
    • 1970-01-01
    • 2015-07-06
    • 1970-01-01
    • 2021-03-15
    相关资源
    最近更新 更多