快速问你所有 – 相当频繁在我的httpd日志中我看到这样的事情:
66.11.122.194 - - [29/Jan/2010:11:06:44 +0000] "GET HTTP/1.1 HTTP/1.1" 400 418 "-" "Toata dragostea mea pentru diavola" 66.11.122.194 - - [29/Jan/2010:11:06:44 +0000] "GET /roundcube//bin/msgimport HTTP/1.1" 404 417 "-" "Toata dragostea mea pentru diavola" 66.11.122.194 - - [29/Jan/2010:11:06:44 +0000] "GET /rc//bin/msgimport HTTP/1.1" 404 413 "-" "Toata dragostea mea pentru diavola" 66.11.122.194 - - [29/Jan/2010:11:06:44 +0000] "GET /mss2//bin/msgimport HTTP/1.1" 404 415 "-" "Toata dragostea mea pentru diavola" 66.11.122.194 - - [29/Jan/2010:11:06:45 +0000] "GET /mail//bin/msgimport HTTP/1.1" 404 415 "-" "Toata dragostea mea pentru diavola" 66.11.122.194 - - [29/Jan/2010:11:06:45 +0000] "GET /mail2//bin/msgimport HTTP/1.1" 404 416 "-" "Toata dragostea mea pentru diavola" 66.11.122.194 - - [29/Jan/2010:11:06:45 +0000] "GET /roundcubemail//bin/msgimport HTTP/1.1" 404 420 "-" "Toata dragostea mea pentru diavola" ...
你得到这个想法,一个漏洞扫描脚本。 由于我没有安装我的networking应用程序到标准甚至远程命名的安装,我几乎总是返回404s,但它仍然令人不安。 所以我的问题是,有没有办法检测/减轻这种攻击,也许使用mod_rewrite和已知的阻止列表等? 或者这是Web服务器pipe理员只需要忍受的东西?
谢谢。
您可以使用mod_security或其他Web应用程序防火墙(waf)。 这样的请求仍然会打击您的networking服务器,但mod_security会过滤掉标记为可疑的请求。
有不同的可能性来build立waf:
最好的解决scheme很大程度上取决于你的设置,所以没有一般的答案。 但文档应该帮助您决定采取什么解决scheme。
还有一点需要考虑:
waf会给你的系统增加一些复杂性,所以要确定你是否要使用它。
总是有Fail2Ban ; 把它设置为在一分钟之内观看Apache的日志和10个404之后的禁止或类似的东西。
简短的回答 – 你不能。 从Web服务器的angular度来看,脚本只是另一种浏览器,尽pipe这是一种错误的浏览器。 最好的办法是让防火墙检测并阻止这种扫描。 当然细节取决于你使用的防火墙。
正如约翰所说,你真的不能。
你可以尝试用mod_rewrite来阻止一些不好的请求,但是没有其他的。 例如,我们阻止查询string中有[sysobject]的所有请求(我们不使用MSSQL,但是有很多这样的请求,它们可以减慢网站速度)。 如果您使用mod_rewrite,请确保不要阻止合法的请求。