速率限制 Apache 2 访问控制?

速率限制 Apache 2 访问控制?

我没有做任何特别的事情。我只是使用 Apache2 访问控制来密码保护目录。

我认为,如果 Apache 能够限制用户从给定 IP 尝试验证用户名和密码的频率,那就太聪明了。这是一种阻止暴力破解密码的廉价方法,无需对合法用户登录尝试进行 DoSing 攻击。

我搜索了一下,没有找到任何具体的方法,这让我很惊讶。有办法吗?还有更好的方法吗?

答案1

博客文章表示你可以这样做mod_security使用类似下面的方法:

SecRuleEngine On

<LocationMatch "^/somepath">
  SecAction initcol:ip=%{REMOTE_ADDR},pass,nolog
  SecAction "phase:5,deprecatevar:ip.somepathcounter=1/1,pass,nolog"
  SecRule IP:SOMEPATHCOUNTER "@gt 60" "phase:2,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>

ErrorDocument 509 "Rate Limit Exceeded"

更多讨论这个答案

相关内容