DDOS атака на сайт WordPress. Как заблокировать WPscan?

Ссылка скопирована
2 ответов

На хостинге Regru превышен лимит CPU в 13%. Изучив в чем проблема, вышел на то, что некий User agent - Wpscan каждый день делает запросы по 250 тысяч.

DDOS атака на сайт Wordpress. Как заблокировать WPscan?

По статистике запросов по IP показывает украинский IP

Пока что просто заблокировал Ip, но понимаю, что это бесполезно.

Подскажите, как мне заблокировать этот WP scan?

Дополнительные вопросы

Если приходит с одного IP, то это не ddos. Первая буква в слове ddos - distributed, то есть "распределённый".

Если это зловредная деятельность и IP атакующего будет меняться, то надо осваивать fail2ban.

  • любопытно, если этот WPscan не зловредный, а просто очень любопытный, не достаточно ли добавить его robots.txt
  • Иерокопус Таманский, вполне может быть, что зловред изображает в агенте кого-то безобидного.
  • Смысл в том, что можно попробовать сначала с robots.txt . Для зловредов и игнорирующих эти указания это, конечно, бесполезно. Зато если бот следует указаниям для роботов, то он может отпасть сам.
  • Ответы:

    Если не хочешь разбираться с fail2ban то можно поставить wordfence и (или) настроить Cloudflare.

    • Кстати самый лучший вариант - такое комбо. Выручает уже несколько лет около 30+ сайтов

    Владимир Е @vlaero

    Пока что просто заблокировал Ip, но понимаю, что это бесполезно.

    - разве количество запросов не упало?

    Подскажите, как мне заблокировать этот WP scan?

    Блокировка по агенту, в htaccess

    <If "%{HTTP_USER_AGENT} == 'WPScan'">     Require all denied </If>

    <If "%{HTTP_USER_AGENT} == 'WPScan'"> Require all denied </If>

    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    2
    Есть ответ! Ответ

    WPScan сам по себе не DDoS, но частые сканирования могут создавать лишнюю нагрузку на WordPress: перебор авторов, REST API, XML-RPC, запросы к плагинам и темам. Блокировать лучше не WordPress-кодом, а на уровне Cloudflare, nginx, fail2ban или WAF.

    Что можно сделать безопасно:

    • закрыть или ограничить xmlrpc.php, если он не нужен;
    • включить rate limiting на частые запросы;
    • скрыть вывод версии WordPress и отключить лишние endpoints;
    • настроить Cloudflare WAF/rules для подозрительных User-Agent и частоты запросов;
    • проверить логи доступа и блокировать не название WPScan, а конкретный паттерн нагрузки.

    Пример ограничения xmlrpc в nginx:

    location = /xmlrpc.php {
        deny all;
    }

    location = /xmlrpc.php { deny all; }

    Но не отключайте XML-RPC вслепую, если сайт использует Jetpack, мобильное приложение WordPress или внешние публикации. Сначала проверьте логи и зависимости.

    Другие ответы (1) Ответить на вопрос
    Ольга Сеть

    Если WPScan делает сотни тысяч запросов в день, блокировать нужно не только один IP, а сам паттерн сканирования. IP быстро меняется, а нагрузка останется. Лучше решать это на уровне Cloudflare/WAF/nginx/хостинга, потому что WordPress уже слишком поздно получает запрос: PHP и база могут быть нагружены ещё до того, как ваш код что-то заблокирует.

    Что сделать в первую очередь:

    1. Проверить access log и выделить самые частые URL: /wp-json/, /xmlrpc.php, /wp-login.php, запросы к readme, плагинам и темам.
    2. Закрыть или ограничить xmlrpc.php, если он не нужен.
    3. Поставить rate limit на wp-login.php и REST API.
    4. В Cloudflare создать WAF/rate limiting rule для подозрительных User-Agent и частоты запросов.
    5. Настроить fail2ban по access log, если есть доступ к серверу.

    Пример для nginx, если XML-RPC не используется:

    location = /xmlrpc.php {
        deny all;
    }

    location = /xmlrpc.php { deny all; }

    Пример грубой блокировки User-Agent на nginx:

    if ($http_user_agent ~* "wpscan") {
        return 403;
    }

    if ($http_user_agent ~* "wpscan") { return 403; }

    Но только на User-Agent полагаться нельзя: его легко подменить. Надёжнее сочетать rate limit, WAF и блокировку конкретных endpoint-ов.

    В Cloudflare можно сделать правило: если URI содержит /wp-login.php или /xmlrpc.php и частота превышает норму, выдавать challenge или block. Для REST API лучше не рубить всё подряд, потому что некоторые плагины и фронтенд могут его использовать.

    После защиты смотрите не только количество запросов, но и CPU/TTFB. Если запросы ушли, а CPU всё равно высокий, значит параллельно есть другая проблема: cron, тяжёлые плагины, WooCommerce AJAX, бэкапы или медленные SQL-запросы.

    комментарий

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

    Вам также может быть интересно