我有一台 Ubuntu 18.04 服务器,安装了 Apache 2.4.34,并使用 apache 模块编译了 ModSecurity 3。
我可以通过添加以下内容成功加载模块:
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
包含来自 repo 的标准内容。
我究竟做错了什么?
(如果您需要更多信息请告诉我)
答案1
您必须在上下文中启用 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 模块 - 它还还没有准备好投入生产。