解決DNS污染與劫持之使用特殊DNS端口


os:ubuntu 12.04 LTS

軟件:dnsmasq

dns測試:

dig www.facebook.com @8.8.8.8 +short  
37.61.54.158  

在wiki詞條域名服務器緩存污染中可以發現37.61.54.158在虛假ip地址中,說明此dns已遭污染。

dig www.facebook.com @208.67.222.222 -p 443  
31.13.79.49  

31.13.79.49為facebook的正確地址。google的dns服務不支持特殊端口查詢,但opendns支持,其ip為208.67.222.222,208.67.222.220,支持的特殊端口為443,5353。

在ubuntu中,我們可以用dnsmasq來指定被污染ip用特殊端口查詢.

從Ubuntu 12.04開始網絡管理器默認開啟了dnsmasq,但出於安全的考慮沒有開啟其緩存功能。這個改動至少在我這里導致了一些問題,比如偶爾出現網速變慢。經過嘗試,可以完全禁用該服務,或者設置使用谷歌DNS服務,同時開啟dnsmasq的本地緩存(可以大幅提高重復訪問網站時的響應速度)。

完全禁用的方法:

sudo vim /etc/NetworkManager/NetworkManager.conf

注釋掉里面的dns=dnsmasq
然后重啟網絡管理器

sudo restart network-manager

重新安裝完整dnsmasq:

sudo apt-get install dnsmasq

然后

sudo vi /etc/resolv.conf

確保resolv.conf內容為:

nameserver 127.0.0.1

然后

sudo vim /etc/dnsmasq.conf

直接在文件最后添加:

listen-address=127.0.0.1  	
bind-interfaces  
cache-size=100000  
domain-needed  
resolv-file=/etc/resolv.dnsmasq  
server=/facebook.com/208.67.222.222#5353 

其中

server=/facebook.com/208.67.222.222#5353

即可指定訪問facebook網站時向opendns的5353端口進行dns請求,以此類推。
這個設置支持泛解析,比如

server=/com/208.67.222.222#5353

即指定所有.com域名。


重啟dnsmasq:

sudo service dnsmasq restart

再測試dns:

dig www.facebook.com +short

若返回31.13.79.49或其他不在虛假ip表里的ip即成功。


ps:用命令

ps -fC dnsmasq|more

查閱得知dnsmasq在ubuntu中的dns設置在/var/run/dnsmasq/resolv.conf中。
dnsmasq的日志記錄在/var/log/syslog中。


參考鏈接:
Ubuntu開啟dnsmasq緩存並使用谷歌DNS服務

OpenWRT路由器unbound+dnsmasq解決DNS污染與劫持

關於修改 NetworkManager 托管下 dnsmasq 的問題


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM