您好,登錄后才能下訂單哦!
在開始寫這篇文章之前,先要普及一個(gè)知識中國長城防火墻(英文名:Great Firewall of China)好偉大的樣子,是XX專門用來對網(wǎng)民進(jìn)行網(wǎng)絡(luò)封鎖,閉關(guān)鎖國的的工具。最近一批google.com, youtube.com, facebook.com, dropbox.com等一批國外知名網(wǎng)站,均無法正常訪問,就是拜其所賜。它所實(shí)現(xiàn)的主要屏蔽技術(shù)有IP封鎖,關(guān)鍵字過濾,域名劫持與污染以及HTTPS證書過濾四種。本文主要通過dnscrypt技術(shù)反其dns劫持與污染。
先了解一下什么是DNS劫持和DNS污染,其實(shí)兩者并不是一個(gè)概念。大家都知道主機(jī)之間的通信通過ip來標(biāo)識對方主機(jī),但是IP不容易記憶,后來提出了域名的概念,比如www.baidu.com, 域名與IP之間就是通過DNS解析聯(lián)系起來,實(shí)現(xiàn)了域名與IP之間的映射。這份映射關(guān)系存儲在DNS服務(wù)器上。
什么是DNS劫持
DNS劫持一般發(fā)生在某些網(wǎng)絡(luò)運(yùn)營商身上,DNS劫持就是劫持了DNS服務(wù)器,獲取DNS服務(wù)器的控制權(quán)。通過某些手段修改這些域名的目的解析IP地址。DNS劫持通過篡改DNS服務(wù)器上的數(shù)據(jù),給用戶返回一個(gè)錯(cuò)誤的查詢結(jié)果來實(shí)現(xiàn)的。
DNS劫持癥狀:在某些地區(qū)的用戶在成功連接寬帶后,首次打開任何頁面都指向ISP提供的“電信互聯(lián)星空”、“網(wǎng)通黃頁廣告”等內(nèi)容頁面。還有就是曾經(jīng)出現(xiàn)過用戶訪問Google域名的時(shí)候出現(xiàn)了百度的網(wǎng)站。這些都屬于DNS劫持
應(yīng)對DNS劫持,只需要在網(wǎng)絡(luò)配置中把DNS服務(wù)器地址配置成國外的DNS服務(wù)器地址就可以解決,比如谷歌提供的DNS服務(wù)器地址:8.8.8.8 8.8.4.4
什么是DNS污染
DNS污染是一種讓一般用戶由于得到虛假目標(biāo)主機(jī)IP而不能與其通信的方法,是一種DNS緩存投毒***(DNS cache poisoning)。其工作方式是:由于通常的DNS查詢沒有任何認(rèn)證機(jī)制,而且DNS查詢通?;诘腢DP是無連接不可靠的協(xié)議,因此DNS的查詢非常容易被篡改,通過對UDP端口53上的DNS查詢進(jìn)行***檢測,一經(jīng)發(fā)現(xiàn)與關(guān)鍵詞相匹配的請求則立即偽裝成目標(biāo)域名的解析服務(wù)器(NS,Name Server)給查詢者返回虛假結(jié)果。
DNS污染癥狀:目前一些被禁止訪問的網(wǎng)站很多就是通過DNS污染實(shí)現(xiàn)的,例如YouTube、Facebook、DropBox等網(wǎng)站。
對于DNS污染,普通用戶是不能夠通過簡單地設(shè)置國外DNS服務(wù)器就能解決的。需要用到這篇所講的重點(diǎn):DnsCrypt-proxy,我通過這種方式解決了對Dropbox的訪問封鎖。
先看下谷歌DNS服務(wù)器(8.8.8.8)對www.dropbox.com的解析情況
電信DNS服務(wù)器(114.114.114.114
)對www.dropbox.com
的解析情況
www.dropbox.com
均被解析到 59.24.3.173
這個(gè)IP, 這是一個(gè)韓國IP,使用站長ping工具檢測一下,全部超時(shí),我只截取其中的一部分,如果服務(wù)器不通或禁ping,則全部超時(shí)。
無論我們是從谷歌服務(wù)器還是電信服務(wù)器拿到的數(shù)據(jù)包,在到手之前均被長城防火墻進(jìn)行篡改。為了防止這份數(shù)據(jù)被篡改,我們需要借助DNSCrypt這款工具保證我們的dns查詢數(shù)據(jù)包不被篡改。
DNSCrypt是OpenDNS發(fā)布的加密DNS工具,可加密DNS流量,阻止常見的DNS***,如重放***、觀察***、時(shí)序***、中間人***和解析偽造***。DNSCrypt支持Mac OS和Windows 以及Linux,是防止DNS污染的絕佳工具。我在Mac OS與Centos上均做了嘗試。
在Mac OS
與 Linux
上的安裝非常簡單,按照項(xiàng)目主頁的文檔一步一步操作即可。
brew install dnscrypt-proxy
#安裝依賴
cd /usr/local/src/
wget "https://download.libsodium.org/libsodium/releases/libsodium-0.5.0.tar.gz"tar -xzvf libsodium-*.tar.gzcd libsodium-*
./configure
make
make 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-*
./configure
make
make install
dnscrypt_proxy的用法可以通過man 8 dnscrypt_proxy
查詢
在啟動(dòng)之前,需要注意一項(xiàng),因?yàn)閐nscrypt_proxy作為查詢代理是對通信加密的,這也要求目的dns服務(wù)器也要支持,項(xiàng)目主頁提供一份可用列表
啟動(dòng)腳本
最后我們可以看到建立了本機(jī)53端口與目的主機(jī)443端口的鏈接;按照官網(wǎng)的提示,如果我們安裝成功,當(dāng)我們執(zhí)行dig txt debug.opendns.com
,會看到debug.opendns.com. 0 IN TXT "dnscrypt enabled (......)"
這樣的輸出。
恭喜,我們成功了,下一步我們只需要把本機(jī)的dns服務(wù)器指向到這臺代理即可
再來查看下www.dropbox.com
的解析情況
訪問一下 https://www.dropbox.com
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。