解决DNS污染与劫持之使用特殊DNS端口

王朝学院·作者佚名  2016-05-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

解决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 的问题

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航