我需要使用 Fail2ban 限制此类日志的 POST 请求:
"POST /subscribers"
但不会阻止以下请求:
"POST /subscribers/*" i.e. "POST /subscribers/18"
可以使用 fail2ban 吗?到目前为止,我已尝试了以下 jail“subscribers.conf”:
[Definition]
failregex = ^<HOST> -.*POST /subscribers
ignoreregex = ^<HOST> -.*POST /subscribers/*
但由于 ignoreregex,其他请求也被忽略。任何帮助都感激不尽!
Jail.local文件:
[DEFAULT]
ignoreip = 127.0.0.1/8
mta = mail
destemail = root
sendername = Fail2BanAlerts
findtime = 3600
bantime = 6000
#Send mail on all jails: action = %(action_mwl)s
[subscribers]
enabled = true
port = http,https
filter = subscribers
logpath = /var/log/nginx/access.log
maxretry = 3
答案1
/
需要在正则表达式中进行转义。
ignoreregex = ^<HOST> -.*POST \/subscribers\/.+
failregex = ^<HOST> -.*POST \/subscribers\s.+
可以。这里可能发生的情况是正则表达式刚好在第一个 处结束/
。我总是使用众多免费的在线正则表达式检查器之一来检查我试图解析的字符串。