zoukankan      html  css  js  c++  java
  • 解决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 的问题

  • 相关阅读:
    SDN作业(4)
    SDN作业(3)
    第一次个人编程作业
    SDN作业(2)
    SDN作业(1)
    第一次博客作业
    浅谈闭包
    预编译And作用域链
    定时器
    window事件
  • 原文地址:https://www.cnblogs.com/jnxb/p/3900013.html
Copyright © 2011-2022 走看看