如何在Arch Linux中安装DNSCrypt和Unbound
DNSCrypt是一种协议,用于加密和验证DNS客户端和DNS解析器之间的通信。
防止中间攻击中的DNS欺骗或者人。
DNSCrypt可用于大多数操作系统,包括Linux,Windows,MacOSX Android和iOS。
在本教程中,我正在使用archlinux与内核4.1.
Unbound是用于解析接收的任何DNS查询的DNS缓存服务器。
如果用户请求新查询,则未绑定将其存储为缓存,并且当用户第二次请求同一查询时,则未绑定从已保存的缓存中取出。
这将比第一个请求查询更快。
现在我会尝试安装"DNSCrypt"来保护DNS通信,并使用DNS缓存"未绑定"更快。
第1步 - 安装Yaourt
Yaourt是Aur(arch用户存储库)帮助程序之一,使Archlinux用户易于从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
第2步 - 安装DNSCrypt和Unbound
ARCHLINUX存储库中可用的DNSCRYPT和UNBOND,然后我们可以使用PACMAN命令安装它:
$sudo pacman -S dnscrypt-proxy unbound
等待它,然后按"Y"进行安装。
第3步 - 安装dnscrypt-autoinstall
DNSCrypt-AutoInstall是一种用于安装和自动配置基于Linux的系统的DNSCrypt的脚本。
DNSCrypt-AutoInstall在AUR(ARCH用户存储库)中可用,我们必须使用"yaourt"命令安装它:
$yaourt -S dnscrypt-autoinstall
笔记 :
-s =它与pacman -s安装一个软件/程序。
第4步 - 运行dnscrypt-autoinstall
使用root权限运行命令"dnscrypt-autoinstall"以自动配置DNSCrypt:
$sudo dnscrypt-autoinstall
按下下一个配置按"Enter",然后键入"Y"并选择要使用的DNS提供商,我在这里使用DNSCrypt.eu用没有日志和DNSSEC。
第5步 - 配置DNSCrypt和Unbound
1.打开dnscrypt配置文件"/etc/conf.d/dnscrypt-config",并确保将"dnscrypt_localip"指向localhost ip的配置,并且对于端口配置"dnscrypt_localport"这取决于我们,我在这里使用端口40。
$nano /etc/conf.d/dnscrypt-config DNSCRYPT_LOCALIP=127.0.0.1 DNSCRYPT_LOCALIP2=127.0.0.2 DNSCRYPT_LOCALPORT=40
保存并退出。
2.现在,我们可以在"/etc/unbound /"中编辑未绑定配置。
使用Nano编辑器编辑文件配置:
$nano /etc/unbound/unbound.conf
3.在线结束时添加以下脚本:
do-not-query-localhost: no forward-zone: name: "." forward-addr: 127.0.0.1@40
确保"转发Addr"端口与DNSCrypt中的"DNSCrypt_Localport"配置相同。
我们可以看到i"m使用端口40。
然后保存并退出。
步骤6 - 运行DNSCrypt和Unbound,然后添加到启动/启动
请使用root权限运行dnscrypt和unbound,我们可以使用systemctl命令运行:
$sudo systemctl start dnscrypt-proxy unbound
在引导时间/启动时添加服务。
我们可以通过运行"systemctl启用"来完成它:
$sudo systemctl enable dnscrypt-proxy unbound
该命令将为"/usr/lib/systemd/system/system /"目录创建服务的符号链接。
步骤7 - 配置rollev.conf并重新启动所有服务
rodarv.conf是Linux使用的文件,配置域名服务器(DNS)解析器。
它只是管理员创建的纯文本,因此我们必须通过root权限进行编辑,并使它不可变/没有人可以编辑它。
使用Nano编辑器编辑:
$nano /etc/resolv.conf
并添加localhost ip"127.0.0.1"。
现在用"Chattr"命令使其无法实现:
$chattr +i /etc/resolv.conf
笔记 :
如果要再次编辑它,请使用命令"chattr -i /etc/resolv.conf"来使其写入。
现在哟需要重新启动DNSCrypt,未绑定和网络:
$sudo systemctl restart dnscrypt-proxy unbound netctl
如果看到错误,请检查配置文件。
测试
1.测试DNSCrypt.
我们可以确定通过访问https://dnsleaktest.com/,然后单击"标准测试"或者"扩展测试"并等待运行的"标准测试"并等待DNSCrypt。
现在,我们可以看到DNSCrypt正在使用DNSCrypt.eu作为DNS提供商。
现在,我们可以看到DNSCrypt正在使用DNSCrypt.eu作为DNS提供商。
2.测试未结合
现在,我们应该确保未绑定使用"挖掘"或者"钻取"命令正常工作。
这是DIG命令的结果:
$dig theitroad.com
现在看看结果,"查询时间"是"533毫秒":
;; Query time: 533 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Sun Aug 30 14:48:19 WIB 2014 ;; MSG SIZE rcvd: 188
并重新尝试使用相同的命令。
你会看到"查询时间"是"0毫秒"。
;; Query time: 0 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Sun Aug 30 14:51:05 WIB 2014 ;; MSG SIZE rcvd: 188
最后,DNSCrypt在DNS客户端和DNS解析器之间的安全通信完全正常工作,然后通过拍摄已保存的缓存在另一个时间中存在相同的请求,未绑定使其更快。