Короче говоря, в этом руководстве вы найдете командные строки, с помощью которых вы можете установить и настроить 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
Тем не менее, если у вас возникнут какие-либо вопросы или понадобится помощь, я могу помочь вам в комментариях.