Fail2Ban 正则表达式不匹配

Fail2Ban 正则表达式不匹配

我无法让我的 fail2ban 失败正则表达式与日志条目匹配。

以下是示例日志条目:

Failed login attempt {"xForwardedFor":"192.168.0.38","remoteAddress":"::ffff:127.0.0.1","userAgent":"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:70.0) Gecko/20100101 Firefox/70.0","timestamp":1573556557}

这是我的配置:

[Definition]
failregex= ^Failed login attempt {\"xForwardedFor\":\"<HOST>\"
ignoreregex =
datepattern = "timestamp":{EPOCH}}$

Fail2ban 在运行时或使用 fail2ban-regex 进行测试时不会返回匹配,如下所示。

fail2ban-regex 'Failed login attempt {"xForwardedFor":"192.168.0.38","remoteAddress":"::ffff:127.0.0.1","userAgent":"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:70.0) Gecko/20100101 Firefox/70.0","timestamp":1573556557}' '^Failed login attempt {\"xForwardedFor\":\"<HOST>\"'

答案1

您的日志文件似乎没有以时间戳开头。根据手动的

  • 为了使日志行与你的 failregex 匹配,它实际上必须匹配两部分:行的开头必须匹配时间戳模式或正则表达式,并且行的其余部分必须与您的 failregex 匹配。如果 failregex 以 为前导锚点^,则锚点指的是行的其余部分的开头,位于时间戳和中间空格之后。

  • 目前尚未记录与时间戳匹配的模式或正则表达式,用户无法读取或设置。请参阅 Debian 错误 #491253。如果您的日志具有 fail2ban 不期望的时间戳格式,则会出现问题,因为它将无法匹配任何行。因此,您应该针对示例日志行测试任何新的 failregex,如下例所示,以确保它匹配。如果 fail2ban 无法识别您的日志时间戳,那么您有两个选择:要么重新配置您的守护程序以使用更常见格式的时间戳进行记录,例如上面的示例日志行;要么提交错误报告要求包含您的时间戳格式。

我在我的计算机上通过在开头放置时间戳来尝试您的案例,Fail2Ban 确实识别了该模式。

~$ sudo fail2ban-regex '1573556557 Failed login attempt {"xForwardedFor":"192.168.0.38","remoteAddress":"::ffff:127.0.0.1","userAgent":"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:70.0) Gecko/20100101 Firefox/70.0","timestamp":1573556557}' 'Failed login attempt {\"xForwardedFor\":\"<HOST>'
       
Running tests
=============

Use   failregex line : Failed login attempt {\"xForwardedFor\":\"<HOST>
Use      single line : 1573556557 Failed login attempt {"xForwardedFor":"...


Results
=======

Failregex: 1 total
|-  #) [# of hits] regular expression
|   1) [1] Failed login attempt {\"xForwardedFor\":\"<HOST>
`-

Ignoreregex: 0 total

Date template hits:
|- [# of hits] date format
|  [1] {^LN-BEG}Epoch
`-

Lines: 1 lines, 0 ignored, 1 matched, 0 missed
[processed in 0.01 sec]

也许您可以修改日志文件,以便将日期和时间放在开头。我还有其他与您的案例相关的参考资料:

情况1

案例 2

希望这有帮助。

相关内容