Mod_evasive - это модуль для Apache, который автоматически выполняет действия при обнаружении атаки HTTP DoS или атаки методом перебора. Mod_evasive может регистрировать и сообщать о нарушениях и уведомлять о проблемах по электронной почте. Прежде чем следовать этому руководству, у вас уже должен быть установлен сервер LAMP, который работает правильно.
Это руководство было написано для CentOS и его вариаций (например, RHEL) и Debian и его вариаций (например, Ubuntu).
Модуль создает таблицу IP-адресов и URL-адресов. Если условия, заданные в конфигурации (как описано далее в этом документе), будут выполнены, пользователи, злоупотребляющие ими, получат ошибку 403 (запрещено). Кроме того, IP-адрес регистрируется, и если опция установлена, электронное письмо будет отправлено на указанный адрес электронной почты.
Шаг 1: Установка httpd-devel
Пакет httpd-devel содержит файлы, необходимые для создания динамических общих объектов для Apache. Нам нужен этот пакет для установки модуля, так как мы сами скомпилируем его в следующих шагах.
На CentOS / RHEL выполните:
yum install httpd-devel
В Debian / Ubuntu выполните:
apt-get install apache2-utils
После того, как этот пакет успешно установлен, перейдите к следующему шагу. Если установка не завершена должным образом, следующий шаг (скорее всего) не удастся.
Шаг 2: Загрузка и установка mod_evasive
Метод 1: Компиляция
Скачать модуль:
cd /usr/src
wget http://www.zdziarski.com/blog/wp-content/uploads/2010/02/mod_evasive_1.10.1.tar.gz
Извлеките модуль:
tar xzf mod_evasive*.tar.gz
Перейдите в каталог:
cd mod_evasive
Далее мы будем использовать apxs2
инструмент, созданный для сборки и установки модулей, расширяющих функциональные возможности Apache. Apxs2
создает динамический общий объект, поэтому мы установили httpd-devel
на шаге 1.
Выполнение:
apxs2 -cia mod_evasive20.c
Способ 2: установка с использованием yum
(рекомендуется)
Когда у вас установлен epel-release
репозиторий, mod_evasive
доступен через yum
.
Добавьте репозиторий:
yum install epel-release
Установите модуль, используя yum
:
yum install mod_evasive
Шаг 3: Добавление модуля в Apache
Как правило, Apache загружает все модули из mods-enabled
, поэтому всякий раз, когда модуль добавляется в эту папку, его не нужно добавлять в конфигурацию Apache вручную. Откройте файл конфигурации, чтобы проверить, так ли это.
На CentOS соответствующий файл: /etc/httpd/conf/httpd.conf
В Ubuntu соответствующий файл: /etc/apache2/apache2.conf
Ищите Include
. Строка типа Include mods-enabled/*.conf
говорит Apache, чтобы загрузить все модули. Если его там нет, добавьте эту строку в начало файла и перезапустите Apache.
Для Ubuntu добавьте следующее содержимое в конец файла:
LoadModule evasive20_module /usr/lib/httpd/modules/mod_evasive20.so
Шаг 4. Настройка и изменение настроек
Добавьте следующий блок в файл конфигурации. Пути такие же, как на шаге № 3.
<IfModule mod_evasive20.c>
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 60
DOSEmailNotify <[email protected]>
</IfModule>
Краткий обзор этих параметров можно найти в README
. Вы можете прочитать файл README следующим образом:
cat /usr/src/cd mod_evasive/README
Скорее всего, вам придется время от времени настраивать эти параметры, чтобы убедиться, что они подходят именно для вашего сервера и веб-сайтов. В конце концов, некоторые серверы имеют больше активности и трафика, чем другие.
Шаг 5: перезапуск веб-сервера
Перезапустите веб-сервер Apache, чтобы изменения вступили в силу, и модуль должен быть загружен:
service httpd restart
Убедитесь, что модуль загружен в Apache:
httpd -M | grep evasive
Это должно вернуться evasive20_module (shared)
. Если нет, модуль был загружен неправильно, и мы рекомендуем перепроверить файлы конфигурации и правильно ли они были сохранены.
Обратите внимание, что этот модуль не является заменой для защиты от DDoS, так как он не может функционировать при исчерпании емкости сервера. Фактически, Vultr предлагает DDoS Protection, что очень полезно для лучшей защиты сервера (а также использования этого модуля). Для простых угроз, особенно атак на основе сценариев, модуль выполняет свою работу и, безусловно, полезен.
Теперь вы установили mod_evasive
модуль в Apache и тем самым сделали свое веб-приложение более безопасным.