création de sys-dns
Dans Dom0:
Creer un template disposable pour sys-dns:
qvm-create -C AppVM --template dnscrypt-net --label red dnscrypt-dns-dvm
qvm-prefs dnscrypt-dns-dvm template_for_dispvms True
Puis créer sys-dns:
qvm-create -C DispVM --template dnscrypt-dns-dvm --label orange sys-dns
dans dnscrypt-dns-dvm, déplacer les fichiers de configuration dans le dossier
/rw/
mv /etc/dnscrypt-proxy /rw/
et on configure le fichier /rw/config/rc.local:
#!/bin/sh
# This script will be executed at every VM startup, you can place your own
# custom commands here. This includes overriding some configuration in /etc,
# starting services etc.
ipt='/usr/sbin/iptables'
# allow redirects to localhost
/usr/sbin/sysctl -w net.ipv4.conf.all.route_localnet=1
"${ipt}" -I INPUT -i vif+ -p tcp --dport 53 -d 127.0.0.1 -j ACCEPT
"${ipt}" -I INPUT -i vif+ -p udp --dport 53 -d 127.0.0.1 -j ACCEPT
# block connections to other DNS servers
"${ipt}" -I FORWARD -i vif+ -p tcp --dport 53 ! -d 127.0.0.1 -j DROP
"${ipt}" -I FORWARD -i vif+ -p udp --dport 53 ! -d 127.0.0.1 -j DROP
"${ipt}" -t nat -F PR-QBS
"${ipt}" -t nat -A PR-QBS -p udp --dport 53 -j DNAT --to-destination 127.0.0.1
"${ipt}" -t nat -A PR-QBS -p tcp --dport 53 -j DNAT --to-destination 127.0.0.1
echo 'nameserver 127.0.0.1' > /etc/resolv.conf
echo 'options edns0' >> /etc/resolv.conf
ln -s /rw/dnscrypt-proxy /etc/dnscrypt-proxy
/usr/bin/systemctl start dnscrypt-proxy.service
Dans dnscrypt-net, on supprime le dossier /etc/dnscrypt-proxy:
rm -rf /etc/dnscrypt-proxy
Enfin, aprés avoir eteind toute les Vms, on ouvre un terminal en mode root
de sys-dns pour vérifier que tout fonctionne bien:
systemctl status dnscrypt-proxy
le service doit etre activé et la commande
ps -U dnscrypt -u dnscrypt u
doit donner un résultat ressemblant à:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
dnscrypt 2951 0.2 2.5 1301200 100776 ? Ssl 21:49 0:01 /usr/bin/dnscrypt-proxy -config /etc/dnscrypt-proxy/dnscrypt-proxy.toml -child