fail2ban 正则表达式无法正常工作

fail2ban 正则表达式无法正常工作

我正在尝试为我的 fail2ban 过滤器创建一个正则表达式,以阻止所有在 Web 应用程序上登录错误的 IP。我区分这一点的方法是,每次登录都会在访问日志中生成一个带有“?&err=1”的 GET 请求。

这是 Apache 访问日志的一个示例日志行:

XX.XX.XX.XX - - [14/Mar/2023:00:51:56 +0200] "GET /index.html?&err=1 HTTP/1.1" 200 37613

我尝试将其作为正则表达式:

[[]client <HOST>[]] - - "?&err=1"

client <HOST> - - * "GET * err=1 *

但它们没有阻止任何东西。这里的正确正则表达式是什么?

在此先感谢您的帮助。

截至 2023 年 4 月 19 日的更新:

我编辑了我的 Web 应用程序以在 error_log 中打印以下错误行:[2023 年 4 月 19 日星期三 00:40:10] [错误] [客户端 8.8.8.8] 选择用户错误!,引荐来源:https://example.net/

以下 fail2ban 正则表达式不起作用:

1. failregex = ^\[client <HOST>\] Selecting user ERROR! 

2. failregex =  ^\[client <HOST>\] Selecting user ERROR!, referer: 

3. failregex = ^\[\w{3} \w{3} \d{2} \d{2}:\d{2}:\d{2} \d{4}\] \[error\] \[client <HOST>\] Selecting user ERROR!, referer: https:\/\/example\.net\/

有什么想法我错吗?

相关内容