mod_evasive - очень интересный модуль для Апача для автоматического бана IP-шников при DOS (DDOS) атаке.
LoadModule evasive20_module modules/mod_evasive20.so
Перезагружаем апач чтобы изменения вступили в силу:
/etc/init.d/httpd reload
Устанавливаем сам модуль (имеется в виду, что у вас уже установлен и настроен сам Апач):
yum install mod_evasive
Для Debian: aptitude install libapache2-mod-evasive
Далее редактируем конфиг (в принципе, там всё по-умолчанию уже нормально настроено):
nano /etc/httpd/conf.d/mod_evasive.conf
Описание настроек:
mkdir /var/log/httpd/mod_evasive
Редактируем конфиг апача:
nano /etc/httpd/conf/httpd.conf
Добавляем в конфиг строчку для загрузки модуля (для Debian - a2enmod mod-evasive):
yum install mod_evasive
Для Debian: aptitude install libapache2-mod-evasive
Далее редактируем конфиг (в принципе, там всё по-умолчанию уже нормально настроено):
nano /etc/httpd/conf.d/mod_evasive.conf
Описание настроек:
- 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.*)
Единственное что - следует добавить в конец для логов: DOSLogDir /var/log/httpd/mod_evasive
Далее создадим директорию, в которую будут кидаться логи:mkdir /var/log/httpd/mod_evasive
Редактируем конфиг апача:
nano /etc/httpd/conf/httpd.conf
Добавляем в конфиг строчку для загрузки модуля (для Debian - a2enmod mod-evasive):
LoadModule evasive20_module modules/mod_evasive20.so
Перезагружаем апач чтобы изменения вступили в силу:
/etc/init.d/httpd reload
Всё. Проверяем с помощью скрипта (ставится вместе с модулем):
perl /usr/share/doc/mod_evasive-1.10.1/test.pl
perl /usr/share/doc/mod_evasive-1.10.1/test.pl
Если первые сколько-то там запросов 200 или 404, а затем 403 - значит, всё настроено правильно и работает. Для Debian скрипт находится в /usr/share/doc/libapache2-mod-evasive/examples/test.pl
Комментариев нет:
Отправить комментарий