Apache 2.4.34 的 ModSecurity 因无效命令“SecRuleEngine”而失败

Apache 2.4.34 的 ModSecurity 因无效命令“SecRuleEngine”而失败

我有一台 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 模块 - 它还还没有准备好投入生产。

相关内容