蚊章汇 - DNSCrypt
type: channel
link: https://linuxcn.bwsl.wang/tag/DNSCrypt/
items: 如何在 Arch Linux 中安装 DNSCrypt 和 Unbound
items: 使用DNSCrypt来加密您与OpenDNS之间的通信

如何在 Arch Linux 中安装 DNSCrypt 和 Unbound
type: item
date: 2015-09-28T07:08:47+08:00
description: DNSCrypt 是一个用于对 DNS 客户端和 DNS 解析器之间通信进行加密和验证的协议。它可以阻止 DNS 欺骗或中间人攻击。 DNSCrypt 可用于大多数的操作系统，包括 Linux，Windows，MacOSX ，Android 和 iOS。而在本教程中我使用的是内核为4.1的 archlinux。Unbound 是用来解析收到的任意 DNS 查询的 DNS 缓存服务器。如果用户请求一个新的查询，unbound 会将其存储到缓存中，并且当用户再次请求相同的请求时，unbound 将采用已经保存的缓存。这将比第一次请求查询更快。现在我将尝试安装“DNSCrypt”，以确保 DNS 的通信的安全，并用“Unbound”加速。第一步 - 安装 yaourtYaourt 是AUR（ARCH 用户仓库）的辅助工具之一，它可以使用户能够很容易地从 AUR 安装程序。 Yaourt 和 pacman 使用相同的语法，你可以使用 yaourt 安装该程序。下面是安装 yaourt 的简单方法：1、 用 nano 或者 vi 编辑 arch 仓库配置文件，存放在“/etc/pacman.conf”中。$ nano /etc/pacman.conf 2、 在 yaourt 仓库底部添加，粘贴下面的脚本：[archlinuxfr] SigLevel = Never Server = http://repo.archlinux.fr/$arch 3、 用“Ctrl + x”，接着用“Y”保存。4、 接着升级仓库数据库并用pacman安装yaourt：$ sudo pacman -Sy yaourt 第二步 - 安装 DNSCrypt 和 UnboundDNSCrypt 和 unbound 就在 archlinux 仓库中，你可以用下面的 pacman 命令安装：$ sudo pacman -S dnscrypt-proxy unbound 接着在安装的过程中按下“Y”。第三步 - 安装 dnscrypt-autoinstallDnscrypt-autoinstall 是一个在基于 Linux 的系统上自动安装和配置 DNSCrypt 的脚本。DNSCrypt 在 AUR 中，因此你必须使用“yaourt”命令来安装它。$ yaourt -S dnscrypt-autoinstall 注意 :-S = 这和 pacman -S 安装程序一样。第四步 - 运行 dnscrypt-autoinstall用 root 权限运行“dnscrypt-autoinstall”来自动配置 DNSCrypt。$ sudo dnscrypt-autoinstall 下一步中按下“回车”，接着输入"Y"来选择你想使用的 DNS 提供者，我这里使用不带日志和 DNSSEC 的 DNSCrypt.eu。第五步 - 配置 DNSCrypt 和 Unbound1、 打开 dnscrypt 的“/etc/conf.d/dnscrypt-config” ，确认配置文件中“DNSCRYPTLOCALIP”指向本地ip，“DNSCRYPTLOCALPORT”根据你本人的意愿配置，我是用的是40端口。$ nano /etc/conf.d/dnscrypt-config DNSCRYPT_LOCALIP=127.0.0.1 DNSCRYPT_LOCALIP2=127.0.0.2 DNSCRYPT_LOCALPORT=40 保存并退出。2、 现在你用 nano 编辑器编辑“/etc/unbound/”下 unbound 的配置文件：$ nano /etc/unbound/unbound.conf 3、 在脚本最后添加下面的行：do-not-query-localhost: no forward-zone: name: "." forward-addr: 127.0.0.1@40 确保forward-addr和DNSCrypt中的“DNSCRYPT\_LOCALPORT”一致。如你所见，用的是40端口。接着保存并退出。第六步 - 运行 DNSCrypt 和 Unbound，接着添加到开机启动中请用 root 权限运行 DNSCrypt 和 unbound，你可以用 systemctl 命令来运行：$ sudo systemctl start dnscrypt-proxy unbound 将服务添加到启动中。你可以运行“systemctl enable”：$ sudo systemctl enable dnscrypt-proxy unbound 命令将会创建软链接到“/usr/lib/systemd/system/”目录的服务。第七步 - 配置 resolv.conf 并重启所有服务…

使用DNSCrypt来加密您与OpenDNS之间的通信
type: item
date: 2014-06-22T20:04:00+08:00
description: 正如SSL能将HTTP通信变为加密过的HTTPS通信，DNSCrypt, 物如其名， 是一款能加密您电脑与OpenDNS之间的通信的小神器。DNSCrypt刚问世的时候，官方公布它只是一款Mac才能用的工具，但根据最近一篇由OpenDNS发的文章表明，虽然还没有用户界面，但其实当Mac版DNSCrypt推出的时候源码已经放到了Github上了， Linux的用户也可以安装以及使用哦！（LCTT译注：目前已经有DNSCrypt WinClient、DNSCrypt Windows Service Manager、DNSCrypt OSXClient 和 DNSCrypt Tools for Linux 等第三方图形界面客户端出现。）为神马要使用 DNSCrypt?DNSCrypt可以加密您电脑与OpenDNS服务器的所有通信，加密可以防止中间人攻击，信息窥觑，DNS劫持。更能防止网络供应商对某些网站的封锁。这是世界上第一款加密DNS通信的工具，虽然TOR可以加密DNS的请求，但毕竟它们只是在出口节点加密而已。这款工具并不需要对域名或其工作方式做任何的改变，它只是提供了个该工具的用户与机房里的DNS服务器之间的加密方式而已。您可以在GitHub的OpenDNS DNSCrypt页面阅读更多的相关信息。如何在Linux使用DNSCrypt首先下载安装DNSCrypt (LCTT译注，安装过程不详述，请参照官网描述)， 然后在Terminal里输入这个命令:sudo /usr/sbin/dnscrypt-proxy --daemonize然后把您的DNS服务器调成"127.0.0.1" - 在GNOME界面下的话，只要到Network Connections（网络连接）选项然后选择"Edit"并在"DNS servers"输入"127.0.0.1"就好了。如果您用的是DHCP的话，请选择Automatic (DHCP) addresses only"， 这样的话才能输入DNS服务器。然后只要重连网络便可。您可以访问这条链接来测试您连接到了OpenDNS了没。如果您想设置开机启动DNSCrypt，可以自建一个init的脚本，如果您用的是Ubuntu，可以参考下面的。Arch Linux的用户可以通过AUR来安装DNSCrypt-proxy （内含rc.d脚本）Ubuntu下的DNSCrypt如果您想在Ubuntu设置开机启动，您可以使用这个Upstart脚本。注： 在Ubuntu 12.04版在127.0.0.1有个本地的DNS cache 服务器（dnsmasq）在跑，所以已经把改脚本改成让DNSCrypt使用127.0.0.2了， 所以按照上面的教程，应该把127.0.0.1换成127.0.0.2了。要安装此脚本请使用以下的指令（要首先解压下下来的压缩文件）：sudo cp dnscrypt.conf /etc/init/ sudo ln -s /lib/init/upstart-job /etc/init.d/dnscrypt 然后用这个指令来启动:sudo start dnscrypt 现在DNSCrypt就应该是开机自启了，如果您想停止的话，可以使用：sudo stop dnscrypt 下载DNSCrypt (.deb、 .rpm以及源码都可供下载哦！)via: http://www.webupd8.org/2012/02/encrypt-dns-traffic-in-linux-with.html译者：213edu 校对：wxy本文由 LCTT 原创翻译，Linux中国 荣誉推出