Mod security rule breaking Apache configtest

Mod security rule breaking Apache configtest,apache,apache2,vhosts,mod-security2,Apache,Apache2,Vhosts,Mod Security2,我正在尝试添加一个mod security规则,以便在apache提供服务的web应用程序上对特定uri实现速率限制 尝试重新启动apache时出现以下错误: ModSecurity: No action id present within the rule Action 'configtest' failed. The Apache error log may have more information 具体来说,这就是我想要实现的目标: 这篇文章似乎是为mod_security的前一个版本

我正在尝试添加一个mod security规则,以便在apache提供服务的web应用程序上对特定uri实现速率限制

尝试重新启动apache时出现以下错误:

ModSecurity: No action id present within the rule
Action 'configtest' failed.
The Apache error log may have more information
具体来说,这就是我想要实现的目标:

这篇文章似乎是为mod_security的前一个版本编写的,该版本不需要id

不过,我修改了规则,添加了一个id,如您所见,我添加了id:1234。因此,我不知道为什么我仍然得到错误

<LocationMatch "^/login_check">
  SecAction initcol:ip=%{REMOTE_ADDR},pass,nolog
  SecAction "phase:5,deprecatevar:ip.somepathcounter=1/1,pass,nolog"
  SecRule IP:SOMEPATHCOUNTER "@gt 60" "phase:2,id:1234,pause:300,deny,status:509,setenv:RATELIMITED,skip:1,nolog"
  SecAction "phase:2,pass,setvar:ip.somepathcounter=+1,nolog"
  Header always set Retry-After "10" env=RATELIMITED
</LocationMatch>

我真的不知道如何调试这个。欢迎任何输入。

SecAction指令还需要id:

注意:从v2.7.0开始,所有SecRule/SecAction指令都需要id操作


在你的SecAction行中添加一个唯一的id,它应该会起作用。

作为旁白,我也尝试过用单引号括起id值,但这并没有什么不同。谢谢,我最终意识到了这一点!