dnscrypt 安全的dns

可以说DNS是整个Internet中,最薄弱的部分(虽然其他某些部分也不安全)。因为这个dns是UDP的,可以随便被修改,这样就会让你上冒牌网站了。想想就吓尿了。这也被我们伟大的墙利用了,当然这只是小手段。最近(2014.2.14)左右,youtube可以“直接”上了。瞬间让我看到了希望。习大大果然不同凡响。

为什么说是“直接”上呢?因为墙降低了手段,只用了DNS污染,只要DNS正确就能上youtube。这就方便多了,网速也很快。虽然我不怎么上youtube,但这是一种自由的象征。

不仅如此,如果你遭受了ARP攻击,而采用下面的DNS查询方式可以免于被DNS污染。可见安全的DNS是非常重要的,当然也是非常有意思的。

DNSCrypt 是由来已久的,目前有很多“free, DNSCrypt-enabled resolvers”,像opendns(我就用过这个,感觉很可以,所以就一直用着了。我就担心这些dns被墙掉)。而只有服务器也不行啊,需要工具与服务器交流。我使用的是dnscrypt-proxy。公开源码,可以自己编译。arch直接安装就好了。

完成以上这几个步骤,可以打开测试地址,默认的dns解析服务器是opendns的,配置文件是/etc/conf.d/dnscrypt-proxy,可以进行修改,具体man dnscrypt-proxy。

如果测试成功,就可以进行下一步,不行的话也试试下一步再重启。

光有DNSCrypt还不是完美的,因为他没有cache,每次有query他都会重新访问OpenDNS。这样效率就低了,可以看看有cache和没有cache的区别。

没有cache:

cpu8

有cache:

cpu9

我是用unbound解决这个问题的,当然还有代替工具powerdns这样的,但是用不来。

修改/usr/lib/systemd/system/dnscrypt-proxy.service, port 40。或者修改/etc/conf.d/dnscrypt-proxy,里面的DNSCRYPT_LOCALPORT=40。

准备完毕,可以开机启动服务。

最好重启一下。

最后有个问题,就是这里的53端口被监听了,我就不能建ap了,这个还不知道原理,以后再思考一下怎么解决。

链接: