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

fail2ban apache-badbots не блокирует IP

Я пытаюсь получить fail2ban, чтобы заблокировать работу моего сайта некоторыми плохими ботами. Я начал с того, что просто включил "apache-badbots" по умолчанию в jail.local (я изменил путь к журналу, чтобы он соответствовал моим собственным журналам и пользователю, которому он отправляет отчеты)

enabled = true filter = apache-badbots action = iptables-multiport[name=BadBots, port="http,https"] sendmail-buffered[name=BadBots, lines=5, dest=jisti] logpath = /var/logs/httpd/access_log bantime = 172800 maxretry = 1

Я перезапустил fail2ban и получил письмо о том, что тюрьма началась. Однако, пока я смотрел логи, один из плохих ботов забил сайт, и fail2ban ничего не сделал.

Итак, я проверил apache-badbots.conf в фильтрах. Я пришел к выводу, что регулярное выражение, вероятно, не соответствует пользовательскому формату журнала, который я использовал, и на самом деле не ищет конкретного плохого бота, который забивает мой сайт. Я возился с failregex, а затем протестировал с

fail2ban-regex /var/log/httpd/access_log /etc/fail2ban/filter.d/apache-badbots.conf

Это сообщение об успехе, и более 300 совпадений. «Ухуху», - подумал я. Я перезапустил fail2ban. Вскоре после этого я увидел, как бот снова забивает сайт, а fail2ban ничего не делает. Я проверил iptables, чтобы убедиться, что он что-то делает, но неправильно использует правило iptables

iptables -S -P INPUT ACCEPT -P FORWARD ACCEPT -P OUTPUT ACCEPT -N fail2ban-BadBots -N fail2ban-SSH -N fail2ban-php-url-open -A INPUT -p tcp -m tcp --dport 22 -j fail2ban-SSH -A fail2ban-BadBots -j RETURN -A fail2ban-SSH -j RETURN -A fail2ban-php-url-open -j RETURN

Также я должен упомянуть, что когда он блокирует атаки SSH, он правильно добавляет правила iptables. Так что что-то работает, только не apache-badbots.

Затем я попытался настроить ведение журнала fail2ban для отладки и чтения файла fail2ban.log. К сожалению, там ничего не помогло. Были записи журнала для запуска тюрьмы и определения правильного регулярного выражения, а также определения действий. Однако в журнале не было никаких записей для сопоставления jail apache-badbots и принятия мер против любого IP.

Также я упомяну, что тюрьма SSH, похоже, работает нормально, поэтому fail2ban действительно работает на компьютере, только не тюрьма apache-badbots.

Что мне нужно сделать, чтобы он заработал?

В вашем jail.local вы направляете fail2ban на / var / журналы / httpd / access_log вместо того / var / log / httpd / access_log как в вашем тесте регулярного выражения.