DNSCrypt is een protocol dat het verkeer tussen een dns-client en -server authentiseert, zodat je zeker bent dat de dns-antwoorden van die server komen. Onder Linux kun je het programma dnscrypt-proxy gebruiken om van DNSCrypt gebruik te maken. Onder Ubuntu installeer je dit als volgt:

sudo add-apt-repository ppa:anton+/dnscrypt

sudo apt-get update

sudo apt-get install dnscrypt-proxy

Dnscrypt-proxy start nu en gebruikt 127.0.0.2 als lokaal IP-adres, zodat het niet in het vaarwater van dnsmasq komt, dat standaard 127.0.0.1 gebruikt. De volgende stap is dat je in je netwerkinstellingen als dns-server dit adres 127.0.0.2 invult. In NetworkManager gaat dat door je huidige netwerk in de lijst met netwerkverbindingen te kiezen, op Bewerken… te klikken en in het tabblad IPv4-instellingen bij Extra DNS-servers het adres in te vullen. Verander ook de methode Automatisch (DHCP) naar Automatisch, alleen DHCP-adressen. Klik op Opslaan…

Herstart nu NetworkManager, wat met systemd als volgt gaat:

sudo systemctl restart NetworkManager.service

Vanaf nu worden alle DNS-aanvragen via de DNSCrypt-proxy naar een DNSCrypt-server gestuurd en geverifieerd. Controleer met de volgende opdracht of de DNS-aanvragen echt naar een DNSCrypt-server gaan:

sudo tcpdump -i wlan0 dst host 176.56.237.171

Dat is immers het IP-adres van de standaard door dnscrypt-proxy gebruikte DNSCrypt-resolver in Den Haag.

https://dnscrypt.org/