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