Защита от легкой flood и ddos атаки по HTTP-протоколу используя mod_dosevasive
Защита от ddos
mod_evasive — (mod_dosevasive) HTTP DoS or DDoS attack or brute force attack
Apache модуль для организации защиты от DDoS атак.
Преамбула
Не стоит думать что слабый ddos не сможет нанести ущерба вашему серверу. Например атакующих зомби-машин всего 50-150, все они с толстыми каналами, а вы уехали в командировку или у вас 10-ки серверов и вы не успеваете физически мониторить все.
В таком случае даже не большое количество машин смогут зафлудить канал, или заставить выйти из строя веб сервер apache, mysql, etc. Другое дело когда администратор 24 часа в сутку мониторит сервер, и с легкостью обнаруживает атаки, далее с легкостью и в считанные секунды заносит несколько правил в таблицу фаервола при этом спокойно попивая кофе, продолжает заниматься своими делами. Но такое бывает редко, смотреть сутками и мониторить вывод комманд netstat, top, mtop убийственно для вашего мозга, и глаза устанут, не будет весело это точно, поэтому нужно автоматизировать процесс блокировки атакующих зомби-машин.
Один из методов как защитить свой сервер от флуд атак и слабого ddos-a по http протоколу это установить модуль для веб-сервера Apache — mod_dosevasive.
Установка и настройка mod_dosevasive
Debian Linux (только для Apache 1.3.x):
apt-get install libapache-mod-dosevasive
Или же вы можете скачать архив с сайта:
http://www.zdziarski.com/projects/mod_evasive/
Распаковываете архив
tar zxvf mod_dosevasive_1.10.tar.gz cd mod_dosevasive
Компилируем mod_dosevasive для Apache 2:
/usr/local/apache/bin/apxs2 -i -a -c mod_dosevasive20.c
Если у вас apache 1.3 тогда так:
/usr/local/apache/bin/apxs -i -a -c mod_dosevasive.c
(!) Замените /usr/local/apache на ваш путь к apache
Редактируем httpd.conf (Чаще всего он находится в /usr/local/apache/conf/httpd.conf):
Убедитесь, что нечто подобное присутствует в настройках:
LoadModule evasive20_module lib/apache2/modules/mod_evasive20.so
Добавляем в конец файла следующие строки:
DOSHashTableSize 3097 DOSPageCount 2 DOSSiteCount 50 DOSPageInterval 1 DOSSiteInterval 1 DOSBlockingPeriod 15 DOSEmailNotify [email protected]
Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript
DOSSystemCommand "su - someuser -c '/sbin/... %s ...'"
— DOSHashTableSize: это размер хэш-таблицы которая обрабатывает запросы к WWW-серверу.
— DOSPageCount: число запросов к одной странице от одного и того же IP в течение указаного интервала времени.
— DOSSiteCount: число запросов ко всем страницам домена, т.е если поступило более 50-ти запросов с одного ай-пи на разные страницы домена — тогда такой ай-пи будет заблокирован.
— DOSPageInterval: Интервал для директивы DOSPageCount (в секундах)
— DOSSiteInterval: Интервал для директивы DOSSiteCount (в секундах)
— DOSBlockingPeriod: На сколько заблокировать ай-пи (в секундах)
— DOSEmailNotify: может быть использован для уведомления, будет отправлять сообщение по электронной почте о том что такой-то IP был заблокирован.
— DOSSystemCommand: эта директива используется для выполнения какой-нибудь вашей команды когда IP блокируется. Вы можете использовать это для добавления IP-адреса в таблицу фаервола.
(пример: «/sbin/iptables -A INPUT -p tcp —dport 80 -s %s -j REJECT» В %s передается от модуля IP)
— DOSWhiteList: список белых IP адресов, можно и по маскам (напр. 127.0.0.*)
Также этот модуль позволяет защитить ваши сайты от brute force атак.
Похожие статьи:
Метки: apache, command, dos, flood, install, lock, mail, size, флуд
Trackback from your site.
Comments (1)
Аноним
| #
Not be bad got, shall read else, thank you.
Reply