云伴侣-云伴侣是管理云服务器、云主机最简单、最省心的方式.

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2466|回复: 4

关于功夫网近期 DNS 缓存污染的一点研究

  [复制链接]
发表于 2015-1-12 21:50:18 | 显示全部楼层 |阅读模式
众所周知,最近墙长个了.昨晚 @danyanpi 跟我叨咕: VPN 的 DNS 若设置成 8.8.8.8 ,则结果被污染.其实以前亦是如此,墙会污染几个著名的公共 DNS .询问我解决方案,这个本来我不太清楚,因为一直用 SSH + PAC , DNS 解析是远程的,所以并不会遇到这种情况.但他说,难道你就不能 XXXX 么?
我暗忖:

  • 现在都午夜了, RFC 是个大坑,搞这个会繁琐死.弄不好会折腾到天亮都未必能解决.不能搞.
  • 反正自己也不会碰到,何必和猪打架.不能搞啊.
  • 折腾这个就是浪费时间和精力,一毛钱不赚,不能搞啊啊啊...

结果,妈蛋,好奇心不止会害死猫,我也没忍住,还是搞了!结果有些出乎意料,写出来和大家分享.
首先是收集资料,和 DNS 相关的 RFC 有十几个,尼玛,这大坑.
然后就是挑选工具.虽然很多人对 Bash 推崇备至,可是我对它真心打怵,每次写起来比便秘痛苦多了...所以还是用 Ruby 吧...
接着看看 Ruby 中有关 DNS 的库,果然标准库中有 "resolv.rb" .整整 2400 行.
最后设计实验方案:
  • 检测公共 DNS 的污染情况,包括 UDP(默认) 和 TCP(可选) .按照以前的说法是墙不会污染 TCP .
  • 尝试除了加密以外的其它方式解析 DNS .

这里只说说怎么解决 Ruby 中默认不提供 TCP requester的问题.官方的处理逻辑是这样的:先通过 UDP 请求.失败了再通过 TCP 请求.



可是这不符合我们实验的要求,要不怎么说啊,歪果仁(外国人)太单纯,他哪知道可怜的中国猿类要面对这么复杂的网络环境.此刻凯撒附体(来自于猩球崛起),来给 Ruby Standard Library 打个猴子补丁(Monkey patch)吧~

下面是代码与真相时间:



最后公布结论:

  • 功夫网已经进化,会同时污染 UDP / TCP 方式的 DNS 查询.
  • 功夫网似乎不再像以往一样固定返回若干假 IP ,而变得随机返回结果.这导致以往收集假 IP 来过滤的方法无效了.
  • DNS 的污染是基于端口(53端口),所以可以请求非标准端口的 DNS 服务器.
  • 非标准端口无论是 UDP 还是 TCP 都可以获得正确结果,因此使用 UDP 还能快些.

下面我们有请 @貓咪燒香 来给我们讲讲自建 DNS 服务器的技巧,大家掌声欢迎~







本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

评分

参与人数 3娱乐豆 +21 收起 理由
simon + 7 来看牛
猛象肥羊 + 7 大牛蛋蛋
恋恋 + 7 牛蛋~~

查看全部评分

发表于 2015-1-12 22:25:12 | 显示全部楼层
本帖最后由 貓咪燒香 于 2015-1-13 19:11 编辑

呃...就这么被艾特出来了...
有点受宠若惊啊...
正如04G结论中提到的:
1、TCP这个貌似只是针对个别的确的点艹行为,还没真正的全国统一部署。
2、功夫网最近的确是升级了(我监测到是从2015.1.1开始的,这丫的是送给我们的新年礼物啊!!!),之前就那么四五十个固定的 Fake IP,我们可以通过黑名单的形式进行相应的屏蔽来实现拿到正确的解析结果,但是升级后,返回的解析结果是随机的了(也有人研究过说不是随机的,而是有一个固定的IP池,然后功夫网会每半个小时从池中挑选出若干个IP来进行投毒,而且这个IP池据说有 3000 多个IP,还有很多IP是有服务器的在运行的站点的IP,这尼玛就是给N多站点来DDos攻击啊!),这样我们之前的老办法就没法用了...
3、功夫网是有针对性的只对DNS所使用的端口 即 53 端口进行投毒,所以可以考虑使用其他非标准端口 即 53 端口的DNS进行正确解析。
4、这里再补充一点,就是功夫网只针对国外的DNS(其实也不是只针对DNS,只要是检测到非国内IP的DNS解析都一个德行)进行投毒,所以可以考虑用广播到国外的归属为国内的IP做DNS解析服务来拿到正确的解析结果。

其实自建DNS很累人的...能远程解析就远程解析完了...别折腾了,有那么多时间还不如多看看书呢,将来没准还能逃离兲朝,那时候就不需要这么折腾了~

你们这群人啊...
自建真的很累的...
其实已经有人在GitHub开了本地DNS的项目,根据自己的实际使用情况配置一下就好了...
DNSforWarderPcap_DNSProxyChinaDNS

这里给出三个本地DNS的项目,再给出一个我自用的做参考。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

评分

参与人数 3娱乐豆 +14 收起 理由
simon + 7 你的东西呢
猛象肥羊 -1 说好的自建DNS呢
046569 + 8 说好的自建DNS呢?

查看全部评分

发表于 2015-1-13 08:28:05 | 显示全部楼层
自建dns是说用Windows 2003 自带的组件搭建的?那得租个vps吧?
 楼主| 发表于 2015-1-13 16:00:39 | 显示全部楼层
猛象肥羊 发表于 2015-1-13 08:28
自建dns是说用Windows 2003 自带的组件搭建的?那得租个vps吧?

本机搭一个就好了,你可以请教 @貓咪燒香
发表于 2015-1-15 12:44:24 | 显示全部楼层
大神啊,谁能教会我去翻墙啊。突然发现登陆不了谷歌了啊。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|云伴侣 ( 粤ICP备14022677号-1 )| 亚丁云旗下站点

GMT+8, 2024-4-30 00:28

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表