V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
kfll
V2EX  ›  程序员

OS X 绕过 DNS 投毒新姿势

  •  
  •   kfll · 2014-09-26 21:02:42 +08:00 · 5341 次点击
    这是一个创建于 3746 天前的主题,其中的信息可能已经有所发展或是发生改变。
    • 本帖所述主要内容是相关 resolver(5) ,具体内容是用其绕过大陆的 DNS 投毒。
    • 本帖有关绕过 DNS 投毒的原理为使用非 53 端口的 DNS 公共服务器
    • 当然在路由器上使用 dnsmasq 或自建 DNS 有时候会是更好的解决方案,不过本帖不讨论其他防 DNS 投毒方案,亦不作比较。

    下面为方案介绍

    简单应用(/etc/resolv.conf)

    修改 /etc/resolv.conf *,使用如下 nameserver

    nameserver 208.67.222.222.443
    nameserver 208.67.220.220.443
    

    系统在解析域名时即会使用 OpenDNS 的 443 端口的 DNS 服务了。(这里说是系统解析似乎不大准确,意会即可)

    以上修改即可绕过 DNS 投毒。

    [*] 在_系统偏好设置_中所做 DNS 修改会重新生成 /etc/resolv.conf ,需要重新修改改文件。

    进阶应用(/etc/resolver/*)

    进阶应用所述方案符合如下需求:

    • 不修改 /etc/resolv.conf
    • 指定域使用指定 nameserver

    方案如下:

    新建文件 /etc/resolver/twitter.com,内容如下:

    nameserver 208.67.222.222
    port 443
    

    意思是让 twitter.com 域的所有域名查询使用 208.67.222.222:443 DNS 服务器。

    所有的 resolver 可以通过执行 scutil --dns 查看。

    添加其他域(以 google.com 为例):

    cd /etc/resolver
    ln -sfv twitter.com google.com
    

    其他说明

    • 查询所用 resolver 的顺序策略参看 resolver(5) 的 SEARCH STRATEGY 区块。
    • host, nslookup, dig 等自实现 DNS 查询程序的默认查询服务器均只从 /etc/resolv.conf 读取(dig 还有 ${HOME}/.digrc) ,故不作上述进阶应用方案的验证方案;
    • 可使用 ping, telnet, traceroute 等网络程序,或其他任意使用 libresolv 的程序来确认方案是否有效;当然直接用浏览器也是可以的。
    • 其他可用的非 53 端口 DNS 公共服务器:https://github.com/jedisct1/dnscrypt-proxy/blob/master/dnscrypt-resolvers.csv (所列服务器不使用 dnscrypt 亦可用,只是不加密)
    8 条回复    2014-09-27 15:29:43 +08:00
    helloxxiieessoo
        1
    helloxxiieessoo  
       2014-09-26 22:51:50 +08:00
    修改 /etc/resolv.conf *,使用如下 nameserver

    nameserver 208.67.222.222.443
    nameserver 208.67.220.220.443
    helloxxiieessoo
        2
    helloxxiieessoo  
       2014-09-26 22:52:44 +08:00
    我靠按错了,还无法修改!!!osx centos resolv.conf好像无法这样定义端口把?
    p2p
        3
    p2p  
       2014-09-26 23:09:23 +08:00
    楼主测过了?
    dant
        4
    dant  
       2014-09-26 23:26:46 +08:00 via iPhone
    @helloxxiieessoo glibc 不支持
    izoabr
        5
    izoabr  
       2014-09-26 23:34:50 +08:00
    来吧,赶紧tar -cf resolver.tar /etc/resolver打包上来吧.速速啊
    Showfom
        6
    Showfom  
       2014-09-26 23:43:37 +08:00
    @izoabr 被投毒的域名也就这么几个,很好整理的。

    Google
    YouTube
    Facebook
    Twitter 以及他们相关的域名。。。
    clowwindy
        7
    clowwindy  
       2014-09-27 00:29:46 +08:00
    ChinaDNS for OpenWRT 使用的默认 OpenDNS 端口已改为 443。

    不过还要等 glibc 支持打开 RES_USE_DNSSEC 才真正一劳永逸……
    jyhmijack
        8
    jyhmijack  
       2014-09-27 15:29:43 +08:00 via Android
    看成投毒新姿势了…233
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   942 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 151ms · UTC 21:20 · PVG 05:20 · LAX 13:20 · JFK 16:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.