Skip to main content

Защита modSecurity

Модуль ModSecurity в vsDesk помогает быстро создавать и применять правила защиты на основе событий из логов. Основной сценарий работы: взять подозрительный запрос из логов, создать правило в интерфейсе и применить конфиг в Apache. Такие запросы будут отсекаться на уровне веб-сервера не нагружая систему и не будут плодить логи. Вы сможете создавать правила блокировки по URL атаки в запросе, а так же блокировать по IP из лога. Для блокировки будет использоваться модуль Apache mod_security2.

1. Назначение модуля

  • Создание правил блокировки через интерфейс vsDesk.
  • Автоматическая генерация SecRule по тексту атаки из лога.
  • Применение конфигурации ModSecurity из GUI.
  • Откат к резервной конфигурации и просмотр аудита применений.
  • Интеграция с анализатором логов через действие «В ModSecurity».

2. Права доступа

  • Защита ModSecurity (securitySettings) — доступ к модулю ModSecurity и операциям управления правилами.

3. Подготовка сервера

3.1 Ubuntu / Debian


sudo apt update
sudo apt install -y apache2 libapache2-mod-security2
sudo a2enmod security2
sudo systemctl restart apache2
apachectl -M | grep security2

3.2 RedOS / RHEL-like


sudo dnf makecache
sudo dnf install -y httpd mod_security
sudo systemctl enable --now httpd
sudo systemctl restart httpd
sudo httpd -M | grep security2

3.3 Astra Linux


sudo apt update
sudo apt install -y apache2 libapache2-mod-security2
sudo a2enmod security2
sudo systemctl enable --now apache2
sudo systemctl restart apache2
apachectl -M | grep security2

3.4 Include-файл правил

Создайте файл, в который vsDesk будет записывать сгенерированные правила:

Debian-like (apache2):


sudo mkdir -p /etc/apache2/modsecurity.d
sudo touch /etc/apache2/modsecurity.d/vsdesk-modsecurity.conf
sudo chown -R www-data:www-data /etc/apache2/modsecurity.d
sudo chmod -R 775 /etc/apache2/modsecurity.d

RedOS (httpd):


sudo mkdir -p /etc/httpd/modsecurity.d
sudo touch /etc/httpd/modsecurity.d/vsdesk-modsecurity.conf
sudo chown -R apache:apache /etc/httpd/modsecurity.d
sudo chmod -R 775 /etc/httpd/modsecurity.d

Добавьте include в конфигурацию Apache:


IncludeOptional /etc/apache2/modsecurity.d/vsdesk-modsecurity.conf

или для RedOS:


IncludeOptional /etc/httpd/modsecurity.d/vsdesk-modsecurity.conf

3.5 Проверка reload/configtest из UI (sudoers)

Чтобы кнопка «Применить конфиг» работала из интерфейса, web-пользователь должен иметь право на reload и configtest Apache.

Ubuntu / Debian (web-user: www-data):


echo 'www-data ALL=(root) NOPASSWD: /bin/systemctl reload apache2, /usr/bin/systemctl reload apache2, /usr/sbin/service apache2 reload, /usr/sbin/apachectl -t, /usr/bin/apachectl -t' | sudo tee /etc/sudoers.d/vsdesk-modsecurity >/dev/null
sudo chmod 440 /etc/sudoers.d/vsdesk-modsecurity
sudo visudo -cf /etc/sudoers.d/vsdesk-modsecurity

RedOS (web-user: apache):


echo 'apache ALL=(root) NOPASSWD: /bin/systemctl reload httpd, /usr/bin/systemctl reload httpd, /usr/sbin/service httpd reload, /usr/sbin/httpd -t, /usr/bin/httpd -t' | sudo tee /etc/sudoers.d/vsdesk-modsecurity >/dev/null
sudo chmod 440 /etc/sudoers.d/vsdesk-modsecurity
sudo visudo -cf /etc/sudoers.d/vsdesk-modsecurity

4. Как открыть модуль в vsDesk

  • Основной URL: /security/modsecurity.
  • Из анализатора логов: в Анализаторе логов используйте кнопку «В ModSecurity» у нужной записи.

5. Поля формы правила

  • Имя правила — имя правила в интерфейсе.
  • Описание — комментарий администратора.
  • Блокировать по IP из лога — вместо правила по шаблону запроса создается правило блокировки по IP-адресу источника атаки (если IP корректно извлечен из текста лога).
  • Текст лога для автогенерации правила — текст атаки для автоматической генерации.
  • Тело правила — готовое тело правила ModSecurity (SecRule ...).
  • Режим: Только обнаружение или Блокировка.
  • Статус: Черновик, Активна, Не активна.
  • Активна: Да или Нет.

В итоговый конфиг попадают только правила со статусом «Активна» и флагом «Активна = Да».

При включенной опции «Блокировать по IP из лога» система формирует правило вида SecRule REMOTE_ADDR "@ipMatch ...". Если IP не распознан в тексте лога, используется стандартная генерация правила по признакам запроса.

6. Что делает каждая кнопка

  • Сохранить правило — сохранить или обновить правило.
  • Применить конфиг — запустить встроенный Preflight (права на запись + синтаксическая проверка), затем собрать и применить конфиг и выполнить reload Apache.
  • Откатить конфиг — вернуть предыдущую резервную версию конфига и перезагрузить Apache.
  • Очистить аудит — очистить журнал применений конфигурации.
  • Редактировать — загрузить правило в форму для редактирования.
  • Удалить — удалить правило.

7. Базовый сценарий использования

  1. Откройте Анализатор логов и выберите подозрительный запрос.
  2. Нажмите «Создать правило ModSecurity из этой записи лога».
  3. Проверьте текст в поле «Тело правила» (или оставьте автогенерацию по логу).
  4. Если нужно быстро отсечь источник атаки целиком, включите «Блокировать по IP из лога».
  5. Установите:
    • Режим = Блокировка
    • Статус = Активна
    • Активна = Да
  6. Нажмите «Сохранить правило».
  7. Нажмите «Применить конфиг».
  8. Проверьте, что правило блокирует атаку (ожидаемый ответ — 403 Forbidden).

image.png

image.png

8. Действия после обновления vsDesk (обязательно)

После обновления системы необходимо убедиться, что ModSecurity и интеграция с Apache продолжают корректно работать.

8.1 Проверка сервера (Linux)

  1. Проверьте, что модуль ModSecurity загружен:
    apachectl -M | grep security2

    Для RedOS используйте: httpd -M | grep security2.
  2. Проверьте синтаксис Apache-конфига:
    sudo apachectl -t

    Для RedOS: sudo httpd -t.
  3. Проверьте наличие include-файла правил:
    sudo ls -l /etc/apache2/modsecurity.d/vsdesk-modsecurity.conf

    Для RedOS: sudo ls -l /etc/httpd/modsecurity.d/vsdesk-modsecurity.conf.
  4. Откройте /security/modsecurity и выполните «Применить конфиг».
  5. Убедитесь, что операция завершилась успешно и запись появилась в аудите.

8.2 Проверка в интерфейсе vsDesk

  1. Откройте модуль /security/modsecurity под пользователем с правом «Защита ModSecurity».
  2. Проверьте, что существующие правила отображаются в списке.
  3. Создайте тестовое правило (или откройте существующее) и нажмите «Применить конфиг».
  4. При необходимости выполните «Откатить конфиг» и проверьте успешный откат.

8.3 Минимальный чек-лист после обновления

  • Модуль Apache security2 загружен.
  • Include-файл vsdesk-modsecurity.conf существует и доступен для записи.
  • Команда проверки конфига Apache проходит без ошибок.
  • В vsDesk успешно отрабатывает кнопка «Применить конфиг».
  • Операции Apply/Rollback фиксируются в аудите модуля.

9. Типовые проблемы

  • Preflight не пройден: директория недоступна для записи — это актуальная встроенная проверка перед применением; проверьте права на каталог include-файла.
  • Interactive authentication required — проверьте настройки sudoers для web-пользователя.
  • После применения в конфиге только базовые строки — проверьте, есть ли активные правила (Статус = Активна + Активна = Да).
  • Нет доступа к модулю — проверьте право «Защита ModSecurity».