Делаем защиту с помощью модуля evasive.
Для начала обновляем информацию о пакетах и устанавливаем нужный нам модуль:
# apt-get update && apt-get install libapache2-mod-evasive
У данного модуля есть следующие настраиваемые параметры:
DOSHashTableSize — размер хэш-таблицы которая обрабатывает запросы.
DOSPageCount — число запросов к одной странице от одного и того же IP в течение указаного интервала времени
DOSSiteCount — число запросов ко всем страницам домена с одного и того же IP в течение указанного интервала времени
DOSPageInterval — интервал для директивы DOSPageCount (в секундах)
DOSSiteInterval — интервал для директивы DOSSiteCount (в секундах)
DOSBlockingPeriod — время блокировки IP (в секундах)
DOSEmailNotify — если какой-то IP заблокирован, можно отправить письмо на указанный email
DOSSystemCommand — команда, которая будет выполнена для блокировки IP. Напрмер, «/sbin/iptables -A INPUT -p tcp –dport 80 -s %s -j DROP»
Где %s — IP нашего потенциального флудера.
DOSWhiteList — список «белых» IP. Можно задавать маску, например 45.45.45.*
С параметрами разобрались, можно приступать к настройке.
Открываем файл настройки:
# vi /etc/apache2/mods-enabled/evasive.conf
И вставляем, к прмеру
<IfModule mod_evasive20.c>
DOSHashTableSize 5012
DOSPageCount 20
DOSSiteCount 80
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10
DOSEmailNotify «[email protected]»
DOSSystemCommand «iptables -A INPUT -p tcp —dport 80 -s %s -j REJECT»
DOSWhiteList 127.0.0.* 192.168.0.*
</IfModule>
И перезапускаем Apache:
# invoke-rc.d apache2 restart