科学上网

翻墙 | Ghost Assassin:不靠谱的DNS总是被钻空子

27号开始Gmail服务遭到了GFW的全面封杀,在墙内彻底无法使用。从技术上来说,GFW采用的是最为原始而且成本很高的手法:IP地址屏蔽,所有的骨干路由器和国际出口的路由器都添加上了和Gmail服务有关的IP黑名单,带有相关IP地址的数据包直接在半路就被丢包了。说实在的,这种手法会给路由器带来很大负担,成本非常高,所以GFW对于多数网站的封锁并没有采用这种手段,而是采用了一种廉价很多又很有效的手段:DNS欺骗(或者叫DNS污染)。先从什么是DNS说起吧:DNS是Domain Name System(域名系统)的缩写,是一个分布式的数据库系统1,负责在通信时把目标网站的域名对应成相应的IP地址(计算机网络中的计算机之间的通信时各自的位置是靠IP地址(还有MAC地址)标明的,但对于人来说IP地址实在是很不好记,所以适合人类记忆的域名就横空出世了)。当用户在浏览器地址栏中输入一个URL并且按了回车之后,首先启动的就是DNS协议:DNS正常工作的前提是用户已经在网络设置中指定了IP地址和所用的DNS解析服务器(或者叫递归域名服务器),当浏览器发起DNS查询请求之后,首先检查hosts文件,如果文件中有目标网站对应的IP地址,那么就取得这个IP地址并结束查询过程;如果没有,那么就向递归域名服务器发起查询请求,如果递归域名服务器的缓存上有相应的数据,那么就取得IP地址,结束查询过程;如果没有,接下来的过程就比较复杂了,具体看这里2吧,我不再重复,简单来说就是如果想要去墙外网站看看,一般情况下都要和墙外的域名服务器通信的(所以想要建立天朝局域网是需要付出很大的代价的)DNS协议是应用层协议(关于这些层究竟是怎么回事,请看这里3),基于UDP工作(也可以基于TCP工作,但绝大部分情况下都是基于UDP工作的,有空时我会聊聊这两个重要的传输层协议究竟是怎样的),标准工作端口是53端口1。“看上去好像很正常啊,不就是一个普通的协议吗!这跟GFW为什么选择进行DNS欺骗又有什么关系呢?”注意到“基于UDP工作”了这点没有?UDP(用户数据报协议)是一个无连接的不可靠的协议,所谓无连接不可靠主要是指以下两点:1,不保证能将数据包送到目的地,丢失的或损坏的数据包不会被重传(TCP就要求重传,而且有严格的查错机制,有空我会仔细聊聊);2,先发送的数据包不一定先到达(想象一下平时坐车情景就能明白这一点:后出发的公交车如果绕了近路或者成功超车了,反倒会抢在先出发的公交车之前到达目的站点)。特别是第二点,面向连接的可靠协议(例如TCP)就要求先送出的数据包先到达,不能打乱顺序。基于UDP的DNS协议自然也就变成了一个无连接不可靠的协议了,这就给了GFW钻空子的机会:由于本身不是面向连接的,没有建立一个端到端的连接(面向连接的协议工作时都会逻辑上建立一个端到端的连接通路,就像流水线一样,把一个个数据包严格按顺序传送过去,不允许谁掉队,不允许谁出错),所以GFW只要抢在墙外的域名服务器传回查询结果之前伪造一个查询结果发回来就能成功把相应的网站墙掉了4:用户的浏览器收到了伪造的查询结果,就终止了与域名服务器的通信,开始试图连接到一个根本就不对应网站的IP地址上,结果就是无法成功建立连接(一般情况下显示:无法解析某某地址)。如果是基于TCP的,GFW就没有办法玩这招了(不过GFW可以用伪造RST包的方式对付TCP连接),具体怎么回事我在以后讲解TCP的时候再仔细说明一下。不过我前面也提到了UDP不保证先出发的先到达,也就是说虽然GFW抢先发送了伪造的查询结果,但有可能正确的查询结果反而先到达用户PC上,这样就封锁失败了,所以GFW对于正确的查询结果也进行了注入处理,篡改了查询结果,把真实IP地址替换成了伪造的IP地址4具体来说GFW就是这样一个工作流程:当用户试图连接到被封锁的网站时,相应的查询请求数据包必然会经过国际互联网的出口,此时GFW通过基于正则表达式5的黑名单进行匹配6,一旦发现有关键字匹配上了(不管这个域名实际上是否存在)就马上开始伪造查询结果并发送回去(这一过程由GFW路由器负责,顺便说一句伪造的查询结果中有个假IP地址是中国联通的4,可想而知这些ISP都是GFW的一部分),再接着篡改从墙外到来的真正的查询结果。这一过程叫做DNS欺骗或DNS污染。这一过程最主要是部署在互联网旁路上的入侵检测设备负责的(GFW的实质是巨大的分布式入侵检测系统而不是防火墙),路由器只负责伪造查询结果,资源消耗比起基于路由器工作的IP地址屏蔽要低上很多,而且还有额外的好处4:对于网站来说,换一个IP地址,用户基本上感觉不到有什么变化;但是换一个域名就不一样了,域名就是给人记的,随便换域名会流失大量用户,尤其是很多主要用户不是天朝用户的网站,根本就不会因为天朝用户看不到自己的网站而更换域名失去其他大量用户的,这样就使得GFW的DNS污染长期有效了。说到这里,诸位应该就能想到对应的几点解决方法了:1,加密查询请求和查询结果(GFW至少不敢封根域名服务器的,除非共匪真心想要建立天朝局域网)2,基于TCP进行查询(加密数据包决不能送丢了,更重要的是GFW迄今为止还是基本上只污染基于UDP的查询结果,GFW一直只监听53端口,也可以试试换个端口查询)3,添加身份认证机制(免得是个路由器都能装成域名服务器)4,想办法过滤掉伪造的查询结果(但考虑到GFW对于真正的查询结果也会下手,这方法效果不会好)5,或者,最简单的:修改hosts,直接在本地PC上完成查询过程,自然就没有后来的事了(这就是hosts翻墙的原理)事实上现在已经有一些改进DNS协议安全性的手段了(例如DNSSEC),我会在“SSL/TLS的原理以及互联网究竟是如何工作的”系列里进行介绍。而DNSCrypt7(注意这个名字,crypt就是加密的意思,直接加密走OPENDNS查询)和DNSforwarder8(按作者说法是走TCP查询或者过滤伪造的查询结果)还有ChinaDNS9(走国外DNS服务器,加密查询结果)以及各种hosts文件就是依据前面所说的解决方法来对抗GFW的DNS污染从而规避封锁的。最后再说一句,天朝流氓ISP很多时候很喜欢玩DNS劫持,这和DNS污染是两个概念:DNS劫持简单来说就是ISP把自己的域名服务器上的记录进行篡改,在用户进行查询时强行塞给用户一堆广告对应的IP地址,而浏览器则把这些当成了目标网站的IP地址从而建立连接,烦人的广告就到处都是了,甚至可以劫持到流氓软件的下载链接,百度DNS就是这样10。解决方法也很简单:不要用天朝ISP的域名服务器,直接打开控制面板的网络和Internet连接,再点击查看网络控制和任务,再点击更改适配器设置,找到本地连接(或者说上网时使用的那个连接),右键属性,找到IPv4,双击点开,把DNS服务器由自动(或者默认的ISP服务器)换成国外的域名服务器:google的8.8.8.8和8.8.4.4 ,OPENDNS11,台湾中华电讯的DNS 168.95.192.1和168.95.192.2,香港宽频的DNS 203.80.96.9和203.80.96.10,或者自行寻找可用的国外免费DNS服务器下一篇咱们来聊聊IP屏蔽是怎么一回事吧。最后照例附上科普文链接集合:https://plus.google.com/u/0/109790703964908675921/about参考资料:1.域名系统https://zh.wikipedia.org/wiki/%E5%9F%9F%E5%90%8D%E7%B3%BB%E7%BB%9F2.扫盲 DNS 原理,兼谈“域名劫持”和“域名欺骗/域名污染” https://plus.google.com/109790703964908675921/posts/aX22pV3242N3.SSL/TLS的原理以及互联网究竟是如何工作的(1) ————“每个协议生而平等”https://plus.google.com/109790703964908675921/posts/jew5dx6V2Lt4.The Great DNS Wall of Chinahttp://www.google.com/url?q=http%3A%2F%2Fcs.nyu.edu%2F~pcw216%2Fwork%2Fnds%2Ffinal.pdf&sa=D&sntz=1&usg=AFQjCNEpY6ZEWK6CsuUY4IKGE27jQ8VPaw5.正则表达式https://zh.wikipedia.org/zh/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F6.翻墙路由器的原理与实现https://docs.google.com/document/d/1mmMiMYbviMxJ-DhTyIGdK7OOg581LSD1CZV4XY1OMG8/mobilebasic?pli=17.https://www.opendns.com/about/innovations/dnscrypt/8.https://github.com/holmium/dnsforwarder9.https://github.com/clowwindy/ChinaDNS10.https://plus.google.com/109790703964908675921/posts/Y6n7hWvUNc111.http://www.oschina.net/p/opendns翻墙技术博客订阅地址及社交帐号

阅读更多

翻墙 | 让DD-WRT或OpenWRT路由自动host翻墙

本项目旨在让从未接触过路由自动翻墙的你,5分钟轻松简单的搞定路由自动翻墙,并且一次部署后,从此每日自动更新以适应GFW的封锁变化。让路由器自动翻墙被越来越多的人所期望,方法也多种多样,本项目所使用的方法为:利用路由器的DNSMasq功能,指定一份自动更新的Hosts列表,让路由下的所有设备都能访问到正确的网站IP,避免被墙。Hosts内容支持出墙的网站:Google 家族(包括 YouTube,Gmail,Google+,Google Drive 等)OneDriveWikipediaFacebookTwitterFlickrDropboxHosts内容由Gavin更新维护。开始部署以下教程以DD-WRT路由为例:一、获取最新Hosts文件路由器先启用jffs2,SSH或Telnet连接到路由,执行:mkdir /jffs/hosts/ && cd /jffs/hosts/ && wget http://hosts.gav1n.com/start.sh && sh start.sh稍等片刻,执行成功后得到Hosts文件,保存在 /jffs/hosts/GavinHosts.txt选做 没有jffs空间的路由,请先完成以下两步后再执行上面的命令:执行命令:mkdir /tmp/jffs在管理-命令 处,输入:mount –bind /tmp/jffs /jffs保存为启动指令,重启路由。二、为DNSMasq指定Hosts文件在路由管理界面”服务-服务”处:启用DNSMasq,并在 DNSMasq附加选项 填入:addn-hosts=/jffs/hosts/GavinHosts.txt三、定时更新在路由管理界面”管理-管理”处:启用Cron,附加任务 输入:59 2 * * * root sh /jffs/hosts/start.sh这样就实现了每天凌晨2点59分获取最新的Hosts文件。数字59和2代表时间,请改成任意时间,以免太多用户在同一时间访问造成服务器拥堵。至此,已完成,重启路由!访问一下https://www.google.com.hk看看!源地址:http://gav1n.com/internet/rang-dd-wrt-huo-openwrt-lu-you-zi-dong-fan-qiang/翻墙技术博客订阅地址及社交帐号

阅读更多

翻墙 | 网信办否认攻击Outlook 指Greatfire系反华网站

日前有外媒引述互联网监察公司称,微软Outlook邮箱在中国的服务受到来自中国网信办的攻击,网信办发言人昨天(1月22日)否认,并批评该说法“纯属境外反华势力的造谣和污蔑”。同日,中国网信办主任鲁炜入选全球互联网治理联盟委员会委员。据中国网信网消息,有西方媒体记者日前致函中国网信办,称从Greatfire.org网站获悉,微软的Outlook邮件服务“疑似”遭到中国权威部门的攻击,希望了解真实情况。网信办发言人姜军昨日回应称,这一无端臆测,纯属境外反华势力的造谣和污蔑。姜军批评,Greatfire.org是境外反华组织创办的反华网站,长期对中国政府进行无端攻击,此次炒作选在国家网信办宣布依法关闭一批违法违规网站、栏目和微信公众账号之时,蓄意引发不满情绪,污蔑指责中国网络空间治理制度。姜军重申,中国是网络安全的鉴定维护者,坚决反对任何形式的网络攻击,并依法查处、严厉打击在中国境内,或利用中国网络设施发起网络攻击的行为。本周二,Greatfire.org称,在1月17日接到报告之後证实,Outlook邮箱服务在当日开始受到一个“中间人”(MITM)的攻击,通过进入网络连线进行窃听,甚至控制有关线路上的通信。攻击持续大约1天,距离Gmail在内地遭到全面屏蔽不足一个月。Greatfire.org明言,此次攻击可能是中国国家互联网信息办公室所为。当时内地政府和微软暂时未对报告发表评论。而在Greatfire.org公布攻击报告前一天,网信办公布,近日关闭了133个传播歪曲党史国史信息的微信公众账号。同日,中宣部部长刘奇葆在全国“扫黄打非”工作电视电话会议上称,要“严密封堵各类有害出版物和信息”,“有力维护意识形态安全和文化安全”。昨天,新华网发布消息指,位於美国的全球互联网治理联盟通过官网发布,联盟委员会成员选举完成,20名委员中有2名中国人入选,其中一人就是中国网信办主任鲁炜,他也是亚洲和大洋洲地区入选该委员会的唯一政府官员代表。而另一名委员就是阿里巴巴董事局主席马云,他是亚洲和大洋洲地区的唯一私营部门代表。全球互联网治理联盟由ICANN、巴西互联网知道委员会和世界经济论坛联合发起,其中ICANN是负责根服务器、域名、IP地址等全球互联网基础资源分配管理的国际机构,全程为互联网名称与数字地址分配机构。联盟从来自全球的46名提名人选中选出了20名委员,主要负责议决联盟的重大事项,推动ICANN国际化和全球网络空间治理。去年6月,ICANN第五十次大会在伦敦举行,鲁炜在大会开幕上曾作主旨演讲,呼吁国际网络空间治理形成七点共识,推动互联网治理迈向全球共治时代。七点共识包括:一是互联网应该造福全人类,给世界人民带来福祉,而不是危害;二是互联网应该给各国带来和平与安全,而不能成为一个国家攻击他国的“利器”;三是互联网应该更多服务於发展中国家的利益,因为他们更需要互联网带来的机遇;四是互联网应该注重保护公民合法权益,而不能成为违法犯罪活动的温床,更不能成为实施恐怖主义活动的工具;五是互联网应该文明诚信,而不能充斥谣言和欺诈;六是互联网应该传递正能量,继承和弘扬人类优秀文化;七是互联网应该有助於未成年人健康成长,因为这关系到人类的未来。源地址:http://www.nanzao.com/tc/china/46800/wang-xin-ban-fou-ren-gong-ji-outlook-lu-wei-dang-xuan-quan-qiu-hu-lian-wang-zhi-li-lian?utm_content=bufferd2a65&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer翻墙技术博客订阅地址及社交帐号

阅读更多

翻墙 | GFW近期改变DNS污染策略

@bitinn:GFW近期改变DNS污染策略,返回随机的IP地址,不仅给普通用户带来极大困扰,也给被间接DDOS的站主们带来很大麻烦。开发者 @chockenberry 就遇到了这样的情况,服务器瞬间被来自中国的看似随机的BT下载和网络请求挤爆。GFW近期改变DNS污染策略,返回随机的IP地址,不仅给普通用户带来极大困扰,也给被间接DDOS的站主们带来很大麻烦。开发者 @chockenberry 就遇到了这样的情况,服务器瞬间被来自中国的看似随机的BT下载和网络请求挤爆。 pic.twitter.com/GalS6KW1to— 比特客栈的寻行数墨 (@bitinn) January 20, 2015翻墙技术博客订阅地址及社交帐号

阅读更多

CDT/CDS今日重点

十月之声(2024)

【404文库】“闭上眼睛,鬼怪并不会因此遁去”(外二篇)

【404媒体】“等帘子拉开,模特已经换上了新衣”(外二篇)


更多文章总汇……

CDT专题

支持中国数字时代

蓝灯·无界计划

现在,你可以用一种新的方式对抗互联网审查:在浏览中国数字时代网站时,按下下面这个开关按钮,为全世界想要自由获取信息的人提供一个安全的“桥梁”。这个开源项目由蓝灯(lantern)提供,了解详情

CDT 新闻简报

读者投稿

漫游数字空间