Решение проблемы

Защита wordpress от XML-RPC атаки


Некоторое время назад мониторинг показал повышенную нагрузку на веб-сервера. Традиционно сразу же пошел проверять лог веб сервера nginx на предмет подозрительной активности. Активность эта сразу же была замечена в виде запросов к файлу xmlrpc.php. Почитал в интернете, что это за файл и принял решение запретить к нему доступ, так как мне он не нужен.

Признаком повышенного интереса к вашему веб сайту на wordpress будут следующие строки в лог файле:

178.159.37.114 - - [26/Oct/2017:13:01:22 +0300] "POST //xmlrpc.php HTTP/1.1" 200 16014 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36" "-"

Для примера, будем считать, что веб сервер настроен по статье — настройка web сервера nginx, php-fpm, php7 на CentOS 7. Там есть такое правило в конце перечисления locations в nginx:

 location ~ /.ht {

deny all;
}

Изменяем его, добавив блокировку файла xmlrpc.php и ставим его в списке самым первым location.

location ~* ^/(.ht|xmlrpc.php)$ {

return 404;
}

Перечитываем конфиг nginx:

# nginx -s reload

Проверяем, работает ли реально блокировка файла xmlrpc.php. Для этого сначала просто пройдите по ссылке, в моем случае такой — https://serveradmin.ru/xmlrpc.php Это мы проверили GET запрос. Чтобы проверить POST запрос, введите в адресной строке браузера следующую конструкцию:

data:text/html,<form action=https://serveradmin.ru/xmlrpc.php method=post><input name=a></form>

Защита wordpress от XML-RPC атаки

В появившейся форме введите любое значение и нажмите Enter на клавиатуре.

Проверяем лог файл.

# cat ssl-access.log | grep 77.27.225.139

77.27.225.139 - - [18/Dec/2017:15:35:07 +0300] "GET /xmlrpc.php HTTP/2.0" 404 201 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0" "1.30"
77.27.225.139 - - [18/Dec/2017:15:41:44 +0300] "POST /xmlrpc.php HTTP/2.0" 404 201 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0" "1.30"

Все в порядке, веб сервер выдает ошибку 404. Закрыли доступ к файлу xmlrpc.php, через который можно брутфорсить учетки, либо искать уязвимости.

Для повышения безопасности и защиты сайта на wordpress, читайте материалы на сайте по данной теме:

  • Защита админки wordpress с помощью fail2ban
  • Спам запросов к al_profileEdit.php на веб сервере
  • Простая защита веб сервера от DDOS
  • Блокировка доступа к сайту по странам
Не понравилась статья и хочешь научить меня администрировать? Пожалуйста, я люблю учиться. Комментарии в твоем распоряжении. Расскажи, как сделать правильно!

СМОТРИ ТАКЖЕ