access.log中的奇怪请求,如何阻止?

jch*_*pem 5 linux http nginx web-crawler

我在自己的服务器上使用 nginx,几天前我注意到我的 access.log 中有一些奇怪的请求:

77.50.217.37 - - [19/Aug/2011:17:50:50 +0200] "GET http://images.google.com/ HTTP/1.1" 200 151 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; .NET CLR 1.1.4322; Media Center PC 5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E)"
174.142.123.42 - - [19/Aug/2011:17:51:59 +0200] "GET http://l08.member.ird.yahoo.com/?.src=ym&login=_420_club_chick_&passwd=112211 HTTP/1.0" 200 151 "-" "MobileRunner-J2ME"
65.52.227.217 - - [19/Aug/2011:17:52:30 +0200] "GET http://javaddiction.biz/index.php HTTP/1.1" 404 570 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"
188.72.199.25 - - [19/Aug/2011:17:52:35 +0200] "CONNECT google.com:80 HTTP/1.1" 400 172 "-" "-"
188.72.199.25 - - [19/Aug/2011:17:53:40 +0200] "CONNECT google.com:80 HTTP/1.1" 400 172 "-" "-"
Run Code Online (Sandbox Code Playgroud)

这些是对我不拥有的域的请求(谷歌、雅虎……)

我猜它可能是网络爬虫,或机器人或......

有没有办法阻止这种数据包,使用fail2ban,iptables 或者我不知道还有什么......?

vor*_*aq7 6

这些是 Internet 上每个 Web 服务器都会看到的无害的垃圾请求 - 最有可能的脚本小子正在寻找配置严重错误的 Web 服务器,并允许您发出代理请求并使用该CONNECT方法。

您的服务器似乎已正确配置为拒绝使用该CONNECT方法 (Returns HTTP/400 - Bad Request) 的尝试,我敢打赌,如果您通过 telnet 登录并尝试访问,GET http://www.google.com/您将获得一个页面,以解决您的问题。

使这种东西消失的唯一方法是阻止除“已知良好”主机列表之外的所有 HTTP 流量,这违背了公共 Web 服务器的目的。我最好的建议是放松一下,喝杯啤酒,不要沉迷于 Web 服务器访问/错误日志中的条目,除非您想解决特定问题。