包括 /etc/httpd/modsecurity-crs/base_rules/modsecurity_crs_21_protocol_anomalies.conf

包括 /etc/httpd/modsecurity-crs/base_rules/modsecurity_crs_21_protocol_anomalies.conf

下载 v3.2.0 https://coreruleset.org/installation/ 按照文件 INSTALL 中的说明进行操作

但 Apache 无法启动并返回此错误 -

AH00526: Syntax error on line 800 of /etc/apache2/crs/crs-setup.conf:
яну 19 01:36:09 VMhomeServer apachectl[20761]: ModSecurity: Found another rule with the same id

这是我的 security2 的 apache2.conf 文件

LoadModule unique_id_module modules/mod_unique_id.so
LoadModule security2_module modules/mod_security2.so
<IfModule security2_module>
Include /etc/apache2/crs/crs-setup.conf
Include /etc/apache2/crs/rules/*.conf
</IfModule>

根据这个问题https://github.com/SpiderLabs/ModSecurity/issues/1227

我“解决”了此评论:

包括 /etc/httpd/modsecurity-crs/base_rules/modsecurity_crs_21_protocol_anomalies.conf

但由于我使用的是较新的版本,所以没有这样的规则,现在的规则都不同了,所以我无法弄清楚我的生活发生了什么。

我已按照安装指南的要求安装了 modsecurity-crs/bionic、bionic、now 3.0.2-1 all

任何帮助都将不胜感激,到目前为止,我在网上没有找到有关此版本此类问题的信息

答案1

您能否检查一下,确保您在包含 modsecurity.conf 文件之前,使用类似这样的行:Include "/etc/apache2/modsecurity.d/modsecurity.conf"在包含 crs-setup.conf 之前,您使用的是 Ubuntu repo 版本的 modsecurity 还是从 git repo 以及规则中提取的?Ubuntu repo 版本会将配置放入/etc/modsecurity/modsecurity.conf我不知道您将该文件放在哪里,但您的 conf 文件可能看起来像这样。注意:如果使用 git repo 版本的 modsecurity,您可能需要加载一些其他库。

LoadModule unique_id_module modules/mod_unique_id.so
LoadModule security2_module modules/mod_security2.so

<IfModule security2_module>
        # Include the main modsecurity conf file
        Include "/etc/apache2/modsecurity.d/modsecurity.conf"

        # Include OWASP ModSecurity CRS rules from github
        Include /etc/apache2/crs/crs-setup.conf
        IncludeOptional /etc/apache2/crs/rules/REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf
        Include /etc/apache2/crs/rules/*.conf
        IncludeOptional /etc/apache2/crs/rules/RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf
</IfModule>

但这并没有真正解决您的问题,但您确实需要该文件。Apache 无法启动,因为有两个规则具有相同的 ID 号。ModSecurity 不允许这样做。您只需找到重复的规则编号并更改它。根据 modsecurity 标准,您不应该修改 /rules 目录中的任何现有 conf 文件。您可以并且应该修改和文件modsecurity.confcrs-setup.conf您有一个重复的规则 ID 号on line 800 of /etc/apache2/crs/crs-setup.conf请记住,行号可能不完全匹配。我认为当使用 转义行时,这些行会被算作一行\。默认情况下,crs-setup.conf.example除了最后一条列出您正在运行的规则版本的规则外,所有规则都被注释掉。检查您的crs-setup.conf文件并查看您取消了哪些注释。如果您发现一些规则 ID 号可能是可疑的,那么您可以使用类似以下方法检查所有规则是否有重复(当然要更改您要查找的规则编号):

grep -r '900990' /etc/apache2/crs/rules/*

如果你只是想找到文件中的所有规则 ID 号,那么这可能会有所帮助:

grep -ho 'id:[0-9]*' /etc/apache2/crs/rules/*  | sort | uniq -c | less

相关内容