Брутфорс-атаки на WordPress блоги и способы защиты от них

Уважаемые владельцы блогов на WordPress. На данный момент определенная часть блогов в Рунете на платформе WordPress подверглась массированной атаке. Из-за этой атаки сегодня с 7 утра данный блог не был доступен, так как хостер заблокировал его за нагрузку. Судя по логам, брутфорсят пароли к админке через wp-login.php, а также идет огромное количество запросов к файлу xmlrpc.php. В WordPress протокол XML-RPC по умолчанию активен. Через него то и идут брутфорс-атаки на сайт, которые грузят сервер и вынуждают хостера блочить аккаунт.



3
Причем, как видно из логов, это уже вторая волна атаки. Первая атака на данный блог была 8-10 августа. Тогда сайт жутко тормозил, но продолжал работать. Вторая волна атаки началась сегодня утром. Если ваш блог все еще работает, то радуйтесь и готовьтесь защищаться.
1
Первое, что надо сделать — это заглянуть в свои логи. Если там есть следующие строки, то пора приступать к определенным действиям:
204.93.211.113 — — [10/Aug/2014:07:03:59 +0400] «POST /wp-login.php HTTP/1.0» 200 4052
178.150.204.92 — — [10/Aug/2014:07:04:04 +0400] «POST /wp-login.php HTTP/1.0» 200 4052
178.150.204.92 — — [10/Aug/2014:07:04:04 +0400] «POST /wp-login.php HTTP/1.0» 200 4052
204.93.211.113 — — [10/Aug/2014:07:04:03 +0400] «POST /wp-login.php HTTP/1.0» 200 4052

200.30.197.8 — — [15/Aug/2014:09:13:24 +0400] «POST /xmlrpc.php HTTP/1.0» 200 403
212.200.74.161 — — [15/Aug/2014:09:13:44 +0400] «POST /xmlrpc.php HTTP/1.0» 200 403
78.167.0.185 — — [15/Aug/2014:09:13:48 +0400] «POST /xmlrpc.php HTTP/1.0» 200 403
99.45.171.11 — — [15/Aug/2014:09:13:54 +0400] «POST /xmlrpc.php HTTP/1.0» 200 403

2

Итак, 3 простых действия, которые защитят ваш блог от брутфорс-атак на wp-login.php и xmlrpc.php.
ШАГ 1. Отключаем XML-RPC протокол ручным способом: вставляем в .htaccess следующий код:

<Files xmlrpc.php>
   Satisfy any
   Order allow,deny
   Deny from all
</Files>

Тем самым мы запрещаем обращение к файлу xmlrpc.php. Впрочем, если вам лень лезть в .htaccess, то можете установить плагин Disable XML-RPC, единственная функция которого отключение одноименного протокола.

ШАГ 2.
Закрываем доступ к wp-login.php кодом в .htaccess:

<Files wp-login.php>
Order Deny,Allow
Deny from all
</Files>

ШАГ 3. Переименовываем файл wp-login.php на хостинге на любое название с расширением .php. К примеру, kjhssfs.php. Не используйте в названии цифры, так как WP не воспримет данный файл и выдаст 404 ошибку. Затем открываем данный файл в блокноте и меняем во всех строках wp-login.php на название, которое вы дали файлу. Теперь в админку сможете войти только ВЫ, набрав в адресной строке http://ваш-сайт.ru/jhssfs.php.

Это самые простые шаги для решения данной проблемы. Не требуется никаких плагинов и дополнительных расширений. Обычная правка кода в определенных файлах. Возникнут вопросы — готов помочь в комментариях к данной статье. Удачи!

UPD^ Никто не знает, подобрали ли пароль к вашему блогу или нет. Рекомендую сменить пароль к блогу и сбросить кукисы, сменив «ключи» в wp-config.php. Получить новые «ключи» вы можете по адресу https://api.wordpress.org/secret-key/1.1/salt/

3 comments

  1. Даниил

    Спасибо, очень помогло, целую неделю не мог понять что грузит сайт

  2. Юрий

    Спасибо за статью, помогли избежать блокировки сайта, и избавиться от этой напасти.
    до 3 запросов в сек генерировалось откуда то, 19000 в неделю

  3. Ivan

    А можно просто отключить файл xmlrpc.php через ренейм файла (в _xmlrpc.php)?

Добавить комментарий

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