Menu Fermer

Comment installer DNSCrypt sur Linux pour sécuriser les DNS

DNSCrypt est un protocole qui authentifie les communications entre un client DNS et un résolveur DNS. Il empêche l’usurpation de DNS. Il utilise des signatures cryptographiques pour vérifier que les réponses proviennent du résolveur DNS choisi et n’ont pas été altérées.

Des implémentations sont disponibles pour la plupart des systèmes d’exploitation, notamment Linux, OSX, Android, iOS, BSD et Windows.

DNSCrypt n’est affilié à aucune société ou organisation, c’est un protocole documenté utilisant une cryptographie hautement sécurisée, et ses implémentations de référence sont open source et publiées sous une licence libre.

Dans ce tutoriel, je vous montre comment installer DNSCrypt pour sécuriser les DNS.

Comment installer DNSCrypt sur Linux pour sécuriser les DNS

Comment installer et configurer DNSCrypt sur Linux

Sur Debian, Mint, Ubuntu par APT (Méthode 1)

La première méthode destiné à Debian, Mint ou Ubuntu, consiste à utiliser APT.

sudo apt update
sudo apt install dnscrypt-proxy
Comment installer et configurer DNSCrypt sur Debian, Mint, Ubuntu par APT
  • Puis saisissez la commande suivante :
sudo vim /etc/dnscrypt-proxy/dnscrypt-proxy.toml
Comment installer et configurer DNSCrypt sur Debian, Mint, Ubuntu par APT

Vous pouvez laisser listen_addresses vide mais si vous désirez forcer les adresses, voici la syntaxe :

listen_addresses = ['127.0.2.1:5350', '[::2]:5350']

Puis on déclare les serveurs DNS avec le nom du service, par exemple pour utiliser les DNS Cloudflare :

server_names = ['cloudflare']
La liste des services DNS supportés est disponible à cette adresse : Liste des serveurs publics DNSCrypt, DoH

Facultatif sur Ubuntu, si vous désirez supprimer le résolveur DNS par défaut pour remplacer par DNSCrypt, passez les commandes suivantes :

sudo systemctl disable systemd-resolved.service
sudo systemctl stop systemd-resolved.service

Manuellement (Méthode 2)

Dans cette seconde méthode, on télécharge directement les binaires DNSCrypt.

  • On télécharge l’archive par wget :
cd /opt
sudo wget https://github.com/DNSCrypt/dnscrypt-proxy/releases/download/2.1.2/dnscrypt-proxy-linux_i386-2.1.2.tar.gz
La liste des versions est disponible à cette adresse, si vous souhaitez changer d’architecture, par exemple pour un raspberry : https://github.com/DNSCrypt/dnscrypt-proxy/releases/
Comment installer et configurer DNSCrypt sur Linux
  • Puis on décompresse le tout à l’aide de la commande tar
  • Ensuite on se rend dans le répertoire dnscrypt-proxy
sudo tar -xvf dnscrypt-proxy-linux_i386-2.1.2.tar.gz
sudo mv linux-i386/ dnscrypt-proxy && cd dnscrypt-proxy
Comment installer et configurer DNSCrypt sur Linux
  • Puis on copie le fichier de configuration exemple et on l’édite :
sudo cp example-dnscrypt-proxy.toml dnscrypt-proxy.toml
sudo vim dnscrypt-proxy.toml
  • Depuis ce dernier, on peut déclarer le service DNS à utiliser à travers l’option server_names
La liste des services DNS supportés est disponible à cette adresse : Liste des serveurs publics DNSCrypt, DoH
Comment installer et configurer DNSCrypt sur Linux
  • Enregistrez les modifications puis fermez l’éditeur
  • Pour valider la configuration :
./dnscrypt-proxy -check
  • Et pour installer le service :
sudo ./dnscrypt-proxy -service install
sudo ./dnscrypt-proxy -service start
Comment installer et configurer DNSCrypt sur Linux
  • Enfin pour démarrer le service DNSCrypt avec systemctl :
systemctl start dnscrypt-proxy

Comment configurer les DNS DNSCrypt dans Linux

Une fois que DNSCrypt fonctionne, il faut modifier la configuration DNS dans Linux pour la faire résoudre via ce dernier.

par NetworkManager

Dans la première méthode, on se rend dans les paramètres > réseau en graphique.
Puis on saisit l’adresse du serveur DNS (par défaut sur Ubuntu à l’adresse 127.0.2.1)

Comment configurer les DNS DNSCrypt dans Linux

Puis on relance le service NetworkManager :

sudo systemctl restart NetworkManager.service

Par le fichier resolv.conf

L’autre solution plus simple est d’éditer le fichier vim /etc/resolv.conf

sudo vim /etc/resolv.conf

Puis remplacer le serveur DNS dans la directive nameserver :

nameserver 127.0.2.1
Comment configurer les DNS DNSCrypt dans Linux

Comment tester la sécurité DNS

Enfin vous pouvez valider la configuration et vérifier si Secure DNS est bien pris en compte.
Pour cela, aidez vous de ce tutoriel : Comment tester les DNS (fuites DNS, Sécurité DNS)

Lorsque la résolution DNS est faites via DNSCrypt, Secure DNS et DNSSec doivent être pris en compte par le système.

Comment tester la sécurité DNS par DNSCrypt
Comment tester la sécurité DNS par DNSCrypt