我在 CentOS 6.5 上安装了 httpd 2.2.15(最小安装,无 cPanel),并安装了 modsecurity 2.8。启动 httpd 时出现以下错误:
Starting httpd: Syntax error on line 23 of /etc/httpd/conf.d/modsecurity.conf: ModSecurity: Found another rule with the same id
第 23 行是:
"id:'200000',phase:1,t:none,t:lowercase,pass,nolog,ctl:requestBodyProcessor=XML"
答案1
我在按照教程操作时遇到了类似的问题 -http://www.tecmint.com/protect-apache-using-mod_security-and-mod_evasive-on-rhel-centos-fedora/
我的 httpd.conf 文件已经包含 *.conf,而教程让我明确包含 modsecurity.conf 文件。结果,我的所有规则都是重复的,因为 conf 文件被包含两次。
答案2
根据您提供的信息,很难确切地说出重复发生的位置。本质上,一个规则被包含两次,而该规则通常在文件中定义modsecurity.conf
。您可能包含此文件两次,或者您已将其内容复制到另一个 apache conf 文件中。要找到问题,您需要搜索重复的规则。以下是执行此操作的命令:
find /etc/httpd -name '*.conf' -exec grep -H "'200000'" {} \;
一旦您发现哪个其他文件包含该规则(或者可能在里面modsecurity.conf
两次),您就需要想办法组织您的规则,以便规则不会被包含两次。这些说明为使用 OWASP ModSecurity 核心规则集提供良好的基础。
答案3
遇到了类似的问题https://www.tecmint.com/install-modsecurity-with-apache-on-debian-ubuntu/我自己使用 Debian 11。
在指南中需要编辑的地方,/etc/apache2/mods-enabled/security2.conf
请确保它包含以下几行:
IncludeOptional /etc/modsecurity/*.conf
Include /etc/modsecurity/rules/*.conf
确保您也像这样注释最后一行,否则它将加载规则两次:
#IncludeOptional /usr/share/modsecurity-crs/*.load
答案4
我遇到了和你同样的麻烦,我发现我包含了相同的文件。
我添加了自己的文件来配置规则。我还添加了 Include 指令。但我不知道这个包含是自动完成的。删除 Include 指令后,一切都正常了。