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

我有一个面向公共互联网的nginx代理。 几天前,我开始收到大量的请求,指向我的网域无效的url。

摘自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" 

有些观点我需要帮助理解/解决:

  • 为什么请求的url包含完整的域名,而不是通常的path?
  • 如何甚至没有针对我的域名的请求到达我的服务器(.ie,ads.yahoo.com)?
  • 避免提供这些请求的最佳方法是什么? 我想黑名单发起ips是没有问题的,因为请求来自很多不同的地址。
  • 描述的情景是否意味着明确的攻击?

似乎他们正在尝试使用您的Web服务器作为开放代理 。 只要你没有看到你的服务器响应200 OK ,你不应该担心。

更新:

尽pipe可能有办法通过内置的nginxfunction来处理这个问题,但是我发现安装/启用mod_security更容易,并让他处理这个和其他的恶意攻击。 正如你将在下面的日志中看到的,有人试图通过我的服务器到达维基百科,mod_security知道这是一个exception和采取适当的行动(它返回一个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:(?:[az]{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 =我用这个假IPreplace了我的IP地址。 我不需要任何更奇怪的包敲我的门:)