Apache-Talk mailing list archive (apache-talk@lists.lexa.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[apache-talk] защита Apache от атак
Здравствуйте
Хочется узнать, нашел ли коллективный разум средство, как бороться с атаками
типа DoS на Апаче 2.х
Проблема: на сервере эпизодически возникает ситуация, когда с какого-то IP
адреса ведется атака на Apache server (стоит 2.0.50). В netstat атакующий IP
адрес представлен большим количеством попыток соединения. В логах Apache
появляется запись что "server reached MaxClients setting".
Поиск по Интернету дал следующие модули работающие с Апачем 2.х:
1) mod_limiyipconn ограничивает количество установленных соединений с одного
IP для всего сервера; С патчем понимает клиентов пришедших через прокси (в
комплекте присутствует патч только для 2.0.39)
2) mod_badwidth, ограничивающий количество соединений с одного IP для
виртуального хоста (или директории), а также много других параметров
скорости отдачи контента. Недостаток - не работает с CGI, что сводит его
преимущества для поставленной цели на нет :-(
3) mod_vhost_limit обладает усеченными возможностями и фактически может
только ограничивать количество соединений с одного IP для виртуального хоста
(подмножество функции mod_badwidth
Для первого модуля в комплекте идет патч для различения клиентов пришедших
после прокси только для версии апача 2.0.39. Можно было бы разобраться и
самому переделать патч, но нет полной уверенности в своих силах. Непонятно,
будет ли этот проект поддерживать автор.
Преимущества второго и третьего модулей сводятся на нет неспособностью
работать с CGI
Можно было бы ограничивать количество соединений на 80 порт с помощью
iptables. Что-то типа:
iptables -A INPUT -p tcp --dport 80 -m iplimit --iplimit-above 20 -j REJECT
или на стадии SYN:
iptables -I INPUT -p tcp --syn --dport 80 -j DROP -m iplimit --iplimit-above
20
Но тогда страдают клиенты сидящие за прокси или на виртуальных адресах за
NAT.
Есть ли некое решение, позволяющее избавить Apache от таких атак?
Подскажите, кто какими решениями пользуется.
Вариант запускать Апач из perl скрипта не подходит, так как машина довольно
нагружена. Да и вообще, как-то некузяво это...
С уважением,
Сергей Попов
|