下载 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.conf
。crs-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