Защита админки wordpress с помощью fail2ban

Для организации простенькой защиты от ботов, которые постоянно проверяют на прочность вашу wordpress админку, быстрее всего настроить fail2ban. Это многофункциональное и эффективное средство для защиты сервисов от постороннего доступа. Рассмотрим его применительно к wordpress.

В интернете постоянно пасутся стада ботов, проверяющие доступ к тем или иным сервисам. Чаще всего это боты очень простые, они просто подбирают по словарю доступ к ресурсам. Иногда они используют известные уязвимости. Так как wordpress самый популярный движок для сайта, пробовать его на прочность будут регулярно. Если у вас постоянно обновляется версия и уникальный пароль, которого нет в словарях, то вам скорее всего беспокоиться не о чем. Fail2ban какой-то уникальной защиты не предоставляет.

Лично я предпочитаю обезопасить себя на всякий случай и закрыть доступ к админке wordpress от слишком назойливых глаз. Будем анализировать лог web сервера и банить всех тех, кто более 3-х раз ввел неверный пароль на доступ к внутренностям сайта.

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

Установка fail2ban в CentOS 7

Первым делом установим fail2ban в систему с помощью yum. Тут ничего сложного, все как обычно.

Если у вас Debian/Ubuntu, воспользуйтесь командой apt-get install fail2ban.

Теперь необходимо отредактировать файл настроек, добавив туда информацию о нашем сайте wordpress. Открываем /etc/fail2ban/jail.conf и добавляем в самый конец:

enabled включаем секцию
port порты, которые будут забанены
action действие, которое будет выполняться, в данном случае включается блокировка iptables и отправляется оповещение, но может быть указано что-то одно
filter название фильтра, по которому будет проходить проверка
logpath путь до лог файла, которые будет анализироваться
maxretry количество срабатываний фильтра, после которого хост будет забанен

Дальше нужно создать фильтр, который мы указали ранее. Создаем новый фильтр:

Сохраняем его и проверяем работу фильтра:

Если вы хотите увидеть строки, которые пометил фильтр, то можете запустить эту же команду с ключом:

Запускаем сервис и добавляем в автозагрузку:

На этом все, защита админки wordpress с помощью fail2ban настроена.

Проверка работы
На всякий случай проверьте в /etc/fail2ban/fail2ban.conf куда будут складываться логи сервиса. За них отвечает параметр:

Убедитесь, что у вас настроена ротация этого файла. В CentOS 7 для этого нужно проверить, что в папке /etc/logrotate.d есть файл fail2ban примерно следующего содержания:

Во время работы автобана в лог файле будут появляться примерно такие строки:

Проверить, забанены ли реально эти адреса можно посмотрев текущие правила iptables:

Либо можно проверить статус командой:

Если вам нужно будет вручную кого-нибудь забанить, то можно воспользоваться командой:

Это в общем случае, в нашем случае команда будет выглядеть вот так:

Чтобы разбанить какой-нибудь адрес, поступаем следующим образом:

Обновлено: 20.03.2019 — 18:32

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *