Total Pageviews

Tuesday, 13 November 2012

使用DNSCrypt-proxy(OpenDNS版)建立安全的本地DNS解析服务 - 配合SSH/socks5绝佳

使用 DNSCrypt-proxy 建立安全的本地 DNS 解析服务 - 配合SSH tunnel/socks5 proxy ,比如ss,效果绝佳

DNSCrypt-proxy 的工作原理:
通过与首层DNS建立加密的连接通道,确保DNS解析安全;建立一个本地DNS代理,收到解析请求的时候,转发到远程DNS,之间通过证书加密防止DNS 窃听,阻断DNS劫持和DNS污染的可能性;注意,这防止不了HTTP协议的过滤和监听,因此务必使用SSH隧道所建立的socks5代理进行HTTP或 者HTTPS加密浏览

项目地址:https://github.com/opendns/dnscrypt-proxy/
下载:https://github.com/opendns/dnscrypt-proxy/downloads

运行平台:Windows、Android、Linux、iOS

<如果要看YouTube视频,方案是DNSCrypt-proxy本地解析 + SSH隧道浏览器Socks5代理 + youtube ssl连接,只有这样组合运用才可以万无一失;facebook、twitter等类似>

以Windows平台为例做个简单的说明,解压缩后,运行dnscrypt-proxy.exe,不要退出程序,将本机DNS指向127.0.0.1即可使用

如果想让它作为一个系统服务,在Windows平台中安装为一个系统服务的方法:
复制dnscrypt-proxy.exe到本机,打开终端或者系统自带命令行,键入命令(需要完整的路径,这里仅供参考,也可以尝试用修改快捷方式的方法附带参数):

dnscrypt-proxy.exe --install
这样系统中就增加了一项名为dnscrypt-proxy的服务;

服务卸载方法(需要完整的路径,这里仅供参考,也可以尝试用修改快捷方式的方法附带参数):
dnscrypt-proxy.exe --uninstall

更多详细说明,请拜读位于github的项目主页

DNSCrypt-proxy 是一个对 DNSCurve 的轻微修改版,DNSCurve 站点:http://www.dnscurve.org/

此工具配合SSH/Socks5/VPN 使用效果更佳,建议有特殊需要的朋友,下载它的源码进行修改,改为自己喜欢的源DNS

另外的连接:
http://www.opendns.com/technology/dnscrypt

----------------------------------------------------------------

DNSCrypt – 一个加密DNS传输的工具(可防止GFW的DNS污染)


DNSCrypt是一个确保客户与DNS服务器之间传输安全的工具,基于DNSCurve修改而来。
由于Domain Nam System(DNS)设计上的缺陷,用户在浏览器里输入一些被封的网址以后,如果遭遇MITM或者DNS污染,浏览器可能接收到错误的IP,而 存在安全问题。为了解决一些这样安全上的问题,IETF在十几年前便开始制定DNS的安全扩展(DNSSEC)。利用公开键机密技术,通过对DNS数据进 行电子签名,DNSSEC能够验证DNS数据来源和验证在传输过程中DNS是否被篡改。
但是DNSSEC不保证DNS数据的机密性,DNS数据本身并没有被加密,加之DNS的 阶层式模式,这便为一些机构提供监视,控制网络的手段。典型的例子就是不能访问一些海外的网站。DNSSEC也不提供免于DOS(Deny of Service)攻击的办法,由于电子签名和签名验证需要格外的数据运算,DNSSEC反而更容易受到DOS攻击。
DNSCurve相对于DNSSEC的好处是,DNSCurve使用了更有效率的椭圆曲线加密算法而可以负担的起每条查询都单独加密,从而更加安全。
DNSCrypt协议是非常类似DNSCurve的,作为一个DNS代理运行,侧重于客户端和第一级DNS服务器之间的通信安全,能够缓存DNS解析。
首先下载对应平台的dnscrypt client然后运行,接着修改本地或者router的dns server为127.0.0.1. 然后你的所有dns请求都会加密进行从而绕过GFW的dns污染顺利解析到正确IP。
(可以在Windows/Linux/BSD/OSX/iOS系统上运行)

更多详情:https://github.com/opendns/dnscrypt-proxy/
下载地址:https://github.com/opendns/dnscrypt-proxy/downloads
使用后访问一些只被GFW DNS污染的网站即可直接访问,如果网站还被关键词检且支持https也可以访问其https网址,比如一些Google服务.
------------------------------------------------------------------
DNS加密工具发布Windows版

OpenDNS去年底发布了一个预览版本的DNSCrypt,加密DNS流量,阻止常见的DNS攻击,如重放攻击、观察攻击、时序攻击、中间人攻击和解析伪造攻击。DNSCrypt支持OS X、BSD和Linux,现在它发布了Windows版本。你可以从官方下载或从GitHub下载。

来源:http://it.solidot.org/article.pl?sid=12/05/16/0133225

OpenDNS官网介绍:https://www.opendns.com/technology/dnscrypt/
----------------

向往自由是人类的天 性,墙高了一尺,无奈我们也只有练就更高深的内力,才能自如地飞檐走壁。这篇文章是这段时间研究GFW的一些心得,同时在对最近新出现的一些翻墙方法和工 具进行研究之后,也给出了怎么翻墙的一些对策和建议。
要想越过GFW,了解它是必要的。WIKI维护的词条“防火长城”是非常好的起点。

  • 防火长城(英语:Great Firewall,常用简称:GFW或功夫网,中文也称中国国家防火墙[1]、长城防火墙或万里防火墙)是对中华人民共和国政府在其管辖互联网内部创建的多套网络审查系统(包括相关行政审查系统)的称呼。起步于1998年[2]。其英文名称得自于2002年5月17日Charles R. Smith所写的一篇关于中国网络审查的文章《The Great Firewall of China》[3],取与Great Wall(长城)相谐的效果,简写为Great Firewall,缩写GFW[4]。随着使用的拓广,中文“墙”和英文“GFW”已被用于动词,“GFWed”及“被墙”均指被防火长城所屏蔽。
        如果你对网络技术缺乏了解,可能会难以理解WIKI对GFW的解释。简单的类比下,你可以把互联网想像成一个交通网络,在这个网络里,比较特殊的是每辆车 都有一个GPS装置记录了每次上路的起点和终点。为了让这个交通网络顺畅,能让每辆车都到达想要的目的地,必须要对网络进行一些规则和限制,所以要在每个 路口设置红绿灯。在互联网上,把这些红绿灯称为路由器。现在,你可以把GFW看成是在关键路口上设卡的一伙交通警察,它们偷偷的操控红绿灯,主要任务就是 阻止你到达一些特定的地方。为此,它们所采取的方法有:
粗暴的阻断。就是直接在路上设卡,检查你的目的地,如果你这辆车要到达的地方在黑名单上,GFW会直接将车扣下。甚至对某些地方会直接封路,谁也不让过。这是比较简单的方法,包括IP地址封锁、IP地址特定端口封锁。早期GFW主要采用的这些技术,比较容易绕过。
  • 巧妙的诱骗。在交通网络中,当我们想到达某个目的地时,需要一个路线来规划走哪些路?在哪转弯?就象GPS需要路径规则一个,在互联网上使用 DNS、路由和BGP协议来共同完成这个任务。GFW从很早就开始干扰DNS(正式的名称叫DNS投毒污染),在你想访问黑名单上的网站时,GFW就伪装 成你的GPS,告诉你一条根本无法到达的路线。早期的DNS干扰是在运营商的DNS服务器直接完成的,方式比较粗暴,可以通过简单的设定一个国外的正确 DNS服务器绕过,这也是早期通过修改DNS和Hosts文件翻墙的由来。后期,GFW干扰DNS的方法取得了巨大进步,直接通过DNS协议投毒。想像一 下,在你的车向GPS请求路线的时候,GFW直接叫住了给你送路线的邮差,将里面的正确路线替换成了一条永远到不了的绝路。在进步到DNS协议投毒后,修 改DNS服务器的方法事实上已经失效了。好在在繁忙的互联网上,各种请求路线的DNS数量巨大,GFW并没有完全过滤,所以作为补充方法,在有些时候修改 DNS还是有些用处的。要彻底排除GFW的DNS投毒干扰,还有待DNSSEC协议或是dnscrypt这样的工具的发展。DNSSEC是可以验证DNS查询数据可信的协议,dnscrypt是加密DNS通信的工具,都可以加密DNS查询。可惜的是现在支持DNSSECdnscrypt的DNS Server还不多,基本都是些试验性或开源的服务器,速度较慢。而且GFW已经开始对DNSSECdnscrypt进行试验性的干扰,所以这一方法还有待发展。
------------------------------------------

防DNS污染工具
<1> DNSCrypt 是OpenDNS发布的加密DNS的工具。
主页:http://www.opendns.com/about/innovations/dnscrypt/
使用:http://www.williamlong.info/archives/3890.html
Unbound 开源DNS服务器。
主页:https://www.unbound.net/
教程:https://cnlic.com/?p=337
<6> DNSbenchmark DNS测速工具。
主页:https://www.grc.com/dns/benchmark.htm
--------------------------

加密 DNS 傳輸,就用 DNSCrypt-proxy

DNS(Domain Name System)是專門用來解析域名的一項協議。
比如我們要訪問 Google 主頁,大致過程如下:首先瀏覽器向 DNS 服務器發出請求,DNS 服務器會返回一個對應的 IP 地址,接著瀏覽器向這個 IP 地址發出 HTTP 連接請求,建立連接傳輸網頁數據,瀏覽器解析網頁數據。
這是一個傳統的解析過程,然而由於最初設計方面的缺陷,在 DNS 解析和 HTTP 連接全過程中,都是採用明文傳輸的數據(類似於「裸奔」),極易泄露數據和受到攻擊。
那麽為了確保客戶端與服務器之間安全的傳輸,後來制定了 DNSSEC 、HTTPS 等協議。HTTPS 加密了 HTTP 傳輸的數據,確保了傳輸安全,而 DNSSEC 只是對 DNS 數據加了電子簽名,在傳輸過程中並沒有對數據進行加密,只能驗證傳輸過程中數據是否經過了篡改。
基於此,計算機網絡界大佬——Cisco 公司,基于 DNSCurve,研發了一個加密 DNS 傳輸的協議——DNSCrypt(介紹頁面)。使用 DNSCrypt 協議可以加密傳輸客戶端到支持 DNSCrypt 協議的 DNS 服務器之間的連接,確保不會受到 DNS污染。

使用 DNSCrypt

DNSCrypt 已經開源, 可以運行在絕大多數系統之上。

在 Windows 系統上使用

推薦使用 Simple DNSCrypt 工具,這也是一個圖形化易於操作的工具。 打開 Simple DNSCrypt 后,在「網卡列表」中勾選要應用的網卡,然後設置服務器。這個工具提供了兩個服務器設置的選項,可以根據需要設置服務器並且開始工作。

在 Linux 系統上使用

推薦使用 DNSCrypt-Loader 。當然也可以根據源碼自己編譯。

在 iOS、Android 系統上使用

在 iOS 上使用首先要越獄設備,Android 系統上要 Root 系統,然而這些操作可能會導致一定的安全風險,我們並不提倡這麽做,除非你非要使用 DNSCrypt。

在路由器上使用

根據官網的介紹,DNSCrypt 可以在 Tomato、OpenWrt 和 Entware 系統上工作。當然也可以根據源碼自己編譯。

搭建服務器

你可以在傳統 DNS 服務器上添加 DNSCrypt 協議的支持,最簡單的方法就是通過 Docker 映像 來運行。
更多介紹請到 DNSCrypt 項目官網 瞭解。

測試 DNSCrypt 是否正常運行

很簡單,在瀏覽器裏面打開一個以往不是能那麽順利打開的網站(最好是 HTTPS 网站),如果現在 很輕松就能打開了,那麽 DNSCrypt 就已經在工作啦。