一 : 通过开源程序同时解决DNS劫持和DNS污染的问题
我们知道,某些网络运营商为了某些目的,对DNS进行了某些操作,导致使用ISP的正常上网设置无法通过域名取得正确的IP地址。常用的手段有:DNS劫持和DNS污染。关于DNS劫持和DNS污染的区别,请查找相关文章。对付DNS劫持的方法很简单,只需要把系统的DNS设置改为为国外的DNS服务器的IP地址即可解决。但是对于DNS污染,一般除了使用代理服务器和VPN之类的软件之外,并没有什么其它办法。但是利用我们对DNS污染的了解,还是可以做到不用代理服务器和VPN之类的软件就能解决DNS污染的问题,从而在不使用代理服务器或VPN的情况下访问原本访问不了的一些网站。当然这无法解决所有问题,当一些无法访问的网站本身并不是由DNS污染问题导致的时候,还是需要使用代理服务器或VPN才能访问的。
我们知道,DNS污染的数据包并不是在网络数据包经过的路由器上,而是在其旁路产生的。所以DNS污染并无法阻止正确的DNS解析结果返回,但由于旁路产生的数据包发回的速度较国外DNS服务器发回的快,操作系统认为第一个收到的数据包就是返回结果,从而忽略其后收到的数据包,从而使得DNS污染得逞。而某些国家的DNS污染在一段时期内的污染IP却是固定不变的,从而可以忽略返回结果是这些IP地址的数据包,直接解决DNS污染的问题。
在这里我用Java做了一个简单的小程序并提供源代码,在本机运行后,就能在没有代理服务器和VPN的情况下,直接就能解决DNS污染的问题了。如果没有安装Java,可以去http://www.java.com/上安装一个。解开AntiDnsPollution.zip之后,运行filter.bat(Linux用户请运行filter.sh),等待启动成功。然后设置系统的DNS服务器的IP地址为127.0.0.1即可。然后打开一个命令行窗口,执行nslookup一些被DNS污染的域名,是不是解析正确了?
下面说一下这个小程序的具体工作流程:首先程序启动后,会从文本文件dnsfilter.properties中读取配制,然后去一个不存在的DNS服务器——但这个IP地址却是国外的——中进行DNS查询被劫持的域名,然后返回的IP地址就是被劫持的IP,被记录下来,之后正常的DNS查询中,就自动把这些IP地址过滤了。这个程序以后会不定期更新,或许也会出。NET版本,请在我的Google Reader上关注更新。
对于高级用户,可以手动用文本编辑器修改配置文件dnsfilter.properties:
BindToIP:小程序启动后作为DNS服务期绑定53端口,这里指定绑定的IP地址
DnsServer:国外的DNS服务器,可以设置为OpenDNS或Google DNS服务器的IP地址
ResponseTimeout:DNS查询返回超时的时间(毫秒)
TestDnsServer:测试DNS服务器,请指定一个不存在的DNS服务期,但要求IP是国外的
TestRespTimeout:测试DNS服务器的查询返回超时时间(毫秒),也就是DNS劫持的旁路回复超时时间
TestCount:测试DNS服务器的次数,为了得到所有被劫持的IP地址,需要一定的测试次数
小程序的执行文件和源代码在同一个压缩包内,请点这里下载(含源代码):http://www.williamlong.info/download/AntiDnsPollution.zip
文章来源:
二 : DNS劫持DNS污染介绍与公共DNS推荐
我们知道,某些网络运营商为了某些目的,对 DNS 进行了某些操作,导致使用 ISP 的正常上网设置无法通过域名取得正确的 IP 地址。常用的手段有:DNS劫持和DNS污染。DNS劫持 和 DNS污染 在天朝是非常常见的现象。一般情况下输入1个错误或不存在的 URL 后,本应该出现404页面,而我们看到的却都是电信、联通等运营商的网址导航页面,正常访问网站时出现电信的小广告,使用了代理却依然无法正常访问某些境外网站,以及最近Google 几乎被彻底封杀、微软 OneDrive 打不开,这些都和 DNS 有一定关系。
DNS劫持 就是通过劫持了 DNS 服务器,通过某些手段取得某域名的解析记录控制权,进而修改此域名的解析结果,导致对该域名的访问由原 IP 地址转入到修改后的指定 IP,其结果就是对特定的网址不能访问或访问的是假网址,从而实现窃取资料或者破坏原有正常服务的目的。DNS劫持 通过篡改 DNS 服务器上的数据返回给用户1个错误的查询结果来实现的。
DNS劫持 症状:某些地区的用户在成[www.61k.com)功连接宽带后,首次打开任何页面都指向 ISP 提供的“电信互联星空”、“网通黄页广告”等内容页面。还有就是曾经出现过用户访问 Google 域名的时候出现了百度的网站。这些都属于 DNS劫持。
DNS污染 是1种让一般用户由于得到虚假目标主机 IP 而不能与其通信的方法,是1种DNS 缓存投毒攻击(DNS cache poisoning)。其工作方式是:由于通常的 DNS 查询没有任何认证机制,而且 DNS 查询通常基于的 UDP 是无连接不可靠的协议,因此 DNS 的查询非常容易被篡改,通过对 UDP 端口 53 上的 DNS 查询进行入侵检测,一经发现与关键词相匹配的请求则立即伪装成目标域名的解析服务器(NS,Name Server)给查询者返回虚假结果。
DNS污染 症状:目前一些在天朝被禁止访问的网站基本都是通过 DNS污染 来实现的,例如 YouTube、Facebook 等网站。
对于 DNS劫持,可以通过手动更换 DNS 服务器为公共DNS解决。
对于 DNS污染,可以说,个人用户很难单单靠设置解决,通常可以使用 VPN 或者域名远程解析的方法解决,但这大多需要购买付费的 VPN 或 SSH 等,也可以通过修改 Hosts 的方法,手动设置域名正确的 IP 地址。
公共DNS 是1种面向大众的免费的 DNS 互联网基础服务。我们知道要上网,就必须要 DNS 解析服务,尽管大多数电脑用户都很少会去手动设置 DNS 服务器地址,而是采用默认自动获取网络商 DNS 地址的方式,不过对于一些小型网络服务商而言,可能全球或者全国 DNS 节点比较少,这样就容易导致打开网页偏慢等现象。
更换 DNS 服务器地址为 公共DNS 后,可以在一定程度上加快域名解析速度、防止 DNS劫持、加强上网安全,还可以屏蔽大部分运营商的广告。下面列出几个目前常用的 公共DNS 服务器地址:
名称 | DNS 服务器 IP 地址 | |
---|---|---|
OpenerDNS | 42.120.21.30 | |
百度 DuDNS | 180.76.76.76 | |
阿里 AliDNS | 223.5.5.5 | 223.6.6.6 |
V2EX DNS | 178.79.131.110 | 199.91.73.222 |
CNNIC SDNS | 1.2.4.8 | 210.2.4.8 |
114 DNS | 114.114.114.114 | 114.114.115.115 |
Google DNS | 8.8.8.8 | 8.8.4.4 |
OpenDNS | 208.67.222.222 | 208.67.220.220 |
DNS派 | 101.226.4.6 | 218.30.118.6 |
DNS派-联通 | 123.125.81.6 | 140.207.198.6 |
中科大 DNS | 202.38.64.1 202.112.20.131 202.141.160.95 | 202.141.160.99 202.141.176.95 202.141.176.99 |
给出了这么多,说一下选择吧,如果是国内用户,没有洁癖的,可以考虑114DNS和阿里DNS,如果有洁癖,国内可以选择V2EX DNS和OpenerDNS,国外的可以选择很多,优选 Google 的,虽然有延迟,但还能接受,其他的看自己的网络情况了。
1. 打开“网络和共享中心”;
2. 点击正在使用的网络打开“状态”;
3. 打开“属性”;
4. 双击“Internet 协议版本 4(TCP/IPV4)”;
5. 点选“使用下面的 DNS 服务器地址”;
6. 输入上面的 公共DNS 服务器地址,确定。
三 : DNS劫持和DNS污染的区别
我们知道,某些网络运营商为了某些目的,对DNS进行了某些操作,导致使用ISP的正常上网设置无法通过域名取得正确的IP地址。常用的手段有:DNS劫持和DNS污染。
什么是DNS劫持
DNS劫持就是通过劫持了DNS服务器,通过某些手段取得某域名的解析记录控制权,进而修改此域名的解析结果,导致对该域名的访问由原IP地址转入到修改后的指定IP,其结果就是对特定的网址不能访问或访问的是假网址,从而实现窃取资料或者破坏原有正常服务的目的。DNS劫持通过篡改DNS服务器上的数据返回给用户一个错误的查询结果来实现的。
DNS劫持症状:在某些地区的用户在成功连接宽带后,首次打开任何页面都指向ISP提供的“电信互联星空”、“网通黄页广告”等内容页面。还有就是曾经出现过用户访问Google域名的时候出现了百度的网站。这些都属于DNS劫持。
再说简单点,当你输入google.com这个网址的时候,你看到的网站却是百度的首页。
什么是DNS污染
DNS污染是一种让一般用户由于得到虚假目标主机IP而不能与其通信的方法,是一种DNS缓存投毒攻击(DNS cache poisoning)。其工作方式是:由于通常的DNS查询没有任何认证机制,而且DNS查询通常基于的UDP是无连接不可靠的协议,因此DNS的查询非常容易被篡改,通过对UDP端口53上的DNS查询进行入侵检测,一经发现与关键词相匹配的请求则立即伪装成目标域名的解析服务器(NS,Name Server)给查询者返回虚假结果。
而DNS污染则是发生在用户请求的第一步上,直接从协议上对用户的DNS请求进行干扰。
DNS污染症状:目前一些被禁止访问的网站很多就是通过DNS污染来实现的,例如YouTube、Facebook等网站。
解决方法
对于DNS劫持,可以采用使用国外公认的DNS服务器解决。例如OpenDNS(208.67.222.222)或GoogleDNS(8.8.8.8)。
对于DNS污染,可以说,个人用户很难单单靠设置解决,通常可以使用VPN或者域名远程解析的方法解决,但这大多需要购买付费的VPN或SSH等,也可以通过修改Hosts的方法,手动设置域名正确的IP地址。
总结
DNS劫持就是指用户访问一个被标记的地址时,DNS服务器故意将此地址指向一个错误的IP地址的行为。范例,网通、电信、铁通的某些用户有时候会发现自己打算访问一个地址,却被转向了各种推送广告等网站,这就是DNS劫持。
DNS污染,指的是用户访问一个地址,国内的服务器(非DNS)监控到用户访问的已经被标记地址时,服务器伪装成DNS服务器向用户发回错误的地址的行为。范例,访问Youtube、Facebook之类网站等出现的状况。
除非注明,月光博客文章均为原创,转载请以链接形式标明本文地址。
本文地址:
四 : DNS被污染后续:中国互联网为何轻易被劫持?
文/顾晓波
1月21日下午全国范围出现了互联网访问故障,包括百度、新浪、腾讯在内的多家大型网站域名被劫持,事故时间持续数个小时,成为了一场全国性的互联网灾难。
类似规模的事故并不多见,为何此次影响范围如此之广?为何无法在短时间内恢复?为何中国互联网轻易被劫持?
在多方咨询后,网易科技试图用浅显的语言将事件还原。
DNS为何如此脆弱?
DNS全称DomainNameSystem(域名系统),用户输入的域名通过DNS解析到对应的IP地址,域名会最先被本地DNS服务器解析,如果解析不到,就返回上层服务器,直到查询到最高级的根服务器,查询到结果后本地服务器会将这一IP缓存,用户再次访问该域名就会返回到这一被缓存的IP。
在DNS受到污染的情况下,域名可被解析到非网站对应的IP上,如此次被劫持到的65.49.2.178。
此次受到影响就是根DNS服务器,指的是全球一共13台的根DNS服务器,负责记录各后缀所对应的顶级域名根服务器。由于DNS的递归解析和缓存问题,当根服务器出现故障,将会牵连底层服务器,也就是说劫持了一台根DNS服务器就可以劫持该服务器下所有服务器对应的域名。
据了解,DNS上一次更新技术规范是在1987年,之后几乎再无改动,也就是说,目前的DNS标准是27年前的,尽管根服务器受到了最高级别的保护,但是仍然可能因为黑客攻击、政治需要和域名管理权分歧等原因引发大规模故障,这样的瘫痪不会就此终结。
故障到底持续了多久?
此次域名劫持影响持续了数个小时,但是真正的故障时间并没有那么长。
一名IDC运维人员表示,这次劫持的影响大约只有15分钟,但是由于各层服务器缓存受到根服务器影响,在电信运营商没有对递归DNS手动刷新的情况下,影响可持续数个小时。
有没有隐私风险?
有网友称此次劫持或造成用户隐私泄露。
对此360安全专家表示此次被劫持的是域名,存储网站数据的服务器并未受到影响,虽然黑客可以将域名劫持至钓鱼网站,但是目前看来对方并没有这么做,也尚未发现用户受此影响造成损失。
对于此次故障的罪魁祸首,目前尚不能确认,有业内人士称,在没有发生地震等不可抗力的前提下,有能力造成这种事故的组织并不多。
目前事故的影响已经基本消除,域名被劫持的网站已经可以正常访问。
本文标题:dns污染dns劫持-通过开源程序同时解决DNS劫持和DNS污染的问题61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1