Назад | Перейти на главную страницу

Боты попадают в xmlrpc.php и вызывают высокую нагрузку на сервер

В последнее время у нас много обращений к wordpress xmlrpc.php, что в конечном итоге вызывает высокую нагрузку на серверы.

Мы попытались переписать весь xmlrpc.php на 127.0.0.1, но это не помогло. Поскольку apache все еще обрабатывал соединения. В конце концов мы заблокировали такие соединения, используя

iptables -I INPUT 1 -p tcp --dport 80 -m string --string "xmlrpc.php" --algo bm -j DROP

К сожалению, все это вызывает проблемы с плагинами, использующими xmlrpc.php, такими как jetpack и т. Д.

У кого-нибудь был опыт работы с такого рода проблемами и есть предложения, как с этим справиться?

Изменить: можно ли добавить дополнительное правило, которое разрешило бы доступ из диапазона IP-адресов WordPress? Как это правило будет выглядеть, если правило блокировки использует строку?

У описанного вами правила брандмауэра есть 2 проблемы:

  1. Вы должны установить некоторые ограничения скорости, а не просто все блокировать.

  2. Использование строкового модуля в брандмауэре не очень разумно по соображениям производительности.

Лучше всего поставить HAProxy перед Apache. Вы можете посмотреть мой ответ в эта почта для получения более подробной информации о том, как это сделать и почему.

Мой личный опыт в подобных вещах позволяет избежать «исправления» проблемы. Не блокируйте одного бота, переходящего по одной ссылке. Другие боты просто войдут и перейдут по другим ссылкам. Вам необходимо настроить какую-то защиту от перебора, которая будет блокировать повторяющиеся обращения к вашему серверу.

ModSecurity отлично подходит для этого и является встроенным apache, если вы используете apache в качестве веб-сервера.

Если вы не упомянули wordpress. Wordpress имеет множественный плагины для блокировки такого рода повторяющихся действий. WordFence - это хороший инструмент, который мы успешно используем с нашими клиентами.

В целом, я рекомендую вам устранить основную причину, а не пытаться исправить единственный случай.

Мое предложение связано с проблемой, попробуйте заблокировать доступ, добавив этот код в

.htaccess
<Files "xmlrpc.php">
Order Deny,Allow
Deny from all
</Files>