【问题标题】:Fail2ban regex doesn't match (no sense!)Fail2ban 正则表达式不匹配(没有意义!)
【发布时间】:2021-04-05 11:43:26
【问题描述】:

这是一个日志:

[1617620801] [0.0042] [domain.com] [#5006616] [269] [3] [(ip removed)] [403] [GET] [/study/index.php] [SQL injection] [hex:4745543a61203d203b2044524f50205441424c45203c]
[1617621606] [0.00205] [domain.com] [#2926762] [0] [2] [(ip removed)] [403] [POST] [/xmlrpc.php] [Access to WordPress XML-RPC API] [hex:2f786d6c7270632e706870]

fail2ban 过滤器具有以下模式:

failregex = \[.*] \[.*] \[.*] \[.*] \[.*] \[(3)] \[<HOST>] \[.*] \[.*] \[.*]

但 fail2ban-regex 一直告诉我 0 个结果。

但是,如果我将 \[3] 更改为 \[2] 它可以找到第二个。如果我将其更改为\[.*],它会找到它们。

正则表达式测试网站显示它应该可以工作。我不知道为什么找不到[3]

【问题讨论】:

    标签: regex fail2ban


    【解决方案1】:

    正确,由于灾难性的回溯,它不会工作。

    你需要

    • 将所有\[.*] 替换为\[[^][]*]
    • 如果[...] 之间可以有多个空格,请使用 +\s+ 而不是文字空格。

    你可以使用类似的东西

    \[[^][]*]\s+\[[^][]*]\s+\[[^][]*]\s+\[[^][]*]\s+\[[^][]*]\s+\[(3)]\s+\[<HOST>]\s+\[[^][]*]\s+\[[^][]*]\s+\[[^][]*]
    

    请参阅regex demo

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多