Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

MODSECURITY_CRS_RULE_TRIGGER Linux / DevOps

Настройка ModSecurity (WAF) для Apache и Nginx с базовыми правилами OWASP CRS

Обновлено: 21.08.2026
  • Необходимость защиты веб-приложений от веб-уязвимостей Top-10 OWASP (SQL Injections, Cross-Site Scripting, LFI/RFI).
  • Логи WAF блокируют легитимных пользователей (False Positives) с кодом ошибки HTTP 403.
  • Увеличение задержки обработки запросов из-за неоптимизированных регулярных выражений в движке SecRule.

1. Установка ModSecurity и правил OWASP CRS

# Ubuntu / Debian для Apache
apt-get install -y libapache2-mod-security2 modsecurity-crs

# Для Nginx требуется libmodsecurity3 + ModSecurity-nginx connector

2. Базовая конфигурация ModSecurity

Создайте боевой конфигурационный файл из шаблона:

cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf

Включите режим блокировки в /etc/modsecurity/modsecurity.conf:

# Перевод из DetectionOnly в боевой режим On
SecRuleEngine On
SecRequestBodyAccess On
SecResponseBodyAccess Off
SecAuditEngine RelevantOnly
SecAuditLog /var/log/modsec_audit.log

3. Подключение набора правил OWASP CRS

В /etc/apache2/mods-enabled/security2.conf:

<IfModule security2_module>
    SecDataDir /var/cache/modsecurity
    IncludeOptional /etc/modsecurity/*.conf
    IncludeOptional /usr/share/modsecurity-crs/*.conf
    IncludeOptional /usr/share/modsecurity-crs/rules/*.conf
</IfModule>

4. Траблшутинг False Positives (Исключение ложных правил)

Найдите ID сработавшего правила в /var/log/modsec_audit.log (например, Rule 942100) и добавьте исключение в /etc/modsecurity/modsecurity_custom_rules.conf:

# Отключение конкретного правила для заданного URL
SecRuleUpdateTargetById 942100 "!REQUEST_COOKIES:session_token"
# Или полное отключение правила
SecRuleRemoveById 942100

5. Проверка и перезагрузка

apachectl configtest && systemctl restart apache2
💡 Практика специалистов: Никогда не редактируйте оригинальные файлы OWASP CRS rules/*.conf напрямую. Все исключения (SecRuleRemoveById) выносите в отдельный файл custom_rules.conf, загружаемый ДО основных наборов правил.

Частые вопросы (FAQ)

Как безопасно ввести ModSecurity в эксплуатацию без блокировки пользователей?

Установите директиву SecRuleEngine DetectionOnly на первые 1-2 недели. WAF будет фиксировать все совпадения с правилами OWASP в аудит-логе, не блокируя трафик (без ответа 403), что позволит выявить и отключить False Positives.

Почему рекомендуется выключать SecResponseBodyAccess?

Анализ ответов бэкенда (Response Body) создает колоссальную нагрузку на CPU и требует буферизации всего контента в памяти, что снижает пропускную способность Nginx/Apache в разы.

Полезные материалы
Рекомендуем