文章

dns crypt的服务端dnscrypt-wrapper的搭建。

  编辑于:2019-02-16
文章目录

前言

DNS解析的记录可能会被劫持,这里用Dns Crypt加密DNS的解析请求,这里介绍其服务端dnscrypt-wrapper的搭建。

相关依赖

dnscrypt-wrapper需要libsodium和libevent 2.1.1+。
安装编译需要的依赖

sudo apt-get install build-essential autoconf

libsodium

sod_ver=$(wget -q -O- https://github.com/jedisct1/libsodium/releases/latest | grep -oP "/releases/tag/[^\"^']+"| grep -oP "[^/^\"^']+"| tail -n1)
wget -O /root/libsodium-$sod_ver.tar.gz https://github.com/jedisct1/libsodium/releases/download/$sod_ver/libsodium-$sod_ver.tar.gz --no-check-certificate
tar xf /root/libsodium-$sod_ver.tar.gz
cd /root/libsodium-$sod_ver
./configure && make -j2 && make install
ldconfig

libevent

wget -O /root/libevent-2.1.8-stable.tar.gz https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent-2.1.8-stable.tar.gz --no-check-certificate
tar -xf /root/libevent-2.1.8-stable.tar.gz
cd /root/libevent-2.1.8-stable
./configure
make
make install
ldconfig

dnscrypt-wrapper

安装好相关依赖之后就可以编译安装dnscrypt-wrapper了。

安装

git clone git://github.com/cofyc/dnscrypt-wrapper.git
cd dnscrypt-wrapper
make configure
./configure
make install

设置

mkdir /etc/dnscrypt-wrapper && cd /etc/dnscrypt-wrapper
dnscrypt-wrapper --gen-provider-keypair --provider-name=2.dnscrypt-cert.zorz.cc --ext-address=你的IP:端口号
#类似于4298:5F65:C295:DFAE:2BFB:20AD:5C47:F565:78EB:2404:EF83:198C:85DB:68F1:3E33:E952这样的信息,记下来,这是在dnscrypt-proxy 1.x版本需要的。
#现在一般都是 dnscrypt-proxy 2.x版本,记下来sdns开头的这串信息即可。
dnscrypt-wrapper --gen-crypt-keypair --crypt-secretkey-file=zorz.cc.key
dnscrypt-wrapper --gen-cert-file --crypt-secretkey-file=zorz.cc.key --provider-cert-file=zorz.cc.cert --provider-publickey-file=public.key --provider-secretkey-file=secret.key --cert-file-expire-days=365d
#将证书过期时间设置为365天。这也意味着你需要在365天以后在运行上面这行命名,然后重启dnscrypt-wrapper
dnscrypt-wrapper --resolver-address=8.8.8.8:53 --listen-address=0.0.0.0:443 \
                   --provider-name=2.dnscrypt-cert.zorz.cc \
                   --crypt-secretkey-file=zorz.cc.key --provider-cert-file=zorz.cc.cert -VV
#使用命令来运行 dnscrypt-wrapper,用“-VV”来显示比较详细的 debug 信息:
#其中的  --provider-name= 并不必要,可以随便填写,但注意必须是以  2.dnscrypt-cert. 开头:)

自启动设置,支持systemd的系统

echo '[Unit]
Description=dnscrypt-wrapper service
After=network.target
Wants=network.target
 
[Service]
Type=simple
PIDFile=/var/run/dnscryptwrapper.pid
ExecStart=/usr/local/sbin/dnscrypt-wrapper --resolver-address=8.8.8.8:53 --listen-address=0.0.0.0:5353 --provider-name=2.dnscrypt-cert.zorz.cc --crypt-secretkey-file=/etc/dnscrypt-wrapper/zorz.cc.key --provider-cert-file=/etc/dnscrypt-wrapper/zorz.cc.cert -VV
Restart=on-failure
 
[Install]
WantedBy=multi-user.target' > /etc/systemd/system/dnscryptwrapper.service
systemctl enable dnscryptwrapper && systemctl start dnscryptwrapper

参考链接:
https://www.logcg.com/archives/981.html
https://github.com/cofyc/dnscrypt-wrapper

发表回复