标题: OpenWrt配置DNSCrypt防止DNS污染
作者: Demon
链接: https://demon.tw/hardware/openwrt-dnscrypt.html
版权: 本博客的所有文章,都遵守“署名-非商业性使用-相同方式共享 2.5 中国大陆”协议条款。
之前我一直在OpenWrt上使用pdnsd通过TCP协议进行DNS查询来防止DNS污染,无奈Google和OpenDNS提供的DNS服务器地址都被重点关照,时常连接不上,所以有必要启用DNSCrypt了。
DNSCrypt是OpenDNS发布的加密DNS工具,可加密DNS流量,阻止常见的DNS攻击,如重放攻击、观察攻击、时序攻击、中间人攻击和解析伪造攻击。DNSCrypt支持Mac OS和Windows,是防止DNS污染的绝佳工具。
有人把DNSCrypt移植到了OpenWrt上面,称为dnscrypt-proxy-openwrt,下面是在OpenWrt上安装和配置的方法:
1、安装DNSCrypt,对于ar71xx平台,black-roland维护了一个第三方的软件包,在/etc/opkg.conf文件中添加OpenWrt对应版本的源:
Barrier Breaker:
src/gz exopenwrt http://exopenwrt.and.in.net/barrier_breaker/ar71xx/packages/exOpenWrtAttitude Adjustment:
src/gz exopenwrt http://exopenwrt.and.in.net/attitude_adjustment/ar71xx/packagestrunk:
src/gz exopenwrt http://exopenwrt.and.in.net/trunk/ar71xx/packages/exOpenWrt
然后使用命令安装:
$ opkg update $ opkg install dnscrypt-proxy
2、配置DNSCrypt,DNSCrypt默认监听127.0.0.1:2053,可以通过/etc/config/dnscrypt-proxy文件进行配置。
config dnscrypt-proxy option address '127.0.0.1' option port '2053' # option resolver 'opendns' # option resolvers_list '/usr/share/dnscrypt-proxy/dnscrypt-resolvers.csv'
resolver默认是opendns,可以改成其他的public DNSCrypt resolvers。
然后设置开机启动DNSCrypt:
/etc/init.d/dnscrypt-proxy enable /etc/init.d/dnscrypt-proxy start
由于DNSCrypt可能会在网络接口完全连接之后启动,所以有可能会失败,所以最好在/etc/rc.local里面添加:
sleep 10 /etc/init.d/dnscrypt-proxy start
3、配置dnsmasq,由于使用DNSCrypt查询DNS会比较慢,所以不想所有域名都通过DNSCrypt来解析,而是针对被污染的域名使用DNSCrypt,这样速度会快一些,可以编辑/etc/dnsmasq.conf,将需要走DNSCrypt的域名添加上:
server=/twitter.com/127.0.0.1#2053 server=/google.com/127.0.0.1#2053 server=/youtube.com/127.0.0.1#2053 server=/facebook.com/127.0.0.1#2053 ......
配置完之后重启dnsmasq,就可以试试看效果了:
root@OpenWrt:~# nslookup twitter.com Server: 127.0.0.1 Address 1: 127.0.0.1 localhost Name: twitter.com Address 1: 199.59.148.82 r-199-59-148-82.twttr.com Address 2: 199.59.148.10 r-199-59-148-10.twttr.com Address 3: 199.59.150.7 r-199-59-150-7.twttr.com Address 4: 199.59.149.198 www2.twitter.com
如果想获得更快的速度,可以在dnsmasq和DNSCrypt之间加上一个pdnsd做永久缓存,具体如何配置参考pdnsd的文档。
参考链接:http://wiki.openwrt.org/inbox/dnscrypt
赞赏微信赞赏支付宝赞赏
随机文章:
意思是装了这个之后 可以访问 google了 ???
不用 ss ?
很明显本文作者说的是解决DNS污染而并没有说任何番茄
5.11.11.5 非洲公共DNS,时延还成。可以考虑上https://cn.vnet.link买个电信CN2的链路。