Несколько лет назад к нам в студию обратился клиент - владелец интернет-магазина на WordPress. Сайт начал жутко тормозить, хостинг присылал предупреждения о нагрузке, а в логах была одна картина: тысячи запросов к wp-login.php за час. Классический брутфорс. Боты методично перебирали password combinations, пытаясь подобрать пароль к административной панели.

Меня зовут Андрей Зенков, я руковожу веб-студией «Мельница». За годы работы с WordPress-проектами я видел brute force attacks разного масштаба - от любительских скриптов до серьёзных ботнетов. Базовая защита your wordpress от брутфорса строится на трёх вещах: плагине для ограничения попыток входа, закрытии xmlrpc.php и сложном пароле с нестандартным логином. Причём первые два пункта делаются за 20-30 минут - достаточно правильно выбрать и настроить плагин.

В этом материале разбираю конкретные инструменты и настройки: какой плагин выбрать, как закрыть xmlrpc.php, зачем нужна двухфакторная аутентификация и как убедиться, что your site действительно защищён. Установку WordPress и общие принципы безопасности не рассматриваю - только защита от перебора паролей.

Почему WordPress уязвим к брутфорсу по умолчанию

Проблема в том, что wordpress core не содержит никакого встроенного механизма ограничения login attempts. Можно вводить неверный пароль хоть тысячу раз подряд - сайт будет отвечать на каждый запрос. Это не баг, это архитектурное решение, которое перекладывает задачу защиты на плагины и настройки сервера.

У brute force атак на wordpress sites есть два основных вектора. Первый - wp-login.php, стандартная страница входа. Её адрес известен всем ботам по умолчанию, поэтому она принимает на себя основной удар. Второй вектор - xmlrpc.php, интерфейс для удалённого управления сайтом. Он опаснее: через один запрос к xmlrpc можно проверить сразу несколько тысяч комбинаций логин/пароль, что делает перебор в разы быстрее.

На практике это выглядит так: после свежей установки WordPress на новый домен боты находят сайт в течение нескольких дней и начинают долбить оба эндпоинта. Настройки безопасности по умолчанию этому никак не препятствуют.

Симптомы, которые я видел у клиентов: резкое падение производительности сайта, рост нагрузки на сервер без видимых причин, иногда - временная недоступность сайта из-за исчерпания лимитов хостинга. В логах сервера при этом - сотни одинаковых POST-запросов к wp-login.php или xmlrpc.php с разных IP-адресов. Если вы видите такую картину - сайт уже атакуют, и без дополнительных мер защиты это будет продолжаться. Без ограничения попыток WordPress будет отвечать на каждый такой запрос.

Плагины для ограничения попыток входа: какой выбрать

Первое, что нужно сделать после обнаружения атаки (или в качестве профилактики) - установить плагин, который будет блокировать IP-адреса после нескольких неудачных попыток входа. Таких плагинов несколько, и они заметно отличаются по функциональности.

Я пробовал разные решения на проектах студии. Для большинства сайтов малого и среднего бизнеса достаточно бесплатного функционала. Вот сравнительная таблица четырёх наиболее популярных вариантов:

Плагин Бесплатен Ограничение попыток Защита xmlrpc 2FA Нагрузка на сервер
Limit Login Attempts Reloaded Да Да Да Нет Минимальная
Wordfence Security Частично Да Да Да (платно) Средняя
Jetpack Частично Да Да Да (платно) Средняя
All In One WP Security Да Да Да Нет (базово) Низкая

Мой выбор для большинства проектов - Limit Login Attempts Reloaded. Он занимается одним, но делает это хорошо: блокирует IP после заданного числа неудачных попыток входа, умеет ограничивать force attacks через xmlrpc, не грузит сервер и не тащит за собой кучу ненужных функций. Именно его я устанавливаю первым делом на новые проекты клиентов.

Wordfence - большой комбайн с файрволом, сканером вредоносного кода и многим другим. Хорош для сайтов, где нужна защита сразу по нескольким фронтам. Но у него есть минус: он заметно нагружает сервер, особенно во время сканирования. На дешёвом хостинге это может создавать проблемы. Защита от limit login attempts в нём есть и работает нормально, но если нужен только этот функционал - Wordfence избыточен.

Jetpack требует привязки к аккаунту WordPress.com, что нравится не всем. All In One WP Security - достойная альтернатива с широким набором настроек, но интерфейс перегружен, и новичкам в нём легко запутаться. Для force attacks защиты оба справляются, но я предпочитаю более лаконичные решения.

Главное при выборе: убедитесь, что плагин умеет обрабатывать не только форму входа, но и запросы к xmlrpc.php - именно там боты часто обходят стандартную защиту.

Как настроить ограничение попыток входа через плагин

Выбрали плагин - теперь установите его и правильно настройте. Покажу на примере Limit Login Attempts Reloaded, который рекомендую большинству клиентов.

  1. Установка. Заходите в панель WordPress: Плагины - Добавить новый. В строке поиска вводите «limit login attempts reloaded», находите плагин, жмёте «Установить» и затем «Активировать». Всё, плагин уже работает с настройками по умолчанию.
  2. После активации идите в Settings - Limit Login Attempts. Здесь три параметра, которые нужно проверить или скорректировать под свои задачи.
  3. Параметр Allowed retries - количество попыток до блокировки. Ставьте 3-5. Больше - теряем смысл защиты, меньше - рискуем заблокировать самого себя при случайной ошибке пароля.
  4. Параметр Minutes lockout - время первой блокировки. Рекомендую 20 минут: login attempts из автоматизированного скрипта остановятся, а легитимный пользователь просто подождёт.
  5. Параметр Lockouts increase lockout time - блокировка после повторных попыток. Если тот же IP продолжает атаковать после первой паузы, ставьте 24 часа. На практике большинство ботов отваливается уже после первой блокировки.
  6. Включите уведомления на email - параметр Email on lockout. Так вы сразу узнаете, если your WordPress оказался под атакой, а не обнаружите проблему случайно через неделю в логах хостинга.

Логика простая: IP блокируется после N неудачных попыток, задержка растёт при повторных атаках. Не нужно ставить слишком жёсткий лимит - 2 попытки с блокировкой на сутки создадут больше проблем вам, чем атакующим. Разумный баланс: 4 попытки, 20 минут, потом 24 часа.

Защита xmlrpc.php: отключить или ограничить

Блокировка xmlrpc.php от брутфорс атак WordPress

После того как разобрались с формой входа, нужно закрыть второй вектор - xmlrpc.php. Этот файл позволяет управлять WordPress через XML-запросы, и именно через него проходит значительная часть brute force attack. Посмотрите логи хостинга: если видите сотни POST-запросов к xmlrpc.php - это уже идёт атака.

Есть три подхода, выбор зависит от вашей инфраструктуры:

  • Полное отключение через functions.php. Самый простой способ, если не используете мобильное приложение WordPress, JetPack или сторонние интеграции. Добавляете одну строку в файл functions.php активной (дочерней) темы:
add_filter('xmlrpc_enabled', '__return_false');

Файл functions.php редактируете через файловый менеджер хостинг-панели или по FTP. После этого xmlrpc.php перестаёт отвечать на любые запросы.

  • Блокировка на уровне сервера. Надёжнее - запрос вообще не доходит до PHP. Для Apache добавляете в .htaccess:
<Files xmlrpc.php>
 order allow,deny
 deny from all
</Files>

Для nginx добавьте в конфиг блок location = /xmlrpc.php { deny all; }. Your server будет возвращать 403 до того, как WordPress вообще загрузится - это снижает нагрузку при массовых force attacks.

  • Частичное ограничение. Если JetPack или другие сервисы требуют xmlrpc - установите плагин «Disable XML-RPC Pingback». Он отключает только функцию pingback, которую чаще всего используют для атак, оставляя нужные вам возможности работать.

Как проверить результат: откройте логи хостинга через панель управления и убедитесь, что POST-запросы к xmlrpc.php либо исчезли, либо получают статус 403. Если запросы идут и возвращают 200 - защита не работает, проверьте порядок правил в .htaccess.

Сложные пароли и смена стандартного логина admin

После того как настроили ограничение попыток входа и закрыли xmlrpc, следующий шаг - разобраться с логином и паролем. Это кажется очевидным, но именно здесь чаще всего остаётся дыра.

Логин admin - первое, что проверяет любой брутфорс-бот. Он встречается на большинстве сайтов по умолчанию, и боты об этом прекрасно знают. Если у вас ещё стоит такой логин, панель WordPress фактически открыта наполовину - боту остаётся только подобрать пароль.

Как сменить логин правильно:

  1. Создайте нового пользователя с правами администратора и нестандартным логином - например, ваше имя плюс несколько цифр.
  2. Войдите под новым аккаунтом.
  3. Удалите старого пользователя admin - при удалении WordPress предложит переназначить его записи и страницы на нового администратора. Выберите нового пользователя и подтвердите.

Теперь о пароле. Чтобы защититься от атак с перебором password combinations, пароль должен быть непредсказуемым: минимум 12 символов, микс строчных и заглавных букв, цифры и спецсимволы. WordPress сам генерирует надёжные пароли при создании пользователя - используйте эту функцию, не придумывайте вручную.

Чтобы требования к паролю распространялись на всех пользователей сайта, можно enforce strong passwords через плагины Wordfence или All In One WP Security. В Wordfence это делается в разделе Login Security - включаете опцию принудительной смены слабых паролей. Это важно для your site, если над ним работают несколько авторов или редакторов: сложные пароли должны стоять у всех, а не только у администратора.

И ещё один момент, про который часто забывают: перед любыми изменениями в настройках безопасности делайте резервное копирование. Риск взлома - это одно, но случайно заблокировать себе доступ к сайту при редактировании настроек - тоже неприятная ситуация. Бэкап перед изменениями - правило, которое я соблюдаю на всех проектах студии.

Дополнительные меры: двухфакторка, Cloudflare, резервное копирование

Плагин ограничения входа, закрытый xmlrpc, сложный пароль и смена логина - это уже хороший базовый уровень. Но для серьёзных проектов с реальным трафиком и коммерческими данными этого бывает недостаточно. Расскажу про меры, которые несложно добавить, а защита вырастает существенно.

Двухфакторная аутентификация. Даже если злоумышленник каким-то образом получил логин и пароль, двухфакторка его остановит. Плагин Two-Factor или плагин от Wordfence позволяет добавить подтверждение через Google Authenticator - при каждом входе нужно вводить одноразовый код с телефона. На проектах клиентов, где в панели работает несколько человек, я рекомендую включать 2FA хотя бы для администраторов.

Cloudflare WAF - это фильтрация трафика ещё до того, как запросы дошли до вашего хостинга и сервера. Бесплатный план даёт базовую защиту от известных brute force attack паттернов и автоматически блокирует часть вредоносных ботов. Для wordpress sites с посещаемостью от нескольких сотен человек в день - однозначно стоит подключить. Настройка занимает около получаса: меняете NS-записи домена на Cloudflare, включаете проксирование.

Смена URL страницы входа через плагин WPS Hide Login - простая, но рабочая мера. Боты атакуют стандартный адрес /wp-login.php, и если его не существует - автоматические атаки просто проходят мимо your site. Адрес входа знаете только вы.

Резервное копирование - последний рубеж на случай, если всё остальное не сработало. UpdraftPlus позволяет настроить автоматические бэкапы на внешнее хранилище: Google Drive, Dropbox или SFTP на отдельный сервер хостинга. Расписание - раз в сутки для активных проектов. Без внешнего хранилища резервное копирование теряет смысл: если сломали сервер, бэкап на том же сервере вам не поможет.

Как убедиться, что защита работает: чеклист

Чеклист безопасности WordPress с отмеченными пунктами

После того как все настройки сделаны, важно убедиться, что защита реально работает, а не просто установлена. Открой панель плагина Limit Login Attempts Reloaded - там есть раздел с логами заблокированных IP. Если видишь там записи - это хороший знак: плагин фиксирует brute force атаки и блокирует подозрительные login attempts. Пустые логи на активном сайте скорее говорят о том, что что-то настроено неправильно.

Вот чеклист, который я сам прохожу при аудите защиты на проектах студии. Пройди по каждому пункту и отметь, что уже сделано:

  • Нестандартный логин администратора - логин «admin» удалён или переименован, вход по нему невозможен.
  • Сложный пароль - минимум 16 символов, буквы разного регистра, цифры, спецсимволы. Пароль не используется на других сайтах.
  • Ограничение попыток установить и активировать - плагин Limit Login Attempts Reloaded включён, лимит попыток выставлен (рекомендую 3-5 попыток до временной блокировки).
  • xmlrpc.php закрыт - проверь через браузер или сервис типа xmlrpc.php checker: файл должен возвращать 403 или быть недоступен.
  • Двухфакторная аутентификация включена - плагин 2FA активен, вход через приложение-аутентификатор работает.
  • Резервное копирование настроено - UpdraftPlus или аналог делает автоматические бэкапы, последний бэкап успешно завершился.
  • Cloudflare или WAF подключён - your site проходит через проксирование, правило защиты страницы входа активно.

Теперь про типичные проблемы. Самая частая - самоблокировка: ты сам вводишь пароль несколько раз неправильно и your wordpress блокирует твой собственный IP. Решается двумя способами: через панель плагина (раздел разблокировки IP) или через phpMyAdmin. Перед любыми правками в phpMyAdmin сделайте резервную копию базы данных. Далее: находишь таблицу wp_options, ищешь запись limit_login_lockouts и удаляешь её. Также помогает хостинг-панель: заходишь через неё в файловый менеджер и временно деактивируешь плагин, переименовав папку в /wp-content/plugins/.

Вторая типичная проблема - конфликты плагинов. Если после установки защиты перестала работать форма входа или возникают ошибки, поочерёдно деактивируй недавно установленные плагины и проверяй, исчезла ли проблема. Чаще всего конфликтуют плагины кэширования - они иногда кэшируют страницу входа и нарушают работу счётчика попыток.

Начни с установки Limit Login Attempts Reloaded - это займёт не больше 10 минут и закроет основной вектор атаки. После этого пройди чеклист сверху вниз и закрой оставшиеся пункты по одному. Полная защита занимает не больше часа работы.

Эта статья основана на личном опыте автора и актуальна на момент публикации. Интерфейсы сервисов и алгоритмы поисковых систем регулярно меняются, рекомендую проверять актуальность инструкций на официальных ресурсах. Если у вас остались вопросы - задайте их в комментариях.

Список литературы

  1. WordPress Contributors - Brute Force Attacks // WordPress Advanced Administration Handbook (developer.wordpress.org), обновлено 2026
  2. WordPress.com Support - Prevent unwanted login attempts (Brute Force Attack Protection) // WordPress.com, обновлено 2026
  3. WPChef - Limit Login Attempts Security (Limit Login Attempts Reloaded) // WordPress.org Plugin Repository, обновлено 2026
  4. awaik (Alex Awaikin) - И опять атака на сайты WordPress - перебор + XMLRPC // Habr, 2014
Поделитесь Вашим мнением
Ваш комментарий

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


Еще записи из этой же рубрики

Что будем искать? Например,Хостинг

Минуту внимания
Мы используем файлы cookies, чтобы обеспечивать правильную работу нашего веб-сайта, а также работу функций социальных сетей и анализа сетевого трафика.