Простая защита в Apache от DOS атак

В Apache существует модуль, предназначенный для отражения DDOS атак — модуль  mod-evasive. Этот модуль отслеживает количество подключений к странице и сайту за определенный интервал времени с одного IP и блокирует этот IP адрес на определенное время.

По умолчанию,модуль mod-evasive вообще-то не блокирует IP, а просто выдает ему вместо контента код 403. То-есть Apache все равно производит обработку и посылает ответ, хоть и гораздо меньший. И соответствующие записи появляются в  логах доступа и ошибок. Так что при сильной атаке Apache все равно упадет. Но от слабеньких DOS атак помогает.

В Ubuntu модуль mod-evasive присутствует в репозитории и устанавливается командой

sudo apt-get install libapache2-mod-evasive

Создаем файл настроек mod-evasive  /etc/apache2/mods-available/mod-evasive.conf со следующим содержимым:

<IfModule mod_evasive20.c>
DOSHashTableSize 4096
DOSPageCount 5
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 300
DOSEmailNotify admin@site.com
</IfModule>

Доступные для использования опции:

Включаем модуль mod-evasive  и перезапускаем Apache:

sudo a2enmod mod-evasive
sudo service apache2 restart

В /usr/share/doc/libapache2-mod-evasive/examples есть скрипт на Perl для проверки модуля mod-evasivetest.plДля проверки работоспособности модуля правим в скрипте адрес сервера и запускаем скрипт:

test.pl

Если модуль mod-evasive работает нормально, сначала должно выдаваться несколько сообщений:

HTTP/1.1 200 OK

а при достижении указанного порога запросов:

HTTP/1.1 403 Forbidden

У меня mod-evasive сразу же забанил Майкрософтовский  bing бот.