Как установить mod_evasive на CentOS 9?

Здравствуйте, коллеги! У меня возникла задача, связанная с установкой модуля mod_evasive для Apache на CentOS 9. Поскольку я осведомлён, что в официальных репозиториях CentOS 9 этот модуль отсутствует, хотел бы узнать, какие существуют способы его установки. Может быть, подскажете, как лучше всего справиться с этой проблемой? Спасибо всем за помощь!
  • 5 апреля 2025 г. 15:35
Ответы на вопрос 2
Здравствуйте! Установка модуля `mod_evasive` на CentOS 9 действительно может потребовать некоторых дополнительных шагов, так как этот модуль может отсутствовать в стандартных репозиториях. Вот несколько способов установки `mod_evasive`:

### Способ 1: Установка из сторонних репозиториев (EPEL)

1. **Установите EPEL-репозиторий**:
   ```bash
   sudo dnf install epel-release
   ```

2. **Установите `mod_evasive`**:
   В некоторых случаях модуль может быть доступен через EPEL:
   ```bash
   sudo dnf install mod_evasive
   ```

### Способ 2: Сборка модуля из исходников

Если модуль не доступен через EPEL или вы хотите установить его самой последней версии, вы можете собрать его из исходников.

1. **Установите необходимые инструменты для сборки**:
   ```bash
   sudo dnf groupinstall "Development Tools"
   sudo dnf install httpd-devel
   ```

2. **Скачайте исходный код `mod_evasive`**:
   Перейдите на [страницу проекта](https://github.com/awilkins/mod_evasive) и скачайте последнюю версию:

   ```bash
   wget https://github.com/awilkins/mod_evasive/archive/refs/tags/1.10.tar.gz
   tar -xzvf 1.10.tar.gz
   cd mod_evasive-1.10
   ```

3. **Соберите и установите модуль**:
   ```bash
   apxs -i -a -c mod_evasive.c
   ```

   Если `apxs` не установлен, его можно установить с помощью:
   ```bash
   sudo dnf install httpd-devel
   ```

### Шаг 3: Настройка `mod_evasive`

1. **Создайте файл конфигурации для `mod_evasive`**:
   Создайте файл, например, `/etc/httpd/conf.d/mod_evasive.conf`:
   ```bash
   sudo nano /etc/httpd/conf.d/mod_evasive.conf
   ```

   Добавьте в него следующую конфигурацию:
   ```apache
   <IfModule mod_evasive20.c>
       DOSHashTableSize 3097
       DOSPageCount  10
       DOSSiteCount  100
       DOSSiteInterval  1
       DOSCartCount  2
       DOSCartInterval  1
       DOSSiteCount  50
       DOSSiteInterval  10
       DOSEmail "your_email@example.com"
       DOSLogDir "/var/log/httpd"
   </IfModule>
   ```

   Не забудьте заменить `your_email@example.com` на ваш реальный адрес электронной почты.

2. **Перезагрузите Apache**:
   ```bash
   sudo systemctl restart httpd
   ```

### Шаг 4: Проверка

Проверьте, что модуль установлен и работает, выполнив команду:
```bash
httpd -M | grep evasive
```

Если конфигурация была успешной, то в выводе появится `evade_module`.

### Заключение

Теперь `mod_evasive` должен быть успешно установлен и активирован на вашем сервере Apache под управлением CentOS 9. Если возникнут какие-либо ошибки или проблемы, проверьте журналы Apache на наличие сообщений об ошибках.
Идем страницу разработчика. Читаем там инструкцию. 
https://github.com/jzdziarski/mod_evasive

APACHE v2.0
-----------
1. Extract this archive
2. Run $APACHE_ROOT/bin/apxs -i -a -c mod_evasive20.c
3. The module will be built and installed into $APACHE_ROOT/modules, and loaded into your httpd.conf
4. Restart Apache


P.S. rpm тоже найти не особо трудно.
Похожие вопросы