DNS劫持与污染

2011年12月12日 Linux服务器 暂无评论 阅读 9,878 views 次

DNS劫持

DNS劫持的数据包是在路由器上,对请求返回假的IP地址(访问的是假网址)或者什么都不做使请求失去响应(网络不能反应)。

解决DNS劫持的方法:

在Interner协议(TCP/IP)的属性页里,选择"使用下面的DNS服务器地址",首选和备用DNS服务器分别设置为8.8.8.8和8.8.4.4(Google Public DNS),完成后重新连接上网。

原理是由于域名劫持往往只能在特定的被劫持的网络范围内进行,所以在此范围外的域名服务器(DNS)能够返回正常的IP地址。但是由此引出了域名劫持通常相伴的措施――封锁正常DNS的IP。[中国大陆境内的客户端不一定能获得正确的解析结果]

DNS污染(DNS cache poisoning/pollution)

DNS污染的数据包是在路由器旁路产生的,故无法阻止正确的DNS解析结果返回。但由于旁路产生的数据包发回的速度较国外DNS服务器发回的快,操作系统认为第一个收到的数据包就是返回结果,从而忽略其后收到的数据包。

验证DNS污染的办法

我们在命令行下通过这样一条命令 nslookup 域名 144.223.234.234,即可判断该域名是否被污染。由于144.223.234.234不存在,理应没有任何返回,但如果我们却得到了一个错误的IP(不确定),即可证明这个域名已经被DNS污染了。

解决DNS污染方案

1、修改hosts文件,操作系统中Hosts文件的优先级高于DNS服务器,操作系统在访问某个域名时,会先检测HOSTS文件,然后再查询DNS服务器。可以在hosts添加受到污染的DNS地址来解决DNS污染和DNS劫持。

2、如果你是Firefox only用户,并且只用Firefox,又懒得折腾,直接打开Firefox的远程DNS解析就行了。在地址栏中输入about:config找到network.proxy.socks_remote_dns一项改成true。

3、使用各种SSH加密代理,在加密代理里进行远程DNS解析,或者使用VPN上网。

4、通过一些软件编程处理,可以直接忽略返回结果是虚假IP地址的数据包,直接解决DNS污染的问题。

给我留言

Copyright © 羽飞博客 保留所有权利.   Ality主题 皖ICP备14013844号-1

用户登录