神秘错误的中国stream量:如何找出HTTP请求使用的DNS服务器?

在过去的一周里,我从各种各样的中国IP地址获得了大量的stream量。 这个stream量似乎来自正常的人,他们的HTTP请求表明他们认为我是:

  • Facebook的
  • 海盗湾
  • 各种BitTorrent跟踪器,
  • 色情网站

所有这些听起来像人们使用VPN的东西。 或者会让中国长城生气的事情。

用户代理包括网页浏览器,Android,iOS,FBiOSSDK,Bittorrent。 IP地址是正常的商业中文提供商。

我有Nginx返回444如果主机是不正确的或用户代理显然是错误的:

## Deny illegal Host headers if ($host !~* ^({{ www_domain }})$ ) { return 444; } ## block bad agents if ($http_user_agent ~* FBiOSSDK|ExchangeWebServices|Bittorrent) { return 444; } 

我现在可以处理负载,但是有一些高达2k /分钟的爆发。 我想知道他们为什么要来找我并阻止它。 我们也有合法的CN交通,所以禁止1/6的地球是不行的。

它可能是恶意的,甚至是个人的,但它可能只是一个configuration错误的DNS。

我的理论是,它是一个错误configuration的DNS服务器,或者可能是一些人们用来绕开Great Fire Wall的VPN服务。

给定一个客户端IP地址:

 183.36.131.137 - - [05/Jan/2015:04:44:12 -0500] "GET /announce?info_hash=%3E%F3%0B%907%7F%9D%E1%C1%CB%BAiF%D8C%DE%27vG%A9&peer_id=%2DSD0100%2D%96%8B%C0%3B%86n%8El%C5L%11%13&ip=183.36.131.137&port=11794&uploaded=4689970239&downloaded=4689970239&left=0&numwant=200&key=9085&compact=1 HTTP/1.0" 444 0 "-" "Bittorrent" 

我可以知道:

 descr: CHINANET Guangdong province network descr: Data Communication Division descr: China Telecom 
  • 我怎样才能找出这些客户正在使用的DNS服务器?
  • 无论如何确定一个HTTP请求是否来自VPN?
  • 这里究竟发生了什么?

有一种理论方法可以确定客户端的DNSparsing器,但是这种parsing器相当先进,我不知道任何现成的软件都可以为您做到这一点。 除了你的nginx之外,你一定要运行一个权威的DNS服务器。

如果HTTP主机头不正确,请提供一个错误文档,并为您login到数据库的每个请求包含对dynamic创build的唯一FQDN的请求。 例如。

http://e2665feebe35bc97aff1b329c87b87e7.example.com/img.png

只要中国的防火墙不会摆弄这个请求,客户端就从这个唯一的FQDN + URI请求文档,每个请求都会导致一个新的DNS查询到你的权威DNS example.com,在那里你可以loggingIP DNSparsing器,稍后将其与dynamic生成的URI相关联。

我听说过这个防火墙曾经被用来将“阻塞”的stream量redirect到一些虚假的IP地址,但是这使得他们的数据块很容易被发现(我不确定它是否允许轻易颠覆)。 无论如何,pipe理员已经开始redirect到随机IP。 这导致了一些中国用户看起来像色情,而不是Facebook或VPN。

我怀疑你的一个IP已经成为阻止中国stream量的接收者 – 因此你看到了Facebook的IPI用户代理。

这意味着主机头检查应该是一个好主意。 现在大多数用户代理都支持SNI,所以你应该能够放弃无主机头的stream量,而且相对来说不受任何惩罚。

编辑: http : //www.infosecurity-magazine.com/news/great-firewall-upgrade-redirects/

我怎样才能找出这些客户正在使用的DNS服务器?

联系Chinanet并询问? 严重的是,DNS可以在客户端configuration。 大多数人通过DHCP获得DNS设置,但是如果您无法更改,OpenDNS和Google的DNS服务将不会有商业模式。

无论如何确定一个HTTP请求是否来自VPN?

不是真的,除了IP是VPN,而不是中国的最终用户。

这里究竟发生了什么?

我不能告诉你,但也许在中国的防火墙中有一些错误configuration?