神秘的误导性中国流量:如何找出 HTTP 请求使用了哪个 DNS 服务器?

神秘的误导性中国流量:如何找出 HTTP 请求使用了哪个 DNS 服务器?

过去一周,我收到了来自大量中国 IP 地址的大量流量。这些流量似乎来自普通用户,他们的 HTTP 请求表明他们认为我是:

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

所有这些听起来都像是人们会使用 VPN 做的事情。或者会让中国长城愤怒的事情。

User-agent 包括浏览器,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 流量,因此禁止地球上六分之一的流量不是一个选择。

它可能是恶意的,甚至是个人的,但也可能只是那边的 DNS 配置错误。

我的理论是,这是一个配置错误的 DNS 服务器,或者可能是人们用来绕过防火墙的一些 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?
  • 这到底发生了什么事?

答案1

理论上有一种确定客户端 DNS 解析器的方法,但这种方法非常先进,我不知道有什么现成的软件可以帮你做到这一点。除了 nginx 之外,你肯定还得为此运行一个权威 DNS 服务器。

如果 HTTP 主机标头不正确,则提供错误文档,并针对记录到数据库的每个请求向动态创建的唯一 FQDN 包含请求。例如。

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

只要中国的防火墙不干扰该请求,并且客户端从该唯一的 FQDN+URI 请求文档,那么每个请求都会导致对您的权威 DNS(例如 example.com)进行新的 DNS 查找,您可以在其中记录 DNS 解析器的 IP,然后将其与您动态生成的 URI 相关联。

答案2

我听说防火墙曾经将“被阻止”的流量重定向到少数虚假 IP,但这导致他们的阻止很容易被发现(我不确定这是否允许轻易颠覆)。无论如何,管理员已经开始重定向到随机 IP。这显然导致一些中国用户访问色情内容,而不是 Facebook 或 VPN。

我怀疑您的某个 IP 已成为被阻止的中国流量的接收者 - 因此您看到了 Facebook IPI 用户代理。

这意味着主机头检查应该很好。目前大多数用户代理都支持 SNI,因此您应该能够相对轻松地丢弃无主机头流量。

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

答案3

我如何才能知道这些客户正在使用什么 DNS 服务器?

联系 Chinanet 询问?说真的,DNS 可以在客户端配置。大多数人通过 DHCP 获取 DNS 设置,但如果您无法更改它们,OpenDNS 和 Google 的 DNS 产品就没有商业模式了。

有没有办法确定 HTTP 请求是否来自 VPN?

不是的,只不过该 IP 属于 VPN,而不是中国的最终用户。

这到底发生了什么事?

我不能告诉你,但也许存在某种配置错误中国防火墙

相关内容