我最初将此内容发布在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
但是当我重新启动apache时,它抱怨在deny
这里使用。不必将其包装在location
或directory
块中,这意味着我必须为每个站点添加一个新块,有什么办法可以拒绝访问整个服务器?
更新:我得到的错误
在/etc/apache2/httpd.conf的第4行上重新启动Web服务器apache2 语法错误:此处不允许拒绝[失败]
<Location>
因为它会覆盖中的任何其他授权限制<Directory>
,除非您添加AuthMerging And
。请参阅Require
apache文档中有关的安全警告:httpd.apache.org/docs/2.4/mod/mod_authz_core.html#require