Как вы боретесь с атаками на сайт, когда сайт находится на виртуальном хостинге?
В последнее время начал часто сталкиваться с атаками на сайт, которые отправляют тысячи запросов (паразитный ботовый трафик и L7-флуд), тем самым сайт ложится, хостинг кричит, клиент тоже... приходится чинить.
Раньше была волшебная таблетка: cloudflare. Подключаешь его к сайту, а он не только защищает его бесплатно, но и ускоряет. Сейчас его нет. Быстрый ресерч альтернативных СНГ решений дал только платные сервисы с действительно дорогими ценами, особенно в пропорции со стоимостью самого хостинга. Приходится что-то выдумывать, плагины защиты (а-ля wordfence или aios) особо не помогают, только окончательно добивают полулежащий сайт, такие плагины создают очень большую нагрузку на бд и прочее, потому что они работают ВНУТРИ PHP, который и так уже загружен на 100%.
Самое лучшее решение, по моему мнению: перейти на выделенный сервер, там нормальный ssh доступ, поставил себе все сервисы, имеешь полный контроль, настроил защиту, лимиты, заблокировал подсети вредоносных ip и прочего из логов, на крайняк распределил нагрузку между воркерами, чтобы посетитель всегда получал сайт, даже если в него будет долбиться тысячи роботов в секунду (кейс такой совсем недавно был).
Но что делать, если все же нужно что-то придумать на виртуальном хостинге, и да, желательно без танцев с бубнами на горе?
Мое решение сейчас:
1) статический кеш, чтобы снизить нагрузку на бд
2) блокировка агрессивных user-agent прямо в .htaccess
3) закрытие xmlrpc.php, /wp-json/wp/v2/users, лимит на wp-login.php;
4) отключить wp-cron (DISABLE_WP_CRON) и повесить его на серверный крон, иначе каждый бот-запрос запускает планировщик;
5) дешёвый VPS за 300–500 ₽ как reverse-proxy с nginx перед шаредом: фильтрация до того, как трафик дойдёт до хостинга. Часто дешевле любого WAF.
Делитесь своими решениями и идеями в комментариях.
OlegTix | #сайты #безопасность
Post #403
315