在过去的一周里,我从各种中国 IP 地址获得了大量流量。此流量似乎来自普通人,他们的 HTTP 请求表明他们认为我是:
所有这些听起来都像是人们会使用 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;
}
Run Code Online (Sandbox Code Playgroud)
我现在可以处理负载,但有一些高达 2k/分钟的突发。我想找出他们为什么来找我并阻止它。我们也有合法的 CN 流量,所以禁止 1/6 的地球不是一个选项。
它可能是恶意的甚至是个人的,但它可能只是那里配置错误的 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"
Run Code Online (Sandbox Code Playgroud)
我可以知道:
descr: CHINANET Guangdong province network
descr: Data Communication Division
descr: China Telecom
Run Code Online (Sandbox Code Playgroud)
r_3*_*r_3 31
有一种确定客户端 DNS 解析器的理论方法,但它非常先进,我不知道有任何现成的软件可以为您做到这一点。除了 nginx 之外,您肯定还必须为此运行权威的 DNS 服务器。
如果 HTTP 主机标头不正确,请提供一个错误文档,并为您记录到数据库的每个请求包含一个对动态创建的唯一 FQDN 的请求。例如。
只要中国强大的防火墙不摆弄那个请求并且客户端从那个唯一的 FQDN+URI 请求文档,每个请求都会导致一个新的 DNS 查找到您的权威 DNS 中,例如.com,您可以在其中记录您的 IP DNS 解析器稍后将其与动态生成的 URI 相关联。
我听说伟大的防火墙曾经将“被阻止的”流量重定向到少数虚假 IP,但这导致它们的阻止很容易被发现(我不确定它是否允许轻松颠覆)。无论如何,管理员已经开始重定向到随机 IP。显然,这导致一些中国用户获取色情内容,而不是 facebook 或 vpns。
我怀疑你的一个 IP 被证明是被阻止的中国流量的接收者 - 因此你看到了 Facebook IPI 用户代理。
这意味着主机头检查应该是一个很好的检查。现在大多数用户代理都支持 SNI,因此您应该能够相对不受惩罚地丢弃 no-host-header 流量。
编辑:http : //www.infosecurity-magazine.com/news/great-firewall-upgrade-redirects/
归档时间: |
|
查看次数: |
4182 次 |
最近记录: |