Назад | Перейти на главную страницу

фильтр fail2ban не соответствует - это регулярное выражение или что-то еще

У меня есть веб-сайт с 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> ?