Описание происшествия:
Я замечаю на своей панели MRTG, что процессы httpd поднялись до 800 (наш максимум), но все остальные параметры в норме (процессор, память, трафик)
Я сразу запустил команду nestat ( netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
), чтобы увидеть, какие IP-адреса генерировали больше всего подключений.
Один IP-адрес открыл более 500 подключений.
Мы использовали iptables для запрета ip, все вернулось в норму.
Мы используем модуль apache, который ограничивает количество одновременных запросов на IP. он был протестирован, поэтому он работает, но здесь он ничего не сделал. каким-то образом предел удалось избежать.
Пожалуйста, помогите мне понять, как удалось обойти ограничение.
Это известно (по крайней мере, недавно) как атака slowloris. По сути, он работает, очень-очень медленно отправляя заголовки в apache. В зависимости от того, как работает модуль, который вы использовали, он может не работать, пока не будет получен весь заголовок запроса, что может занять много времени.
Самое надежное решение этой атаки (и то, что я предлагаю) - это вставить какой-либо другой веб-сервер / прокси перед apache. Nginx и HAProxy - хороший выбор. Они полностью отразили бы этот тип атак, и не было бы возможности уклониться от них.