Настроить Mod_evasive
ache, который обеспечивает действия по уклонению в случае HTTP DoS- или DDoS-атаки или атаки методом перебора. mod_evasive в настоящее время сообщает о вредоносной активности по электронной почте и в системном журнале. Модуль mod_evasive работает, создавая внутреннюю динамическую хэш-таблицу IP-адресов и URI и запрещая любой отдельный IP-адрес при любом из следующих условий:- Запрос одной и той же страницы чаще нескольких раз в секунду.
- Выполнение более 50 одновременных запросов к одному и тому же дочернему элементу в секунду
- Выполнение любых запросов, если вы временно внесены в черный список (список блокировки)
В этом руководстве я расскажу, как установить, настроить и использовать mod_evasive на вашем сервере Apache. В этом руководстве используется сервер Ubuntu 14.04.
Установка mod_evasive
Во-первых, убедитесь, что сервер Apache установлен и работает.
Далее вы можете установить модуль mod_evasive, запустив:
sudo apt-get install libapache2-mod-evasive
После установки mod_evasive вы можете проверить этот модуль, выполнив следующие команды:
sudo apachectl -M | grep evasive
Если mod_evasive включен, вы увидите следующий результат:
evasive20_module (sharedУстановка mod_evasive
2>Настроить Mod_evasiveМодуль mod_evasive считывает свою конфигурацию из «/etc/apache2/mods-enabled/evasive.conf». Вы можете легко настроить модуль mod_evasive через файл конфигурации «evasive.conf». По умолчанию параметры конфигурации mod_evasive отключены, поэтому вам необходимо сначала их включить. Для этого отредактируйте файл «evasive.conf»:
sudo nano /etc/apache2/mods-enabled/evasive.confУдалите
#
из следующих строк:DOSHashTableSize 3097 DOSPageCount 2 DOSSiteCount 50 DOSPageInterval 1 DOSSiteInterval 1 DOSBlockingPeriod 10 DOSEmailNotify mail@yourdomain.com DOSLogDir "/var/log/apache2/"Сохраните файл и перезапустите Apache, чтобы изменения вступили в силу:
sudo /etc/init.d/apache2 restartВы можете изменить приведенные выше значения в зависимости от объема и типа трафика, который должен обрабатывать ваш веб-сервер.
DOSHashTableSize :
Эта директива определяет, как mod_evasive отслеживает, кто к чему имеет доступ. Увеличение этого числа обеспечит более быстрый поиск сайтов, которые клиент посещал ранее.
DOSPageCount :
Эта директива определяет, сколько идентичных запросов к определенному URI может сделать посетитель за интервал DOSPageInterval.
DOSSiteCount :
Это похоже на DOSPageCount, но соответствует общему количеству запросов, которые посетитель может сделать на ваш сайт за интервал DOSSiteInterval.
DOSBlockingPeriod :
Если посетитель превышает ограничения, установленные DOSSPageCount или DOSSiteCount, его IP-адрес будет заблокирован на время DOSBlockingPeriod. В течение этого интервала он получит ошибку 403 (Запрещено).
DOSEmailNotify :
Если IP-адрес занесен в черный список, на указанный адрес электронной почты будет отправлено электронное письмо.
DOSLogDir :
Эта директива определяет расположение каталога журнала.Тестирование Mod_evasive
Теперь пришло время проверить, работает ли модуль mod_evasive или нет. Вы можете сделать это с помощью Perl-скрипта «test.pl», расположенного в каталоге «/usr/share/doc/libapache2-mod-evasive/examples/».
Вы можете выполнить скрипт, выполнив следующую команду:
sudo perl /usr/share/doc/libapache2-mod-evasive/examples/test.plВы должны увидеть следующий результат:
Скрипт выполняет 100 запросов к вашему веб-серверу. Код ответа 403 означает, что доступ запрещен веб-сервером.
Заключение
mod_evasive — очень важный инструмент для защиты веб-сервера Apache от нескольких угроз. Вы можете поэкспериментировать с mod_evasive и другими опциями в тестовой среде. Если у вас есть вопросы, вы можете написать их в поле для комментариев ниже.
Тестирование Mod_evasive
Заключение