Я испытываю периодические, очень странные скачки нагрузки на сервер, которые обычно заканчиваются тем, что сервер недоступен. На сервере работает сайт с довольно высокой посещаемостью на Wordpress, Apache, MySQL. Установлен плагин (гиперкэш), который минимизирует использование mysql за счет кэширования полных страниц. Однако каждый раз, когда происходит скачок нагрузки, mysql в конечном итоге становится недоступным. Средняя нагрузка за это время подскакивает с 2 до 30-40, и apache, похоже, обрабатывает много запросов (я видел в файле журнала сообщение о достижении MaxClients).
У меня такой вопрос: как мне узнать, легальный это трафик или это DoS-атака? Если это DoS-атака, как мне определить, что это за атака, и защитить себя от нее?
Сервер работает под управлением FreeBSD 7, Apache 2.2, MySQL 5.1
Вы можете увидеть, какой трафик приходит на ваш сервер, установив TrafShow из портов FreeBSD. Очень похоже на ps ax, но вы видите потоки трафика вместо идентификаторов процессов.
Мы замечаем похожее явление, и если вы включите модуль состояния сервера Apache, вы сможете увидеть, что происходит. Для нас это вызвано тем, что сканеры ищут установки phpMyAdmin для использования. Из-за того, как WordPress обрабатывает каждый запрос, нагрузка быстро возрастает. WP Super Cache для WordPress имеет огромное значение. Я также создал несколько глобальных правил RedirectMatch, которые перехватывают большинство этих запросов сканера перед попаданием на любые сайты, управляемые PHP / MySQL.