为什么我的nginx服务器会收到针对ads.yahoo.com的请求?

我有面向公共互联网的nginx代理.几天前,我开始收到大量请求,定位对我的域无效的网址.

来自nginx access.log的摘录:

216.245.222.172 - - [07/Feb/2014:10:45:26 +0000] "GET http://ads.yahoo.com/st?ad_type=iframe&ad_size=300x250&section=5306841&pub_url=${PUB_URL} HTTP/1.0" 301 184 "http://www.echogap.com/index.php?option=com_content&view=article&id=1383:Credit-Report---How-Do-Late-Payments-Affect-My-Credit-Report-And-Score?&catid=154" "Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/125.2 (KHTML, like Gecko) Safari/125.8"

我需要帮助理解/解决的一些问题:

>为什么请求网址包含带域名的完整网址,而不是通常的路径?
>甚至没有针对我的域的请求如何到达我的服务器(.i.e,ads.yahoo.com)?
>什么是避免提供这些请求的最佳方法?我想将原始ips列入黑名单是不可能的,因为请求来自很多不同的地址.
>描述的场景是否意味着明显的攻击?

最佳答案
看起来他们正在尝试将您的Web服务器用作open proxy.只要您没有看到您的服务器以200 OK响应,您就不应该担心.

更新:

虽然有可能通过内置nginx功能来处理这个问题,但我发现更容易安装/启用mod_security并让他处理这个和其他讨厌的攻击.正如你在下面的日志中看到的,有人试图通过我的服务器访问维基百科,mod_security知道这是一个异常,需要采取适当的行动(它返回403禁止响应).这是一个Apache服务器,但它在nginx中应该完全相同.

--817ee627-A--
[03/Feb/2014:22:26:01 +0300] Uu-tScDjiOsAAALeENQAAAAA 178.19.107.26 52735 1.2.3.4 80
--817ee627-B--
GET http://wikipedia.pl HTTP/1.1
Host: wikipedia.pl
Accept: */*
Proxy-Connection: Keep-Alive

--817ee627-F--
HTTP/1.1 403 Forbidden
Content-Length: 202
Connection: close
Content-Type: text/html; charset=iso-8859-1

--817ee627-E--

--817ee627-H--
Message: Access denied with code 403 (phase 1). Match of "rx ^(?i:(?:[a-z]{3,10}\\s+(?:\\w{3,7}?://[\\w\\-\\./]*(?::\\d+)?)?/[^?#]*(?:\\?[^#\\s]*)?(?:#[\\S]*)?|connect (?:\\d{1,3}\\.){3}\\d{1,3}\\.?(?::\\d+)?|options \\*)\\s+[\\w\\./]+|get /[^?#]*(?:\\?[^#\\s]*)?(?:#[\\S]*)?)$" against "REQUEST_LINE" required. [file "/etc/httpd/modsecurity.d/activated_rules/modsecurity_crs_20_protocol_violations.conf"] [line "52"] [id "960911"] [rev "2"] [msg "Invalid HTTP Request Line"] [data "GET http://wikipedia.pl HTTP/1.1"] [severity "WARNING"] [ver "OWASP_CRS/2.2.6"] [maturity "9"] [accuracy "9"] [tag "OWASP_CRS/PROTOCOL_VIOLATION/INVALID_REQ"] [tag "CAPEC-272"]
Action: Intercepted (phase 1)
Stopwatch: 1391455561096692 260049 (- - -)
Stopwatch2: 1391455561096692 260049; combined=104238, p1=104194, p2=0, p3=0, p4=0, p5=43, sr=104028, sw=1, l=0, gc=0
Response-Body-Transformed: Dechunked
Producer: ModSecurity for Apache/2.7.3 (http://www.modsecurity.org/); OWASP_CRS/2.2.6.
Server: Apache
Engine-Mode: "ENABLED"

* 1.2.3.4 =我用这个虚假IP替换了我的IP地址.我不需要任何更奇怪的包敲我的门:)

转载注明原文:为什么我的nginx服务器会收到针对ads.yahoo.com的请求? - 代码日志