У меня есть веб-сайт с php-скриптом, который разрешено вызывать нечасто. Некоторые надоедливые пользователи запускают мой скрипт каждые несколько секунд, и мне нужно их забанить. У меня есть отказоустойчивый режим, но их не ловят. Я прочитал вики и смоделировал свою установку по примерам. Может кто подскажет, что здесь не так?
Первая моя тюрьма:
[my-checkversion]
enabled = true
filter = checkversion
logpath = /data/logs/mydomain.com-access_log
findtime = 60
bantime = 86400
maxretry = 6
action = iptables[name=HTTP, port=http, protocol=tcp]
Следующий мой фильтр:
[INCLUDES]
before = apache-common.conf
[Definition]
# Example
# 144.217.80.24 - - [02/May/2019:07:02:00 -0500] "POST /hidden/readversion.php HTTP/1.1" 200 -
failregex = ^<HOST> - - \[.*\] "POST <checkversion_url> HTTP/1\.[01]" 200 .*$
ignoreregex =
[Init]
checkversion_url = /hidden/readversion.php
Я поместил однострочный отрывок из файла доступа apache, показывающий, что пользователь нажимает соответствующий URL-адрес, в комментарии над строкой регулярного выражения.
Может кто подскажет, что случилось? Это регулярное выражение? Онлайн-редакторы регулярных выражений не помогут из-за подстановки переменных ... так что это лучшее усилие
В fail2ban есть опция, заставляющая его просматривать файл, чтобы попробовать ваши правила, и он распечатывает, работает он или нет.
Вы смотрели на fail2ban-regex <logfile> <fail2ban rule .conf>
?