Nginx
access.log中的奇怪請求,如何阻止?
我在自己的伺服器上使用 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 "-" "-"
這些是我不擁有的域的請求(Google,雅虎……)
我猜它可能是網路爬蟲,或機器人或……
有沒有辦法阻止這種數據包,使用fail2ban,iptables 或者我不知道還有什麼……?
這些是 Internet 上的每個 Web 伺服器都能看到的無害的垃圾請求 - 很可能是腳本小子在尋找配置嚴重錯誤的 Web 伺服器,並允許您發出代理請求並使用該
CONNECT
方法。您的伺服器似乎被適當地配置為拒絕嘗試使用該
CONNECT
方法(返回HTTP/400 - Bad Request
),我敢打賭,如果您 telnet 並嘗試這樣做,GET http://www.google.com/
您會因為您的麻煩而從您的網站上獲得一個頁面。讓這種東西消失的唯一方法是阻止所有 HTTP 流量,除了“已知良好”主機列表之外,這違背了公共 Web 伺服器的目的。我最好的建議是放鬆,喝杯啤酒,不要沉迷於網路伺服器的訪問/錯誤日誌中的條目,除非你想解決一個特定的問題。