Как настроить Fail2Ban для WordPress (wp-login, xmlrpc)

Короче говоря, в этом руководстве вы найдете командные строки, с помощью которых вы можете установить и настроить Fail2Ban для WordНажимать. Обеспечивает аутентификацию WordPress и запросы методом перебора xmlrpc.php.

Блоги и сайты, разработанные на платформе WordPress часто становятся объектами кибератак. Большинство атак основаны на методе грубой силы и нацелены на сеанс аутентификации или используют XML-RPC (удаленный вызов процедур с использованием XML). К счастью, fail2ban — очень полезное решение безопасности в таких ситуациях. Если вы хотите защитить веб-сайт WordPress с помощью fail2ban следуйте инструкциям по настройке, приведенным в этом руководстве.

Прежде всего убедитесь, что у вас есть доступ к веб-серверу через SSH-соединение и что установлено приложение fail2ban.

Конфигурация Fail2Ban для WordPress на Debian

1. Прежде всего, необходимо убедиться, что приложение fail2ban установлено и запущено на сервере. Запустите командную строку ниже:

systemctl status fail2ban

В выводе вы должны увидеть что-то вроде этого:

● fail2ban.service - Fail2Ban Service
     Loaded: loaded (/lib/systemd/system/fail2ban.service; enabled; preset: enabled)
     Active: active (running) since Tue 2025-03-11 00:39:32 EET; 6 days ago
       Docs: man:fail2ban(1)
   Main PID: 917 (fail2ban-server)
      Tasks: 17 (limit: 76843)
     Memory: 33.2M
        CPU: 17min 1.752s
     CGroup: /system.slice/fail2ban.service
             └─917 /usr/bin/python3 /usr/bin/fail2ban-server -xf start

Если fail2ban не установлен на вашем сервере, вам необходимо его установить. Запустите командную строку для установки fail2ban в Debian/Ubuntu:

sudo apt install fail2ban

2. Следующий шаг — создание фильтра fail2ban для WordНажимать. Запустите командную строку в терминале для создания и редактирования фильтра. wordpress.conf.

sudo nano /etc/fail2ban/filter.d/wordpress.conf

В файле wordpress.conf устанавливает фильтры для аутентификации WordPress и для файла xmlrpc.php, следующим образом:

[Definition]
failregex = ^<HOST> -.*"(GET|POST).*(/wp-login.php|/xmlrpc.php).*" 200
ignoreregex =

Это означает, что любым методом, GET или POST, если осуществляется доступ к файлам wp-login.php или xmlrpc.php, можно создать правило для fail2ban. Условием является то, что эти файлы существуют и могут быть доступны злоумышленнику. То есть при обращении он должен возвращать код 200 (ok).

Сохраните файл /etc/fail2ban/filter.d/wordpress.conf.

3. Следующий шаг — настройка «тюрьмы» для WordНажимать. Именно здесь большинство пользователей и путаются, поскольку правила должны быть установлены по-разному в зависимости от системы управления хостингом (если таковая имеется) или конфигурации веб-сервера.

Если вы используете HestiaCP, VestaCP или MyVesta, создайте и отредактируйте файл /etc/fail2ban/jail.local.

nano /etc/fail2ban/jail.local

Добавьте в этот файл следующие строки:

[wordpress]
enabled  = true
port     = http,https
filter   = wordpress
logpath  = /var/log/nginx/domains/*.log #or apache2.
maxretry = 5
findtime = 1800
bantime  = 3600
action   = hestia[name=WEB] #hestacp action.

Отрегулируйте вышеуказанные параметры в соответствии с вашими потребностями. В указанной мной конфигурации, если в течение интервала в 1800 минут будет 5 повторных попыток с одного и того же IP-адреса, он будет заблокирован на 3600 минут с помощью действия HestiaCP для веб-сайта. (hestia[name=WEB]). Здесь вам понадобится помощь в зависимости от системы, установленной на сервере.

Также очень важно "logpath". Из этих журналов извлекаются данные о том, какие действия будут предприняты. Убедитесь, что местоположение указано правильно.

Если у вас не установлена ​​система управления, вам необходимо заблокировать IP-адреса с помощью fail2ban WordPress быть сделано напрямую через iptables. Линия действий будет следующей:

action   = iptables-multiport[name=wordpress, port="80,443", protocol=tcp]

В скобках вместо /etc/fail2ban/jail.local Вы также можете использовать отдельный файл для конфигурации, например: /etc/fail2ban/jail.d/wordpress.conf.

После внесения корректировок примените изменения.

sudo systemctl restart fail2ban

4. После перезапуска проверьте, есть ли fail2ban для WordPress работы:

fail2ban-client status wordpress
Status for the jail: wordpress
|- Filter
|  |- Currently failed:	355
|  |- Total failed:	33873
|  `- File list: (log files per domain)
- Actions
   |- Currently banned:	127
   |- Total banned:	680
   `- Banned IP list:

Как только вы найдете заблокированные IP-адреса в этом списке, убедитесь, что они также заблокированы в iptables. Я столкнулся с ситуацией, когда из-за неправильной настройки в fail2ban я видел, что IP заблокирован, но на самом деле он все еще мог получить доступ wp-login.php или xmlrpc.php.

Чтобы проверить, все ли работает правильно, выберите заблокированный IP-адрес из списка fail2ban и найдите его в iptables.

Запустите командную строку:

iptables -L -v -n --line-numbers

Если IP-адрес, заблокированный fail2ban, также находится в этом списке, это означает, что вы правильно настроили fail2ban для него. WordНажмите.

Связанный: Как сбросить пароль пользователя администратора в WordНажимать. Нет доступа к электронной почте.

В то же время настоятельно рекомендуется проверить журнал с действиями fail2ban:

sudo tail -f /var/log/fail2ban.log

Тем не менее, если у вас возникнут какие-либо вопросы или понадобится помощь, я могу помочь вам в комментариях.

Поклонник технологий, с 2006 года с удовольствием пишу на StealthSettings.com. Обширный опыт работы с операционными системами: macOS, Windows и Linux, а также с языками программирования и платформами для блогов (WordPress) и онлайн-магазинов (WooCommerce, Magento, PrestaShop).

Главная » Ваш источник учебных пособий по ИТ, полезных советов и новостей. » Как настроить Fail2Ban для WordPress (wp-login, xmlrpc)
Оставьте комментарий