Атака XMLRPC - обычная атака, которая позволяет злоумышленнику постоянно называть ваш файл xmlrpc.php произвольными учетными данными.
Вам необходимо использовать служебные программы, такие как Fail2Ban, который достаточно эффективен для запрета и предотвращения вашего сайта WordPress против обычной атаки xmlrpc.
Прежде всего отключите XMLRPC, если вы не отправляете контент извне. Добавьте следующую строку кода в function.php
файле вашей темы
add_filter('xmlrpc_enabled', '__return_false');
Добавьте следующее в вашем .conf
файле
location = /xmlrpc.php {
deny all;
access_log off;
log_not_found off;
}
Затем вам нужно установить Fail2Ban
на сервере
apt-get install fail2ban iptables
или
yum install fail2ban
Сообщение установки, вам нужно отредактировать файл jail.conf
vim /etc/fail2ban/jail.conf
Внутри файла jail.conf
добавьте следующие строки кода
[xmlrpc]
enabled = true
filter = xmlrpc
action = iptables[name=xmlrpc, port=http, protocol=tcp]
logpath = /var/log/apache2/access.log
bantime = 43600
maxretry = 2
Это будет читать файл access.log (указать фактический путь вашего журнала доступа) и ищет неудачные попытки. Если он обнаруживает более 2 неудачных попыток, IP-адрес злоумышленников добавляется в ваш iptables.
Теперь мы должны создать фильтр для fail2ban. Введите это в терминале
cd /etc/fail2ban/filter.d/
vim xmlrpc.conf
Внутри этого файла фильтра вставьте следующее определение
[Definition]
failregex = ^<HOST> .*POST .*xmlrpc\.php.*
ignoreregex =
Теперь просто перезапустите Fail2ban службу
service fail2ban restart or /etc/init.d/fail2ban/restart
Смотрите журнал, как этот
tail -f /var/log/fail2ban.log
Также в вашем iptables вы будете постоянно видеть множество записей, которые должны видеть сообщение об ошибке отказа.
watch iptables -L
для постоянного наблюдения.Он должен немедленно заблокировать атаку xmlrpc, и вы увидите много записей в вашем iptables.
Если есть плагины, которые зависят от XMLRPC, вы можете разрешить собственный IP-адрес в файле конфигурации.