DNS污染(DNS cache poisoning),又称为DNS快取侵害(DNS cache pollution),是指一些刻意制造或无意中制造出来的域名服务器分组,把域名指往不正确的IP地址。
翻墙入门:了解什么是DNS污染
简单地说,DNS污染就是让用户得到的目标IP不是真实的目标主机的IP,从而不能访问该网站。
DNS污染的根源是在于DNS工作协议的漏洞。
DNS污染的工作原理
由于通常的DNS查询没有任何认证机制,而且DNS查询通常基于的UDP是无连接不可靠的协议,因此DNS的查询非常容易被篡改,通过对UDP端口 53上的DNS查询进行入侵检测,一经发现与关键词相匹配的请求则立即伪装成目标域名的解析服务器(DNS,Domain Name System)给查询者返回虚假结果。
DNS缓存污染已经成了日益普遍的问题。绝大部分DNS服务器都能够将DNS查询结果在答复给发出请求的主机之前,就保存在高速缓存中,DNS高速 缓存极大地提高DNS查询性能。但是DNS服务器的高速缓存中被大量假的DNS信息“污染”了的话,用户就有可能被送到恶意站点而不是他们原先想要访问的 网站。
如何才能解决DNS污染问题?
DNS污染是在本地DNS服务器向上级DNS服务器请求域名解析时,通过旁路系统抢先返回错误IP来污染本地DNS缓存的。
由于DNS污染的数据包并不是在网络数据包经过的路由器上,而是在其旁路产生的。DNS污染并无法阻止正确的DNS解析结果返回,但由于旁路产生的 数据包发回的速度较国外DNS服务器发回的快,操作系统认为第一个收到的数据包就是返回结果,从而忽略其后收到的数据包,从而使得DNS污染得逞。
如何解决DNS污染
对于DNS污染,一般除了使用代理服务器进行远程DNS解析和VPN之类的软件之外,并没有什么好办法。
手动解决部分DNS污染的办法
1>修改host文件
hosts文件位于C:\WINDOWS\system32\drivers\etc目录下,按照格式填入正确的目标IP和目标域名。
2>在Firefox下使用远程解析
进入about:config,找到network.proxy.socks_remote_dns,它默认的值是false,改成true即可,要配合代理使用。