域名DNS污染解決方法

2020-07-27 14:11:25 GDIDC

DNS污染

    DNS污染,又稱為域名服務器緩存污染(DNS cache pollution)或者域名服務器快照侵害(DNS cache poisoning)。

    DNS污染是指一些刻意制造或無意中制造出來的域名服務器分組,把域名指往不正確的IP地址。

    一般來說,網站在互聯網上一般都有可信賴的域名服務器,但為減免網絡上的交通,一般的域名都會把外間的域名服務器數據暫存起來,待下次有其他機器要求解析域名時,可以立即提供服務。一旦有相關網域的局域域名服務器的緩存受到污染,就會把網域內的電腦導引往錯誤的服務器或服務器的網址。


原理解析

    我們假設 A為用戶端也就是你的電腦設備,B為DNS服務器,C為A到B鏈路中一個節點的網絡設備(路由器、交換機、網關等)。

    然后我們模擬一次被污染的DNS請求過程。

    A訪問一個網站,比如 google.com ,然后,A向B通過UDP方式發送查詢請求,比如查詢內容 A google.com ,這個數據庫在前往B的時候要經過數個節點網絡設備比如C,然后繼續前往DNS服務器B。

    然而在這個傳輸過程中,C針對這個數據包進行特征分析,(DNS端口為53,進行特定端口監視掃描,對UDP明文傳輸的DNS查詢請求進行特征和關鍵詞匹配分析,比如“google.com”是關鍵詞,也或者是“A記錄”),從而立刻返回一個錯誤的解析結果(比如返回了 A 233.233.233.233 )。

    眾所周知,作為鏈路上的一個節點,網絡設備C 必定比真正的 DNS服務器B 更快的返回結果到 用戶電腦A,而目前的DNS解析機制策略有一個重要的原則,就是只認第一。因此 節點網絡設備C所返回的查詢結果就被 用戶電腦A當作了最終結果,于是用戶電腦A因為獲得了錯誤的IP,導致無法正常訪問 google.com 。


驗證污染

    我的 www.dou-bi.com 主域名雖然在大部分地區解除了DNS污染,但是我的兩個SS站域名并沒有,所以我嘗試對我的SS 子域名進行nslookup測試。

  • C:UsersAdministrator>nslookup ss.dou-bi.com 8.8.8.8

  • 服務器: google-public-dns-a.google.com

  • Address: 8.8.8.8


非權威應答:

  • 名稱: ss.dou-bi.com

  • Addresses: 200:2:9f6a:794b::

  • 8.7.198.45

    我使用的是谷歌的 8.8.8.8 DNS,但是我得到的A記錄 IP卻是8.7.198.45,這個明顯不是我的IP,看一下其他被DNS污染的域名就會發現都會有這個IP。

    所以很明顯,我的 ss.dou-bi.com 域名受到了DNS污染。


解決方法

    使用加密代理,比如Shadowsocks,在加密代理里進行遠程DNS解析,或者使用VPN上網。

    修改hosts文件,操作系統中Hosts文件的權限優先級高于DNS服務器,操作系統在訪問某個域名時,會先檢測HOSTS文件,然后再查詢DNS服務器。

    可以在hosts添加受到污染的DNS地址來解決DNS污染和DNS劫持。


    通過一些軟件編程處理,可以直接忽略返回結果是虛假IP地址的數據包,直接解決DNS污染的問題。

    如果你是Firefox用戶,并且只用Firefox,又懶得折騰,直接打開Firefox的遠程DNS解析就行了。在地址欄中輸入:about:config

    找到 network.proxy.socks_remote_dns 一項改成true。

    使用DNSCrypt軟件,此軟件與使用的OpenDNS直接建立相對安全的TCP連接并加密請求數據,從而不會被污染。 對于被DNS污染的網站站長來說,最有效的方法就是 換域名或者IP 了。

標簽: DNS污染
主站蜘蛛池模板: 柳河县| 林芝县| 广汉市| 宝坻区| 芒康县| 奉新县| 临夏市| 乌兰察布市| 芦溪县| 阿坝县| 五家渠市| 黔东| 舒兰市| 化德县| 饶阳县| 大兴区| 读书| 霍城县| 广安市| 雷州市| 聊城市| 诸暨市| 凤城市| 白朗县| 古丈县| 龙井市| 望都县| 贵定县| 郎溪县| 琼结县| 休宁县| 广南县| 密云县| 宜春市| 泸水县| 遵化市| 鄂托克旗| 苍溪县| 乌兰县| 伊宁市| 凌海市|