Назад | Перейти на главную страницу

Ошибка ModSecurity для Apache 2.4.34 из-за недопустимой команды SecRuleEngine

У меня есть сервер Ubuntu 18.04, установлен Apache 2.4.34 и скомпилирован ModSecurity 3 с модулем apache.

Я могу успешно загрузить модуль, добавив:

LoadModule security3_module modules/mod_security3.so

в мой httpd.conf

и тестирование с httpd -M показывает, что модуль загружается

Моя конфигурация стандартна, не что иное, как извлечение из репозитория правил v3 и перемещение файлов конфигурации туда, где они должны быть.

Как только я пытаюсь загрузить конфигурацию, я получаю:

AH00526: Syntax error on line 7 of /opt/ModSecurity/modsecurity.conf:
Invalid command 'SecRuleEngine', perhaps misspelled or defined by a module not included in the server configuration

а моя конфигурация проста:

<IfModule security3_module>
    IncludeOptional /opt/ModSecurity/modsecurity.conf
</IfModule>

куда /opt/ModSecurity/modsecurity.conf содержит стандартный материал из репо.

Что я делаю не так?

(дайте мне знать, если вам нужна дополнительная информация)

Вы должны включить ModSecurity в контексте, например:

<VirtualHost *:80>
    ServerName foobar.com
    ...
    <Directory /path/to/docroot>
        ...
        modsecurity on
        modsecurity_rules_file /path/to/modsecurity.conf
        # optional:
        modsecurity_rules_file /path/to/crs-rules.load
    </Directory>
    ....
</VirtualHost>

Но если вы примете мой хороший совет, вы не используете модуль ModSecurity3 Apache - он еще не готов к производству.