DNS反劫持的几种方式
? ? ? ? 家里聯(lián)通寬帶到期,之前使用的時(shí)候感覺(jué)出口速度并不好,聽(tīng)說(shuō)移動(dòng)寬帶因?yàn)橛玫娜松?出口帶寬不錯(cuò),準(zhǔn)備換一下試試.臨上馬之前先考察一下,普遍反映移動(dòng)的DNS限制比較多,各種DNS劫持.要是能有辦法檢測(cè)到自己正在使用的DNS是哪個(gè)就好了,還好有這個(gè):
? ? ? ??http://dnsleaktest.com/
? ? ? ??
? ? ? ? 結(jié)果如下:
? ? ? ??
? ? ? ? 檢測(cè)之前已經(jīng)把本機(jī)DNS設(shè)置成114.114.114.114了,從結(jié)果上看果然有問(wèn)題,應(yīng)該是使用了透明DNS代理的技術(shù),導(dǎo)致DNS泄漏.
? ? ? ??
? ? ? ? 總結(jié)一下:
? ? ? ??DNS劫持,劫持單條DNS查詢信息,返回不正確的結(jié)果.
? ? ? ??透明DNS代理,劫持所有查詢信息,只要是經(jīng)過(guò)運(yùn)營(yíng)商網(wǎng)關(guān)的發(fā)往53端口的UDP類型的DNS協(xié)議,全部都轉(zhuǎn)移到自己DNS服務(wù)器上去,所以在本機(jī)上設(shè)置是沒(méi)用的.
?
? ? ? ??這樣一來(lái),即使在內(nèi)部網(wǎng)絡(luò)中部署了DNS服務(wù)器也只可以起到加速作用,依然無(wú)法反劫持.因?yàn)閮?nèi)網(wǎng)中的DNS服務(wù)器向上級(jí)DNS服務(wù)器請(qǐng)求時(shí)的數(shù)據(jù)同樣會(huì)被透明DNS代理劫持到ISP的DNS上.內(nèi)部DNS服務(wù)器緩存的數(shù)據(jù)依然是被污染過(guò)的.
?
? ? ? ??如果想突破這種劫持,有三種方式. 這三種方式,都需要在本機(jī)對(duì)DNS請(qǐng)求數(shù)據(jù)進(jìn)行預(yù)處理,所以本機(jī)都需要部署處理程序,同時(shí)將本地DNS設(shè)置為127.0.0.1.
? ? ? ??1.???使用DNS協(xié)議的TCP形式.
? ? ? ??按照約定,DNS服務(wù)器都要同時(shí)實(shí)現(xiàn)TCP形式的DNS協(xié)議處理.這樣一來(lái),只需要在本地把UDP形式的協(xié)議轉(zhuǎn)換為T(mén)CP形式就可以了.可以使用的工具有:
? ? ? ??(1)? socat
? ? ? ??socat是linux下很好用的端口轉(zhuǎn)發(fā)工具,支持UDP轉(zhuǎn)TCP,試用了一下,并不好用,經(jīng)常各種錯(cuò)誤.
? ? ? ??使用方法倒是很簡(jiǎn)單: socat udp4-listen:53,reuseaddr,fork TCP:114.114.114.114:53
? ? ? ??socatwindows版本的下載地址
? ? ? ??(2)? Tcp-DNS-proxy和pwx-dns-proxy
? ? ? ??這兩個(gè)都是專門(mén)的DNS協(xié)議轉(zhuǎn)換工具,實(shí)際使用了一下,效果都很不理想,速度很慢.
? ? ? ? (3)pdnsd
? ? ? ? 這個(gè)其實(shí)是個(gè)dns服務(wù)器,需要設(shè)置向上級(jí)服務(wù)器請(qǐng)求時(shí)只使用TCP格式.貌似也就這個(gè)方案比較靠譜.
? ? ? ??之前還有嘗試過(guò)其他的端口轉(zhuǎn)發(fā)工具,要么不支持UDP,要么號(hào)稱支持UDP,但是只支持UDP到UDP,不支持UDP到TCP.
? ? ? ??2.???使用加密軟件對(duì)DNS請(qǐng)求和回復(fù)數(shù)據(jù)進(jìn)行加密.
? ? ? ??這種方式的弊端是,既然內(nèi)部有加密,外部必須有一個(gè)相應(yīng)的解密工具.對(duì)個(gè)人來(lái)說(shuō),外部還需要部署一套專門(mén)的解密工具,需要VPS,代價(jià)有點(diǎn)大.
? ? ? ??使用這種方式的工具找到兩個(gè):
? ? ? ??(1)? dnscrypt
? ? ? ??這個(gè)工具貌似很有名,所以本身內(nèi)置的DNS服務(wù)器地址已經(jīng)大部分被封.速度很不理想,沒(méi)有嘗試自己部署服務(wù)器端會(huì)怎么樣.
? ? ? ??(2)? tcp-over-dns
? ? ? ??沒(méi)有具體試用.
? ? ? ??3.???使用其他端口.
? ? ? ??沒(méi)有具體試用,沒(méi)找到現(xiàn)成的工具.這種方式,需要本地轉(zhuǎn)發(fā)DNS請(qǐng)求到指定端口,然后還需要在外網(wǎng)部署使用特定端口的DNS服務(wù)器.同樣需要一臺(tái)VPS.
?
總結(jié)
以上是生活随笔為你收集整理的DNS反劫持的几种方式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 《明朝那些事儿》读书笔记
- 下一篇: 税控接口 - 模拟录入