我不确定这是否是正确的正则表达式,但我正在尝试在忽略正则表达式中添加多行
以下是我的 ddos.conf 中的配置行:
[Definition]
failregex = ^<HOST> -.*"(GET|POST).*
ignoreregex =.*(robots.txt|favicon.ico|jpg|png)
^<HOST> -.*"(GET|POST).*(Googlebot|bingbot)
代码是否正确,我应该在乘行中添加什么
答案1
failregex
您可以向and添加多个正则表达式ignoreregex
(与通过 执行的方式完全相同ignoreregex
),只需:
ignoreregex
并不真正期望 tag ,所以要么用类似的东西<HOST>
替换它;\S+
- 您的正则表达式很容易受到攻击 - 不要使用包罗万象的(
.*
、.+
等),因此请始终尝试编写尽可能精确的正则表达式并锚定它。例如,由于首先ignoreregex
,攻击者可以添加?robots.txt
到请求中以忽略发现。 - 就像假冒的谷歌机器人可以继续攻击一样——仅检查代理是不够的。
编写一个fail2ban多行正则表达式
至于多行正则表达式的可能性 - 这取决于日志的外观以及您到底需要从那里解析什么,所以如果没有示例就很难描述。
请参阅我对类似问题的回答github.com/fail2ban #2971,评论798429044。
另请注意我的回答堆栈溢出 / 64857401 #65375323。