Syntax modsecurity规则中的默认阶段?

Syntax modsecurity规则中的默认阶段?,syntax,firewall,mod-security,Syntax,Firewall,Mod Security,我在CentOS机器上的Apache2.4服务器上运行modsecurity2(启用WHM)。为了将msnbot列入白名单,我的主机提供商要求我添加以下规则 SecRule REMOTE_HOST "@endsWith .search.msn.com" "allow,nolog,id:5000003,msg:'msn bot'" 没有明确提到阶段。(modsecurity分5个阶段处理规则)。未提及阶段时,默认阶段是什么?没有“默认”阶段。如果忘记添加此

我在CentOS机器上的Apache2.4服务器上运行modsecurity2(启用WHM)。为了将msnbot列入白名单,我的主机提供商要求我添加以下规则

SecRule REMOTE_HOST "@endsWith .search.msn.com" "allow,nolog,id:5000003,msg:'msn bot'"
没有明确提到
阶段
。(modsecurity分5个阶段处理规则)。未提及阶段时,默认阶段是什么?

没有“默认”阶段。如果忘记添加此操作,则不会计算规则


如我所见,mod_security2在规则中插入了一个
阶段:2
操作,如果没有给出阶段。

但是当我将nolog更改为log时,请求会被记录……啊,真的很抱歉,我上面的回答是错误的。正如我看到的,在mod_security2的第2阶段中对其进行了评估,但在libmodsecurity3的第1阶段中进行了评估。也许我们可以称之为“默认”。。。您可以使用以下内容检查阶段:
grep-n“\(开始阶段\;5000003\)”/path/to/modsec\u debug.log
。在该命令的输出中,您可以看到“修改”规则:引擎附加了一个隐式
阶段:2
规则7f18e894eaf0:SecRule“REMOTE_HOST”“@endsWith.search.msn.com”“阶段:2,auditlog,allow,log,id:5000003,msg:'msn bot'
。再次抱歉。没问题:)。谢谢。除了帮助我找到答案外,你还解释了你用来找到隐含阶段的步骤(调试日志上的grep)。这也将帮助我在将来详细分析modsecurity的功能。请你帮我解答疑问。如果我想在第1阶段而不是第2阶段执行规则“SecRule REMOTE_HOST”@endsWith.search.msn.com”“allow,nolog,id:5000003,msg:'msn bot'”,则提到“第1阶段”“在行动中,规则的一部分就足够了吗?或者基于远程主机的规则只能在第2阶段执行?我认为显式的总是比隐式的好:)。您应该将
阶段:1
放在操作列表中,这样就足够了。通常,当使用的变量可用时,值得努力将规则置于较低的阶段。远程主机在
阶段1可用,这是一个很好的选择。