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

为什么我的 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 包含带域名的完整 URL,而不是仅包含通常的路径?
  • 甚至没有针对我的域名的请求怎么可能到达我的服务器(即 ads.yahoo.com)?
  • 避免处理这些请求的最佳方法是什么?我猜将原始 IP 列入黑名单是不可能的,因为请求来自许多不同的地址。
  • 所描述的场景是否意味着明确的攻击?

答案1

似乎他们试图将您的网络服务器用作开启代理。只要您没有看到服务器以 响应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 地址。我不希望再有奇怪的数据包来敲我的门 :)

相关内容