У меня есть сервер 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 - это не производство еще готов.