Tom*_*ght 9 httpd.conf useragent apache-2.2
我最初发布在webmasters.stackexchange.com 上,但被告知我会在这里得到更好的接待。
在过去的几天里,我一直在遭受(可能是无意的)DDOS 攻击。我从一个标识为“Mozilla/4.0(兼容;ICS)”的代理那里收到了很多请求,apache 吃掉了所有可用内存。
因此,我想阻止此用户代理伴随的所有请求,因此我尝试在 httpd.conf 中执行此操作:
SetEnvIfNoCase User-Agent "Mozilla/4.0 (compatible; ICS)" bad_user
Deny from env=bad_user
Run Code Online (Sandbox Code Playgroud)
但是当我重新启动 apache 时,它抱怨在deny这里使用。不必将它包装在一个location或directory块中,这意味着我必须为每个站点添加一个新块,有什么办法可以拒绝访问整个服务器?
更新:我得到的错误
- 重新启动 Web 服务器 apache2
/etc/apache2/httpd.conf 第 4 行出现语法错误:这里不允许拒绝 [失败]
小智 7
现在看起来像一个老问题,但我想做同样的事情并从上面的神经中找到答案。它并不完全正确 - 在我看来它应该是<Location "/">,并且SetEnvIf需要一个正则表达式,所以括号需要被引用。
这对我在所有虚拟主机上应用访问控制很有用:
SetEnvIfNoCase User-Agent "^Mozilla/4.0 \(compatible; Synapse\)" bad_ua
<Location "/">
Deny from env=bad_ua
</Location>
Run Code Online (Sandbox Code Playgroud)
只需在 vhost 定义之前包含它。
| 归档时间: |
|
| 查看次数: |
25838 次 |
| 最近记录: |