DNS污染
原理解析
DNS污染也被称为“DNS缓存投毒攻击”(DNS cache poisoning)和“域名欺骗”。
我们假设A为用户端,B为DNS服务器,C为A到B链路的一个节点的网络设备(路由器,交换机,网关等等)。然后我们来模拟一次被污染的DNS请求过程。
A向B构建UDP连接,然后,A向B发送查询请求,查询请求内容通常是:“A baidu.com”,这一个数据包经过节点设备C继续前往DNS服务器B;然而在这个过程中,C通过对数据包进行特征分析(远程通讯端口为DNS服务器端口,激发内容关键字检查,检查特定的域名如上述的“baidu.com”,以及查询的记录类型”A记录”),从而立刻返回一个错误的解析结果(如返回了”A 123.123.123.123”),总所周知,作为链路上的一个节点,C机器的这个结果必定会先于真正的域名服务器的返回结果到达用户机器A,而目前我们的DNS解析机制有一个重要的原则,就是只认第一,因此C节点所返回的查询结果就被A机器当作了最终返回结果,用于构建链接
防除方法
对付DNS劫持,只需要把系统的DNS设置手动切换为国外的DNS服务器的IP地址即可解决。
对于DNS污染,一般除了使用代理服务器和VPN之类的软件之外,并没有什么其它办法。但是利用我们对DNS污染的了解,还是可以做到不用代理服务器和VPN之类的软件就能解决DNS污染的问题,从而在不使用代理服务器或VPN的情况下访问原本访问不了的一些网站。当然这无法解决所有问题,当一些无法访问的网站本身并不是由DNS污染问题导致的时候,还是需要使用代理服务器或VPN才能访问的。
DNS污染的数据包并不是在网络数据包经过的路由器上,而是在其旁路产生的。所以DNS污染并无法阻止正确的DNS解析结果返回,但由于旁路产生的数据包发回的速度较国外DNS服务器发回的快,操作系统认为第一个收到的数据包就是返回结果,从而忽略其后收到的数据包,从而使得DNS污染得逞。而某些国家的DNS污染在一段时期内的污染IP却是固定不变的,从而可以忽略返回结果是这些IP地址的数据包,直接解决DNS污染的问题。
验证方法
我们在命令行下通过这样一条命令:
nslookup 域名 144.223.234.234,即可判断该域名是否被污染,由于144.223.234.234不存在,理应没有任何返回。但我们却得到了一个错误的IP(不确定)。即可证明这个域名已经被DNS污染了。
解决方案
1、使用各种SSH加密代理,在加密代理里进行远程DNS解析,或者使用VPN上网。
2、修改hosts文件,操作系统中Hosts文件的权限优先级高于DNS服务器,操作系统在访问某个域名时,会先检测HOSTS文件,然后再查询DNS服务器。可以在hosts添加受到污染的DNS地址来解决DNS污染和DNS劫持。
3、通过一些软件编程处理,可以直接忽略返回结果是虚假IP地址的数据包,直接解决DNS污染的问题。
4、如果你是Firefox only用户,并且只用Firefox,又懒得折腾,直接打开Firefox的远程DNS解析就行了。在地址栏中输入:
about:config
找到network.proxy.socks_remote_dns一项改成true。
5、使用DNSCrypt软件,此软件与使用的OpenDNS直接建立相对安全的TCP连接并加密请求数据,从而不会被污染。
DNS劫持
原理解析
DNS劫持就是通过劫持了DNS服务器,通过某些手段取得某域名的解析记录控制权,进而修改此域名的解析结果,导致对该域名的访问由原IP地址转入到修
改后的指定IP,其结果就是对特定的网址不能访问或访问的是假网址,从而实现窃取资料或者破坏原有正常服务的目的。DNS劫持通过篡改DNS服务器上的数
据返回给用户一个错误的查询结果来实现的。
DNS劫持症状:在某些地区的用户在成功连接宽带后,首次打开任何页面都指向ISP提供的“电信互联星空”、“网通黄页广告”等内容页面。还有就是曾经出现过用户访问Google域名的时候出现了百度的网站。这些都属于DNS劫持。
DHCP服务
DHCP(Dynamic Host Configuration Protocol),动态主机配置协议:计算机用来获得配置信息的协议。DHCP容许给某一计算机赋以IP地址而不需要管理者在服务器数据中配置有关该计算机信息。
设置了路由器的DHCP服务器,让DHCP服务器自动分配IP地址,从192.168.1.100到192.168.1.199。当我们的电脑设置成自动获取IP地址时,实际上就是由DHCP服务器给我们的电脑分配IP地址。
DHCP服务器最大的好处就是可以防止局域网内电脑的IP地址冲突,防止IP冲突,网络不稳定。如果我们手动分配IP地址,电脑多了,很多可能会分到重复的IP地址,改起来就麻烦了。使用了DHCP服务器自动分配IP的功能,就可以避免这个麻烦,由路由器统一分配IP地址。DHCP服务器把每个IP地址只分给一台电脑,这样就能保证局域网的稳定性。
DHCP是可自动將IP位址指派給登入TCP/IP网络的用戶端的一种软件,(此种IP位址称
为「动态IP位址」)。这种软件通常是在路由器及其他网络设备上 , 依照预先设定,您的GateLock路由器設定为使用DHCP,因此就无須手动指派永久IP位址給网络上的每個设备.路由器开启DHCP服务器功能是什么意思啊?
DHCP是动态主机配置,就是让路由器有自动分配IP的功能,默认是开启的。
如果连接路由的电脑的IP是自动获取,开了路由的DHCP就可以让下面的电脑自动获得IP ;
如果没开DHCP,下面的电脑就无法自动获取IP,只有手动设置。你可以在手动分配IP时在DNS的栏目里面输入你路由器的IP地址代替真实的DNS服务器地址(如:以192,168,1,115来代替DNS服务器地址202.102.154.3),已在局内部网上测试可以)