У меня похожая ситуация щас. Настроил блокировку ip через fail2ban.
Цель: блокировка повторяющихся запросов POST /auth/login
При повторе запроса с одного ип 2 раза за минуту - блокировка на 1 сутки.
В случае повтора за 2 дня 2 раза (т.е. после разблокировки на второй день ещё раз банится), то бан уже на 7 дней.
В /etc/fail2ban/jail.local добавил
[site-http]
port = http,https
action = iptables-multiport[name=CMSBLOCK, port="http,https", protocol=tcp]
filter = site-http
logpath = /var/log/apache2/site.ru_access.log
findtime = 60
bantime = 86400
maxretry = 2
86400 - это 1 сутки в секундах
Создал файл /etc/fail2ban/filter.d/site-http.conf с содержимым:
[Definition]
# POST /auth/login
failregex = ^<HOST> .*POST.*/auth/login.*
В /etc/fail2ban/jail.d/defaults-debian.conf добавил
[site-http]
enabled = true
Для настройки рецедива бана:
В /etc/fail2ban/jail.local изменить
[recidive]
enabled = true
logpath = /var/log/fail2ban.log
banaction = %(banaction_allports)s
bantime = 604800 ; 604800 = 7 days
findtime = 172800 ; 172800 = 2 day
maxretry = 2