Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
bieberg0n opened this issue Mar 8, 2016 · 0 comments
Open

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

bieberg0n opened this issue Mar 8, 2016 · 0 comments
Labels

Comments

@bieberg0n
Copy link
Owner

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant