解决DNS污染与劫持之使用特殊DNS端口
时间:2014-08-27 01:13 来源:linux.it.net.cn 作者:it
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中。
(责任编辑:IT)
os:ubuntu 12.04 LTS 软件:dnsmasq dns测试:
在wiki词条域名服务器缓存污染中可以发现37.61.54.158在虚假ip地址中,说明此dns已遭污染。
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的本地缓存(可以大幅提高重复访问网站时的响应速度)。 完全禁用的方法:
注释掉里面的dns=dnsmasq 然后重启网络管理器
重新安装完整dnsmasq:
然后
确保resolv.conf内容为:
然后
直接在文件最后添加:
其中
即可指定访问facebook网站时向opendns的5353端口进行dns请求,以此类推。这个设置支持泛解析,比如
即指定所有.com域名。 重启dnsmasq:
再测试dns:
若返回31.13.79.49或其他不在虚假ip表里的ip即成功。 ps:用命令
查阅得知dnsmasq在ubuntu中的dns设置在/var/run/dnsmasq/resolv.conf中。 dnsmasq的日志记录在/var/log/syslog中。 (责任编辑:IT) |