OpenWrt官网: https://openwrt.org
OpenWrt是一种适用于嵌入式设备的Linux发行版,是一个高度模块化、高度自动化的嵌入式Linux系统,拥有强大的网络组件和扩展性,常常被用于工控设备、电话、小型机器人、智能家居、路由器以及VoIP设备中。同时,OpenWrt还提供了100多个已编译好的软件,且数量还在不断增加,OpenWrt SDK简化了开发相关软件的过程。
DNSCrypt官网: https://www.dnscrypt.org
DNSCrypt是一种DNS客户端和DNS解析器之间的认证通信的协议。它可以防止DNS欺骗,它使用密码签名来验证来自选择的DNS解析器返回的原始响应,保证信息没有被篡改。DNSCrypt软件支持Linux、Mac OSX、Android、iOS、BSD和Windows等系统。
DNSCrypt不属于任何公司或组织,它是一个使用了高度安全的、非NIST加密的文档化协议,其参考实现是开源的,有一个非常宽松的许可证。
要注意,DNSCrypt并非VPN的替代品,因为它只是验证DNS流量,并不会预防“DNS泄露”等。
本文主要讲述怎样在OpenWrt路由器上安装和配置DNSCrypt。
步骤1:安装DNSCryptDNSCrypt源码不在opkg的默认列表中,因此需要先把源添加到opkg列表的最后 ‘/etc/opkg.conf’。
echo 'src/gz exopenwrt ' >> /etc/opkg.conf然后接着进行安装:
opkg update opkg install dnscrypt-proxy验证安装:
### opkg status | grep -n "dnscrypt-proxy" ### Result ### 230:Package: dnscrypt-proxy 236: /etc/config/dnscrypt-proxy ff316755d745da9b15b7166b667ed108 步骤2:配置DNSCryptDNSCrypt的配置文件在/etc/config/dnscrypt-proxy,它比较简单,易于调整:
### nano /etc/config/dnscrypt-proxy config dnscrypt-proxy option address '127.0.0.1' option port '5353' # option resolver 'cisco' # option resolvers_list '/usr/share/dnscrypt-proxy/dnscrypt-resolvers.csv' # option ephemeral_keys '1'现在可以启动DNSCrypt,并设置自启动:
/etc/init.d/dnscrypt-proxy enable /etc/init.d/dnscrypt-proxy start如果路由器重启后dnscrypt-proxy没有启动,那么或许该尝试在网络接口完全启动前启动它。在/etc/rc.local文件的“exit 0”行上面添加:
sleep 10 /etc/init.d/dnscrypt-proxy start接下来,编辑‘/etc/config/dhcp’配置:
config dnsmasq option domainneeded 1 option boguspriv 1 option filterwin2k 0 option localise_queries 1 option rebind_protection 1 option rebind_localhost 1 option local '/lan/' option domain 'lan' option expandhosts 1 option nonegcache 0 option authoritative 1 option readethers 1 option leasefile '/tmp/dhcp.leases' # option resolvfile '/tmp/resolv.conf.auto' option noresolv 1 list server '127.0.0.1#5353' list server '/pool.ntp.org/208.67.222.222' # list server '208.67.222.222' # list server '208.67.220.220'重启dnsmasq,使之生效:
/etc/init.d/dnsmasq restart至此,就成功完成了DNSCrypt的安装。