Безопасность XML-RPC
В CMS Wordpress есть возможность удаленной публикации, редактирования и удаления постов и комментариев. Функциональность реализована через протокол XML-RPC.
До версии 3.5 в настройках Wordpress была возможность отключить XML-RPC.
Теперь такой возможности нет, протокол подключается по умолчанию с момента установки/обновления CMS.
Использование XML-RPC небезопасно. Проблема в том, что злоумышленники могут использовать протокол для взлома вашего сайта через подбор пароля (брутфорс-атака). Вы не увидите информацию об ошибке, но заметите что скорость работы сайта сильно снизится.
Как выявить атаку?
Для выявления атаки у вас должна быть установлена панель управления ISPmanager со стандартными настройками.
Подключитесь к серверу по SSH и выполните команду:
grep -h $(date "+%d/%b/%Y") /var/www/httpd-logs/*.access.log | awk '{print $1" "$7}' | sort | uniq -c | sort -rnk1 | head -10 | grep -i xmlprc
В ответе на команду отобразятся столбцы: количество_запросов, адрес_запроса и url_запроса.
Пример:
2213 66.249.91.145 /bitrix/tools/conversion/ajax_counter.php 33 22.111.21.123 /bitrix/tools/conversion/ajax_counter.php 2 5.10.12.13 /bitrix/components/bitrix/sale.gift.product/ajax.php
Если среди этих запросов вы видите много обращений к xmlrpc.php, скорее всего ваш сервер атакуют xmlrpc-bruteforce.
Как защититься?
Рассмотрим три способа защиты.
Если вы выявили проблему, но не уверены, что самостоятельно можете настроить защиту — напишите в службу поддержки.
Первый способ: редактируем wp-config.php
Подключитесь к серверу по FTP. Откройте каталог вашего сайта.Обычно это /var/www/www-root/data/www/ваш домен
В нем расположен файл wp-config.php. Откройте его для редактирования.
Найдите строку:
require_once(ABSPATH . 'wp-settings.php');
После нее допишите:
add_filter('xmlrpc_enabled', '__return_false');
Второй способ: редактируем .htaccess
Как и в первом способе подключитесь к каталогу вашего сайта. Найдите файл .htaccess и откройте его для редактирования.
Добавьте в файл:
<Files xmlrpc.php> Order Deny,Allow Deny from all </Files>
Если на вашем сервере Apache 2.4 нужно добавить другие строки:
<Files xmlrpc.php> Satisfy any Order allow,deny Deny from all </Files>
Третий способ: сторонний плагин
Вы можете установить модуль Disable XML-RPC Pingback.
Дополнение можно загрузить с официального сайта Wordpress или админ-панели вашего сайта.