【发布时间】:2019-08-15 17:06:55
【问题描述】:
我正在尝试添加一个 mod 安全规则,以在 apache 提供服务的 Web 应用程序上实现特定 uri 的速率限制。
尝试重新启动 apache 时出现以下错误:
ModSecurity: No action id present within the rule
Action 'configtest' failed.
The Apache error log may have more information
具体来说 - 这就是我想要实现的目标:https://johnleach.co.uk/words/2012/05/15/rate-limiting-with-apache-and-mod-security/
似乎该文章是为不需要 id 的 mod_security 的先前版本编写的。
然而,我已经更改了规则以包含一个 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>
不确定如何调试。欢迎任何意见。
【问题讨论】:
-
顺便说一句,我也尝试将 id 值用单引号括起来,但这并没有什么不同
标签: apache apache2 vhosts mod-security2