Fail2Ban 正则表达式 - Joomla / PHP5-FPM

Fail2Ban 正则表达式 - Joomla / PHP5-FPM

我无法让 fail2ban 的正则表达式正常工作。我想匹配以下内容:

[Tue Jun 24 10:22:14.528987 2014] [fcgid:warn] [pid 22526:tid 139757615011584] [client IP:PORT] mod_fcgid: stderr: user admin joomla authentication failure, referer: http://www.mydomain.com/administrator/index.php?option=com_login

我试过:

^\[.*\s*.*]* \[client <HOST>\] mod_fcgid: stderr: user .* joomla authentication failure, referer: .*

任何帮助都将非常感激。

答案1

仅需 2 条注释:

  • 在示例中我们需要使用实际的 IP 和端口而不是IP:PORT,即使它是假的。
  • 在正则表达式中,您需要捕获 IP,并单独指定端口:<HOST>:[0-9]+。我假设端口是强制性的。

测试(最后一行是正则表达式):

fail2ban-regex \
'[Tue Jun 24 10:22:14.528987 2014] [fcgid:warn] [pid 22526:tid 139757615011584] [client 1.2.3.4:1234] mod_fcgid: stderr: user admin joomla authentication failure, referer: http://www.mydomain.com/administrator/index.php?option=com_login' \
'^\[.*]* \[client <HOST>:[0-9]+\] mod_fcgid: stderr: user .* joomla authentication failure, referer: .*'

这个对我有用。

答案2

您不需要使用复杂的正则表达式来跳过前导时间字段。我怀疑这就是导致您出现问题的原因。对于给定的日志条目,只要我将其转换IP:PORT 为数字 ip:port 值,此方法即可奏效。

'^.*[[]client <HOST>.*user .*joomla authentication failure,'

上述操作将禁止任何身份验证失败次数过多的用户。

我不知道你是否使用它,但 fail2ban-regex 是一个很好的工具

相关内容