Защита веб-сайтов на базе WordPress от угроз, таких как брутфорс-атаки, является одной из ключевых задач администраторов. Одним из эффективных инструментов для этой цели является Fail2Ban, который помогает блокировать IP-адреса, с которых происходят подозрительные или вредоносные действия. В данной статье мы рассмотрим, как правильно настроить Fail2Ban для защиты страницы входа wp-login.php в WordPress.
Каждый день ваш сайт подвергается множеству автоматизированных атак, и именно wp-login.php становится одной из основных мишеней злоумышленников. Используя Fail2Ban, вы сможете автоматически блокировать IP-адреса, которые отправляют более чем определенное количество неудачных попыток входа за короткий промежуток времени. Это значительно снижает риск успешной регистрации несанкционированного доступа к вашему сайту.
Настройка Fail2Ban для wp-login.php включает в себя несколько этапов, таких как создание соответствующего фильтра и джейл, а также внесение необходимых изменений в конфигурационные файлы. Мы подробно разберем каждый из этих шагов, чтобы вы могли эффективно защитить свой сайт от атак и обеспечить его стабильность и безопасность.
Конфигурация фильтра для защиты wp-login.php в Fail2Ban
Первым шагом является создание нового файла фильтра. Для этого вам нужно перейти в директорию фильтров Fail2Ban, обычно это /etc/fail2ban/filter.d/. Создайте файл с подходящим именем, например, wp-login.conf. В этом файле необходимо определить регулярные выражения, которые будут отслеживать подозрительные действия пользователей при попытке входа.
Пример содержания файла wp-login.conf может выглядеть следующим образом:
[Definition] failregex =.*"POST /wp-login\.php ignoreregex =
Здесь `
После создания файла фильтра необходимо настроить саму бан-систему Fail2Ban. Для этого модифицируйте файл jail.local, добавив новую секцию для вашего фильтра. Например:
[wp-login] enabled = true filter = wp-login action = iptables[name=WordPress, port=http, protocol=tcp] logpath = /var/log/apache2/access.log maxretry = 5 bantime = 3600
Данная конфигурация устанавливает, что после 5 неудачных попыток входа IP-адрес пользователя будет заблокирован на час. Не забудьте перезапустить Fail2Ban, чтобы изменения вступили в силу.
Создание правил блокировки IP-адресов в Fail2Ban для wp-login.php
Первый этап – это установка Fail2Ban на сервер. В большинстве дистрибутивов Linux Fail2Ban доступен в стандартных репозиториях. Установите пакет с помощью менеджера пакетов, например, командой sudo apt-get install fail2ban для Ubuntu или sudo yum install fail2ban для CentOS. После установки сервис автоматически запустится.
Следующим шагом будет создание пользовательского фильтра для обработки логов. Для этого откройте файл конфигурации Fail2Ban, который обычно располагается в каталоге /etc/fail2ban/filter.d/. Создайте новый файл, например, wordpress.conf. В этом файле нужно описать условия, при которых IP-адреса будут заблокированы.
Пример содержимого фильтра может выглядеть так:
[INCLUDES] before = common.conf [Definition] failregex =.*"(GET|POST).*wp-login.php.* 401 ignoreregex =
Далее необходимо настроить саму защиту, создав конфигурационный файл для вашего нового фильтра в каталоге /etc/fail2ban/jail.d/. Назовем его wordpress.local. В этом файле укажите, какие действия предпринять в случае срабатывания фильтра, а также параметры блокировки, такие как время блокировки и количество попыток входа.
Пример конфигурации:
[wordpress]
enabled = true
filter = wordpress
action = iptables[name=wordpress, port=www, protocol=tcp]
logpath = /var/log/auth.log
maxretry = 3
bantime = 600
После завершения всех настроек перезапустите Fail2Ban командой sudo systemctl restart fail2ban. Проверьте статус работы сервисов и корректность правил, используя команду fail2ban-client status. Следуя этим шагам, вы создадите надежную защиту для своего сайта от несанкционированного доступа через wp-login.php.