Делаем защиту с помощью модуля 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 «admin@site.com»
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