使用DNSCrypt解决DNS污染问题

前言

在开始写这篇文章之前,先要普及一个知识中国长城防火墙(英文名:Great Firewall of China)好伟大的样子,是XX专门用来对网民进行网络封锁,闭关锁国的的工具。最近一批google.com, youtube.com, facebook.com, dropbox.com等一批国外知名网站,均无法正常访问,就是拜其所赐。它所实现的主要屏蔽技术有IP封锁,关键字过滤,域名劫持与污染以及HTTPS证书过滤四种。本文主要通过dnscrypt技术反其dns劫持与污染。

先了解一下什么是DNS劫持和DNS污染,其实两者并不是一个概念。大家都知道主机之间的通信通过ip来标识对方主机,但是IP不容易记忆,后来提出了域名的概念,比如www.baidu.com, 域名与IP之间就是通过DNS解析联系起来,实现了域名与IP之间的映射。这份映射关系存储在DNS服务器上。

什么是DNS劫持

DNS劫持一般发生在某些网络运营商身上,DNS劫持就是劫持了DNS服务器,获取DNS服务器的控制权。通过某些手段修改这些域名的目的解析IP地址。DNS劫持通过篡改DNS服务器上的数据,给用户返回一个错误的查询结果来实现的。

DNS劫持症状:在某些地区的用户在成功连接宽带后,首次打开任何页面都指向ISP提供的“电信互联星空”、“网通黄页广告”等内容页面。还有就是曾经出现过用户访问Google域名的时候出现了百度的网站。这些都属于DNS劫持

应对DNS劫持,只需要在网络配置中把DNS服务器地址配置成国外的DNS服务器地址就可以解决,比如谷歌提供的DNS服务器地址:8.8.8.8 8.8.4.4

什么是DNS污染

DNS污染是一种让一般用户由于得到虚假目标主机IP而不能与其通信的方法,是一种DNS缓存投毒攻击(DNS cache poisoning)。其工作方式是:由于通常的DNS查询没有任何认证机制,而且DNS查询通常基于的UDP是无连接不可靠的协议,因此DNS的查询非常容易被篡改,通过对UDP端口53上的DNS查询进行入侵检测,一经发现与关键词相匹配的请求则立即伪装成目标域名的解析服务器(NS,Name Server)给查询者返回虚假结果。

DNS污染症状:目前一些被禁止访问的网站很多就是通过DNS污染实现的,例如YouTube、Facebook、DropBox等网站。

对于DNS污染,普通用户是不能够通过简单地设置国外DNS服务器就能解决的。需要用到这篇所讲的重点:DnsCrypt-proxy,我通过这种方式解决了对Dropbox的访问封锁。

先看下谷歌DNS服务器(8.8.8.8)对www.dropbox.com的解析情况

电信DNS服务器(114.114.114.114)对www.dropbox.com的解析情况

www.dropbox.com均被解析到 59.24.3.173 这个IP, 这是一个韩国IP,使用站长ping工具检测一下,全部超时,我只截取其中的一部分,如果服务器不通或禁ping,则全部超时。

无论我们是从谷歌服务器还是电信服务器拿到的数据包,在到手之前均被长城防火墙进行篡改。为了防止这份数据被篡改,我们需要借助DNSCrypt这款工具保证我们的dns查询数据包不被篡改。

DNSCrypt是OpenDNS发布的加密DNS工具,可加密DNS流量,阻止常见的DNS攻击,如重放攻击、观察攻击、时序攻击、中间人攻击和解析伪造攻击。DNSCrypt支持Mac OS和Windows 以及Linux,是防止DNS污染的绝佳工具。我在Mac OS与Centos上均做了尝试。

安装DNSCrypt-proxy

Mac OS 与 Linux 上的安装非常简单,按照项目主页的文档一步一步操作即可。

Mac Os 可使用brew工具一键安装
brew install dnscrypt-proxy
Linux安装
#安装依赖cd /usr/local/src/wget "https://download.libsodium.org/libsodium/releases/libsodium-0.5.0.tar.gz"tar -xzvf libsodium-*.tar.gzcd libsodium-*./configuremakemake install
ldconfigecho /usr/local/lib > /etc/ld.so.conf.d/usr_local_lib.confcd /usr/local/src/wget "http://download.dnscrypt.org/dnscrypt-proxy/dnscrypt-proxy-1.4.0.tar.bz2"bunzip2 -cd dnscrypt-proxy-*.tar.bz2 | tar xvf -cd dnscrypt-proxy-*./configuremakemake install

启动dnscrypt_proxy

dnscrypt_proxy的用法可以通过man 8 dnscrypt_proxy查询

在启动之前,需要注意一项,因为dnscrypt_proxy作为查询代理是对通信加密的,这也要求目的dns服务器也要支持,项目主页提供一份可用列表

启动脚本

最后我们可以看到建立了本机53端口与目的主机443端口的链接;按照官网的提示,如果我们安装成功,当我们执行dig txt debug.opendns.com,会看到debug.opendns.com. 0 IN TXT "dnscrypt enabled (......)"这样的输出。

恭喜,我们成功了,下一步我们只需要把本机的dns服务器指向到这台代理即可

再来查看下www.dropbox.com的解析情况

访问一下 https://www.dropbox.com

时间: 2024-11-08 00:02:56

使用DNSCrypt解决DNS污染问题的相关文章

2014年Dropbox可用的Hosts文件 或 使用DNSCrypt解决DNS污染问题

一.Dropbox的可用Hosts文件 昨天Dropbox的域名突然被DNS污染,并且Dropbox域名也进了黑名单关键字,导致Dropbox客户端无法使用,不过我发现通过修改Hosts文件的方法可以让Dropbox继续正常使用,Hosts文件内容如下. 注释:我的Dropbox版本2.8.2,修改Hosts后可以通过https的方式去Dropbox网站下载最新版本.Dropbox有一些比较BT 的子域名如dl-client804.dropbox.com等等我没加到Hosts,加的话要多加100

用DNSCrypt解决DNS污染造成的Dropbox无法连接问题

前段时间Dropbox一直都不能访问了,本以为是被WALL了,因为其他事情,所以一直没有处理,今天在网上看到一篇文章,亲自体验一下,Dropbox果然可以访问了. 众所周知的原因有2种,一种是你到服务器之间的连接被WALL了:另一种是你的DNS请求被污染了,返回给你了一个不存在的目的地.Dropbox不能访问就是因为后者,DNS污染. 因为到Dropbox之间的连接并没有被WALL,因此如果我们可以得到正确的DNS查询返回值,就可以正常同步Dropbox了. 原方中介绍的是一款OpenDNS发布

使用DNSCrypt解决Dropbox污染问题

 作者:半点闲 时间:2014-6-27 18:27 博客:blog.csdn.net/cg_i 邮箱:[email protected] 背景知识:防火长城(GFW) keyword:DNSCrypt DNS污染问题 Dropbox无法同步 GFW 起因:昨天Dropbox的域名突然被DNS污染,而且Dropbox域名也进了黑名单keyword,导致Dropboxclient无法使用. 凝视:我的Dropbox版本号2.8.2.实在搞不清楚没事情搞Dropbox干啥?这就是一个纯粹的云同步

DNS污染和DNS劫持的解决办法

DNS污染是指一些刻意制造或无意中制造出来的域名服务器分组,把域名指往不正确的IP地址. DNS劫持又称域名劫持,是指在劫持的网络范围内拦截域名解析的请求,分析请求的域名,把审查范围以外的请求放行,否则返回假的IP地址或者什么都不做使请求失去响应,其效果就是对特定的网络不能访问或访问的是假网址. DNS污染解决方法 1.使用各种SSH加密代理,在加密代理里进行远程DNS解析,或者使用VPN上网. 2.修改hosts文件,操作系统中Hosts文件的权限优先级高于DNS服务器,操作系统在访问某个域名

通过开源程序同时解决DNS劫持和DNS污染的问题

我们知道,某些网络运营商为了某些目的,对DNS进行了某些操作,导致使用ISP的正常上网设置无法通过域名取得正确的IP地址.常用的手段有:DNS劫持和DNS污染.关于DNS劫持和DNS污染的区别,请查找相关文章. 对付DNS劫持的方法很简单,只需要把系统的DNS设置改为为国外的DNS服务器的IP地址即可解决.但是对于DNS污染,一般除了使用代理服务器和 VPN之类的软件之外,并没有什么其它办法.但是利用我们对DNS污染的了解,还是可以做到不用代理服务器和VPN之类的软件就能解决DNS污染的问题,

DNS污染与劫持

问题发现 我经常从edx课程的课程进行学习 我根据火狐的提示一直以为是协议的SSL3.0和TLS1.0的协议过时了,现在浏览器不支持. 后来才发现是3级域名被污染了. ping courses.edx.org/login 本地电脑ping 远程服务端ping DNS污染 网域服务器缓存污染(DNS cache pollution),又称域名服务器缓存投毒(DNS cache poisoning),是指一些刻意制造或无意中制造出来的域名服务器数据包,把域名指往不正确的IP地址. 其工作方式是:由于

bind + DNSCrypt 实现安全加密转发,避免DNS污染

首先我先贴俩图,看看现象 我解析下敏感域名 巧了,我瞎蒙的随便一个国外地址都特么是DNS ? 当然不是,因为祖国的出口伫立着一套高端设备,,,,   不说了,敏感了! 此法的基本思路是避免DNS污染和DNS劫持.(不关心原理的同学请跳过此段)众所周知,GFW的一大凶器是在DNS上做文章.关于DNS污染和DNS劫持的区别,请参考这篇文章.概括地说,DNS劫持是通过DNS服务器返回虚假的IP地址实现的,我们只需将本机使用的DNS服务器改成8.8.8.8等国外服务器即可.但这种方法无法避免DNS污染,

DNS劫持 DNS污染 介绍 与 公共DNS 推荐

来源:http://www.itechzero.com/dns-hijacking-dns-pollution-introduction-and-public-dns-recommend.html 我们知道,某些网络运营商为了某些目的,对 DNS 进行了某些操作,导致使用 ISP 的正常上网设置无法通过域名取得正确的 IP 地址.常用的手段有:DNS劫持 和 DNS污染.DNS劫持 和 DNS污染 在天朝是非常常见的现象.一般情况下输入一个错误或不存在的 URL 后,本应该出现404页面,而我们

DNS污染——这是为什么VPN连接成功了网站还打不开的祸根

初次使用VPN的朋友,经常会遇到这样的一个问题.VPN虽然连接成功了,国内网站打开正常,QQ登录正常,但是就是国外网站各种打不开.当时那个郁闷啊,立马找VPN商家沟通,被告知是DNS污染,按照指引修改DNS,果然,Facebook打开了,顿时感觉太神奇了.下面就科普一下DNS污染相关的知识. DNS是什么?DNS有什么用? DNS是域名系统(Domain Name System)的缩写,平时我们说的DNS实际上是指的域名服务器,域名是通过使用一个由域名注册机构和数据库组成的全球范围的系统来管理的