Фильтры Fail2ban для защиты WordPress от брутфорса wp-login.php и xmlrpc.php

Обновлено: Август 2026 Стек: Fail2ban, WordPress, Nginx Проверено: Production-Ready

Специализированный regex-фильтр Fail2ban для WordPress: перехват POST-запросов к /wp-login.php и /xmlrpc.php в access.log Nginx и бан атакующих ботнетов.

Интерактивный генератор под ваши параметры
Параметры подставляются в код в реальном времени
/etc/fail2ban/filter.d/wordpress-auth.conf
# /etc/fail2ban/filter.d/wordpress-auth.conf
[Definition]
failregex = ^<HOST> .* "POST /wp-login.php HTTP/.*" 200
            ^<HOST> .* "POST /xmlrpc.php HTTP/.*" 200
            ^<HOST> .* "POST /wp-login.php HTTP/.*" 403
ignoreregex =

Разбор ключевых директив конфигурации

Техническое обоснование директив и их прямое влияние на процессор (CPU), оперативную память (RAM) и дисковый ввод-вывод (NVMe I/O).

Директива / Блок Рекомендуемое значение Зачем нужно и системное влияние (CPU / RAM / I-O)
POST /wp-login.php POST 200/403 Отслеживает многократные попытки авторизации в админку WordPress.
POST /xmlrpc.php POST 200 Блокирует попытки атак типа Amplification Brute Force через протокол XML-RPC.
ufw default deny incoming deny incoming Блокирует все входящие порты по умолчанию, оставляя доступными только явно разрешенные сервисы (HTTP/HTTPS/SSH).
bantime = 24h 24h Блокирует IP адрес атакующего на 24 часа при превышении порога неудачных попыток авторизации.

Рекомендуемые системные требования VDS под этот стек

Расчет минимальной и оптимальной конфигурации виртуального сервера для стабильной работы без сбоев.

Оптимальный сайзинг: 1-2 vCPU, 2 GB RAM, WordPress VDS
Timeweb Cloud
2 CPU / 4 GB NVMe
Рекомендуемые ресурсы
1-2 vCPU / 2 GB RAM / 30 GB NVMe
🔷 Selectel
2 vCPU / 4 GB RAM
Рекомендуемые ресурсы
1-2 vCPU / 2 GB RAM / 30 GB NVMe
🟠 Beget
Turbo 4 GB
Рекомендуемые ресурсы
1-2 vCPU / 2 GB RAM / 30 GB NVMe

Онлайн-утилиты SysKit для проверки этого сервера

Протестируйте корректность применения конфигурации прямо сейчас в один клик.

Частые ошибки при настройке и их решение (FAQ)

Типовые проблемы вебмастеров и сисадминов при внедрении данной конфигурации.

Как протестировать регулярное выражение?
Выполните `fail2ban-regex /var/log/nginx/access.log /etc/fail2ban/filter.d/wordpress-auth.conf`.
Как не заблокировать собственный IP адрес?
Добавьте ваш IP в директиву `ignoreip = 127.0.0.1/8 ::1 ВАШ_IP` в файле `/etc/fail2ban/jail.local`.
Как разблокировать ошибочно забаненный IP?
Выполните команду `fail2ban-client set <jail_name> unbanip <IP_ADDRESS>`.