Настройте mod_evasive для предотвращения DoS- и DDoS-атак на CentOS

В этой статье мы узнаем, как установить и настроить mod_evasive для предотвращения DoS- и DDoS-атак на CentOS.

Для этой демонстрации мы использовали 64-разрядный выделенный сервер CentOS 7.

Давайте начнем.

Модуль mod_evasive Apache. Это помогает выдерживать распределенные атаки типа «отказ в обслуживании» (DoS и DDoS) и атаки грубой силы на веб-сервер Apache. Mod_evasive работает, отслеживая входящие запросы и сообщая о злоупотреблениях по электронной почте и через средства системного журнала. Он предназначен для использования в качестве инструмента обнаружения и управления сетью и быстро настраивается для связи с ipchains, межсетевыми экранами, маршрутизаторами и т. Д.

Mod_evasive отслеживает подозрительные запросы и отклоняет любой IP-адрес из любого из следующих источников:

  • Запрос одной и той же страницы чаще, чем несколько раз в секунду
  • Выполнение более 50 одновременных запросов к одному и тому же дочернему элементу в секунду
  • Выполнение любых запросов во время временного внесения в черный список

Предпосылки

  • 64-битный выделенный сервер CentOS 7 или облачный сервер (также работает с CentOS 6)
  • Веб-сервер Apache LAMP (Linux, Apache, MySQL, PHP) установлен и настроен
  • Почтовый сервер

1. Держите сервер в курсе:

# yum update -y

2. Установите EPEL (дополнительные пакеты для Enterprise Linux):

# yum install epel-release -y

3. Установите необходимое условие для mod_evasive:

# yum install httpd-devel

4. Установите mod_evasive:

# yum install mod_evasive -y

Теперь mod_evasive установлен

5. Чтобы добавить конфигурацию mod_evasive в ваш файл конфигурации Apache:

По умолчанию строка LoadModule будет добавлена ​​в конфигурационный файл mod_evasive.conf. Откройте файл и добавьте следующую строку, если ее еще нет.

# vi /etc/httpd/conf.d/mod_evasive.conf

LoadModule evasive20_module modules/mod_evasive24.so

Откройте файл конфигурации mod_evasive.conf и проверьте следующие записи.

DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 60
DOSEmailNotify

Вы можете настроить указанные выше записи в соответствии с вашими требованиями. Измените DOSEmailNotify на свой адрес электронной почты.

Чтобы внести IP-адрес в белый список, добавьте следующую строку в файл конфигурации:

DOSWhitelist 127.0.0.1

DOSWhitelist 127.0.0.*

Вы также можете добавить несколько IP-адресов.

Еще одна запись, необходимая для изменения DOSLogDir. По умолчанию для механизма блокировки он ссылается на / tmp .

Создайте новый каталог в / var / log / :

# mkdir /var/log/mod_evasive

Установите право собственности на пользователя apache:

# chown -R apache:apache /var/log/mod_evasive

Теперь отредактируйте следующую строку в конфигурации mod_evasive и измените путь к каталогу:

DOSLogDir  /var/log/mod_evasive

Сохраните и выйдите из файла конфигурации mod_evasive.

Затем перезапустите Apache:

# systemctl restart httpd.service

Вот и все, mod_evasive установлен и настроен.

Узнайте больше о параметрах конфигурации mod_evasive
Эти описания параметров конфигурации были взяты непосредственно из файла README.

DOSHashTableSize

Размер хеш-таблицы определяет количество узлов верхнего уровня для каждой дочерней хеш-таблицы. Увеличение этого числа обеспечит более высокую производительность за счет уменьшения количества итераций, необходимых для доступа к записи, но потребляет больше памяти для табличного пространства. Вы должны увеличить это значение, если у вас загруженный веб-сервер. Указанное вами значение будет автоматически повышено до следующего простого числа в списке простых чисел (см. Mod_evasive.c для получения списка используемых праймеров).

DOSPageCount

Это порог количества запросов для одной и той же страницы (или URI) за интервал страницы. После превышения порога для этого интервала IP-адрес клиента будет добавлен в список блокировки.

DOSSiteCount

Это пороговое значение для общего числа запросов любого объекта одним и тем же клиентом к одному и тому же слушателю за интервал сайта. После превышения порога для этого интервала IP-адрес клиента будет добавлен в список блокировки.

DOSPageInterval

Интервал порога количества страниц; по умолчанию используются интервалы в 1 секунду.

DOSSiteInterval

Интервал порога количества сайтов; по умолчанию используются интервалы в 1 секунду.

DOSBlockingPeriod

Период блокировки - это время (в секундах), на которое клиент будет заблокирован, если он будет добавлен в список блокировки. В течение этого времени все последующие запросы от клиента будут приводить к ошибке 403 (Запрещено), а таймер сбрасывается (например, еще на 10 секунд). Поскольку таймер сбрасывается для каждого последующего запроса, нет необходимости иметь длительный период блокировки; в случае DoS-атаки этот таймер будет сбрасываться.

DOSEmailNotify

Если это значение установлено, электронное письмо будет отправлено на указанный адрес всякий раз, когда IP-адрес попадет в черный список. Механизм блокировки с использованием / tmp предотвращает непрерывную отправку электронных писем.

Примечание:

Убедитесь, что MAILER правильно установлен в mod_evasive.c (или mod_evasive20.c). По умолчанию это «/ bin / mail -t% s», где% s используется для обозначения адреса электронной почты получателя, установленного в конфигурации. Если вы работаете в Linux или какой-либо другой операционной системе с другим типом почтовой программы, вам необходимо это изменить.

DOSSystemCommand

Если это значение установлено, указанная системная команда будет выполняться всякий раз, когда IP-адрес попадает в черный список. Это сделано для включения системных вызовов ip filter или других инструментов. Механизм блокировки с использованием / tmp предотвращает непрерывные системные вызовы. Используйте% s для обозначения IP-адреса занесенного в черный список IP.

DOSLogDir

Выберите альтернативный временный каталог.
По умолчанию «/ tmp» будет использоваться для механизма блокировки, что вызывает некоторые проблемы с безопасностью, если ваша система открыта для пользователей оболочки. В случае, если у вас есть непривилегированные пользователи оболочки, вы захотите создать каталог, доступный для записи только пользователю, который Apache работает под именем (обычно root), а затем установите это в своем httpd.conf.

В этой статье мы рассказали, как наш инженер службы поддержки устанавливает и настраивает mod_evasive для предотвращения DoS- и DDoS-атак на CentOS.


Как исправить проблемы WordPress 5.0

Как исправить проблемы WordPress 5.0

Наконец-то выходит WordPress 5.0, и он приносит с собой совершенно новый опыт редактирования с помощью Gutenberg.

Как отключить редактор блоков и установить классический редактор в WordPress 5.0

Как отключить редактор блоков и установить классический редактор в WordPress 5.0

Начиная с WordPress 5.0, редактором по умолчанию в WordPress является новый редактор блоков. Новый редактор кардинально отличается

Как установить классический редактор в качестве редактора по умолчанию в WordPress вместо Gutenberg

Как установить классический редактор в качестве редактора по умолчанию в WordPress вместо Gutenberg

Редактор Гутенберга скоро станет редактором по умолчанию в WordPress. У вас будет возможность выбрать классический редактор.

ИСПРАВЛЕНИЕ: «Редактор обнаружил непредвиденную ошибку» в WordPress после обновления

ИСПРАВЛЕНИЕ: «Редактор обнаружил непредвиденную ошибку» в WordPress после обновления

Не можете написать новый пост с помощью нового редактора блоков в WordPress? Скорее всего, вы получаете «Редактор

Как исправить ошибку сопоставления «utf8mb4_0900_ai_ci» при импорте базы данных WordPress

Как исправить ошибку сопоставления «utf8mb4_0900_ai_ci» при импорте базы данных WordPress

Если вы переключаете установку WordPress с сервера MySQL 8 на MySQL 5.7 (или ниже), вы, скорее всего, столкнетесь с

🔧 ИСПРАВЛЕНИЕ: в вашей установке PHP отсутствует расширение MySQL, необходимое для WordPress.

🔧 ИСПРАВЛЕНИЕ: в вашей установке PHP отсутствует расширение MySQL, необходимое для WordPress.

Хотите запустить самоуправляемый сайт на WordPress? Большой. Вы узнаете миллион вещей. Одна из важнейших частей настройки

Как обновить элементы папки в Windows 11

Как обновить элементы папки в Windows 11

Если в контекстном меню отсутствует опция «Обновить», вот как вы можете обновлять элементы в проводнике в Windows 11.

Как включить короткие теги PHP

Как включить короткие теги PHP

В этой статье мы рассмотрели, как включить короткие теги PHP. PHP анализирует файл, используя открывающие и закрывающие теги, которые имеют вид. Включение коротких тегов PHP

Настройте mod_evasive для предотвращения DoS- и DDoS-атак на CentOS

Настройте mod_evasive для предотвращения DoS- и DDoS-атак на CentOS

В этой статье мы узнаем, как установить и настроить mod_evasive для предотвращения DoS- и DDoS-атак на CentOS. Модуль mod_evasive Apache.

Как установить PHP с PHP-FPM для NGINX на CentOS

Как установить PHP с PHP-FPM для NGINX на CentOS

как установить PHP с PHP-FPM для NGINX на CentOS. Базовая конфигурация веб-сервера NGINX для обработки приложений PHP и их сервера через порт 80.