Мне нужно ограничить запросы POST с помощью Fail2ban для этого типа журнала:
"POST /subscribers"
Но не блокировать запросы, которые:
"POST /subscribers/*" i.e. "POST /subscribers/18"
Есть это можно сделать с fail2ban? До сих пор я пробовал следующую тюрьму "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
/
необходимо экранировать в регулярном выражении.
ignoreregex = ^<HOST> -.*POST \/subscribers\/.+
failregex = ^<HOST> -.*POST \/subscribers\s.+
Будет работать. Что могло случиться, так это то, что регулярное выражение только что закончилось на первом /
. Я всегда использую одну из многих бесплатных онлайн-проверок регулярных выражений для проверки строки, которую пытаюсь разобрать.