вторник, 8 апреля 2008 г.

Защита от DoS и DDoS. Оптимизация конфигурации Apache

Любой сервер в Интернете может быть подвержен DDoS атаке. Один из самых популярных типов DDoS атак это атака по HTTP протоколу - HTTP flood, таким образом атакующий создает большую нагрузку на атакуемый веб-сервер. При большом количестве запросов по HTTP протоколу вполне реально что веб-сервер не успевает корректно обрабатывать запросы и может выйти из строя.

Цель данной заметки - как лучше всего оптимизировать конфигурацию веб сервера Apache что бы снизить нагрузку на веб сервер когда ваш-сервер находится под DDoS атакой. Рекомендуется использовать такой тип настроек только при обнаружении что ваш веб сервер атакуют злостные кибер-преступники, ботоводы.
Зачастую наиболее эффективным анти DDoS инструментом будет являться установленный брандмауэр. Например, большинство брандмауэров могут быть сконфигурированы так чтобы ограничивать число одновременных соединений от любых индивидуальных IP-адресов или сетей, тем самым предотвращая ряд простых атак. Конечно, это не поможет если будет мощная DDoS атака.

Давайте приступим к настройке параметров Apache, которые помогут избежать некоторых проблем вызванных DDoS атакой.

TimeOut - указывайте как можно меньшее значение для данной директивы (веб сервера который поддвержен DDoS атаке).

KeepAliveTimeout директва - также нужно снизить ее значение или полностю выключить.
Значения различных тайм-аут директив, представленные другими модулями должны быть проверены.

Директивы LimitRequestBody, LimitRequestFields, LimitRequestFieldSize, LimitRequestLine, LimitXMLRequestBody должны быть тщательно настроены на ограничение потребления ресурсов, вызванных запросами клиентов.

Убедитесь что вы используете директиву AcceptFilter (на ОС которые поддреживают ее).По умолчанию она включена в конфигурации Apache httpd, но для своей работы может потребовать пересборку с новыми настройками ядра вашей ОС (*nix, *bsd).

Используйте директиву MaxClients чтобы указать максимальное количество клиентов которые смогут
быть одновременно подключены к серверу, уменьшив значение директивы вы можете снизить нагрузку на web-сервер.

Выбор другого mpm-модуля может позволить вам обрабатывать больше одновременных соединений, тем самым смягчить (D)DoS атаку. По умолчанию в *nix системах устанавливается mpm - prefork, он наиболее прожорлив, и наимение производителен. Обзор mpm модулей выходит за рамки данной заметки, подробности смотрите сдесь : сдесь
и сдесь

Есть ряд сторонних модулей к Apache которые могут ограничивать определенные модели поведения клиента и тем самым смягчить DDoS атаки. Один из таких модулей я описывал в одной из своих заметок - Защита от легкой flood и ddos атаки по HTTP-протоколу используя mod_dosevasive

5 комментариев:

tvister комментирует...

Есть большой опыт в защите от ddos атак и разработке высоконагруженных решений на базе FreeBSD. Защиту от ддос атак реализовали с помощью кластера. Для всех кому не безразлична защита велком на сайт - antiddos.org

Olya Olegovna комментирует...

Автор продолжай в том же духе оптимизация сайта

Владислав Фальковский комментирует...

Лучше использоватьхороший и не дорогой хостинг с защитой от DDOS атак

Andrew Rados комментирует...
Этот комментарий был удален автором.
Andrew Rados комментирует...

Если нужна качественная защита от ddos атак, то лучше обратиться в компанию, которая этим занимается не малый срок
Такую как ddosoff.ru