Ceci est une ancienne révision du document !
DNSCrypt
DNSCrypt est un protocole qui authentifie les communications entre un client DNS et un résolveur DNS. Cela empêche la falsification 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é falsifiées.
C'est une spécification ouverte, avec des implémentations de référence gratuites et opensource, et elle n'est affiliée à aucune entreprise ni organisation.
Pré-requis
- Disposer des droits d'administration.
- Disposer d'une connexion à Internet configurée et activée.
Installation
- installez le paquet dnscrypt-proxy
* Passez en revue le trafic DNS provenant de votre réseau en temps réel et détectez les hôtes et applications compromises.
* Bloque localement les publicités, les trackers, les logiciels malveillants, les spams et tout site Web dont les noms de domaine ou les adresses IP correspondent à un ensemble de règles que vous définissez.
* Empêcher que les requêtes concernant les zones locales soient divulguées.
* Réduire la latence en cas de mise en cache des réponses et éviter de demander des adresses IPv6 sur les réseaux IPv4 uniquement.
* Forcer le trafic à utiliser TCP, pour l'acheminer via des tunnels TCP uniquement ou Tor.
Configuration
Pour configurer dnscrypt-proxy, procédez comme suit:
LocalAddress
par un fichier socket
Sélectionnez le résolveur
Sélectionnez un résolveur à partir de /usr/share/dnscrypt-proxy/dnscrypt-resolvers.csv
et modifiez /etc/dnscrypt-proxy.conf
, en utilisant un nom abrégé de la première colonne du fichier csv. Par exemple, pour sélectionner dnscrypt.eu-nl
comme résolveur:
ResolverName dnscrypt.eu-nl
* À ce stade, vous pouvez également ajouter un utilisateur non privilégié pour exécuter dnscrypt. Voir Dépannage
Modifiez le resolv.conf
Après avoir sélectionné un résolveur dnscrypt, modifiez le fichier resolv.conf et remplacez l'ensemble actuel d'adresses de résolveur par une adresse pour localhost:
nameserver 127.0.0.1
attention, d'autres programmes peuvent remplacer ce paramètre !
Démarrer le service systemd
Enfin, démarrez et activez le service dnscrypt-proxy.service
.
sudo systemctl enable dnscrypt-proxy.service
sudo systemctl start dnscrypt-proxy.service
Trucs et astuces
Local DNS cache configuration
LocalCache
on est dans votre fichier de configuration dnscrypt pour activer cette fonctionnalité.
Il est recommandé d'exécuter DNSCrypt en tant que redirecteur pour un cache DNS local si vous n'utilisez pas la fonctionnalité de cache de dnscrypt; sinon, chaque requête fera un aller-retour vers le résolveur en amont. Tout programme de mise en cache DNS local devrait fonctionner. En plus de configurer dnscrypt-proxy, vous devez configurer votre programme de cache DNS local.
Changer le port
/etc/dnscrypt-proxy.conf
ne fonctionne pas avec systemd et doit être modifiée dans le socket systemd fourni de la manière suivante.
Afin de transférer vers un cache DNS local, dnscrypt-proxy doit écouter sur un port différent du port 53 pardéfaut, car le cache DNS lui-même doit écouter sur le port 53 et interroger dnscrypt-proxy sur un autre port. Le numéro de port 5353
est utilisé à titre d'exemple dans cette section. Dans cet exemple, le numéro de port est supérieur à 1024, de sorte que dnscrypt-proxy
n'est pas a être exécuté par root. Modifiez dnscrypt-proxy.socket
avec le contenu suivant:
[Socket] ListenStream= ListenDatagram= ListenStream=127.0.0.1:5353 ListenDatagram=127.0.0.1:5353
Example de configurations local DNS cache
Les configurations suivantes devraient fonctionner avec dnscrypt-proxy et assume qu'il écoute sur le port 5353
.
Unbound
Configurez Unbound à votre convenance et ajoutez les lignes suivantes à la fin de la section server
dans /etc/unbound/unbound.conf
:
do-not-query-localhost: no forward-zone: name: "." forward-addr: 127.0.0.1@5353
interface: 0.0.0.0@53
et access-control: your-network/subnet-mask allow
dans la section server:
section afin que les autres ordinateurs puissent se connecter au serveur. Un client doit être configuré avec nameserver address-of-your-server
dans /etc/resolv.conf
.
Ensuite redémarrez unbound.service pour appliquer les modifications:
sudo systemctl restart unbound.service
dnsmasq
Configurez dnsmasq en tant que cache DNS local. La configuration de base dans /etc/dnsmasq.conf
pour fonctionner avec DNSCrypt:
no-resolv server=127.0.0.1#5353 listen-address=127.0.0.1
Si vous avez configuré DNSCrypt pour utiliser un résolveur avec la validation DNSSEC activée, assurez-vous de l'activer également dans /etc/dnsmasq.conf
:
proxy-dnssec
Redémarrez dnsmasq.service pour appliquer les modifications:
sudo systemctl restart dnsmasq.service
Anomalies
Dnscrypt fonctionne avec les privilèges root
à venir
Désinstallation
Pour supprimer cette application, il suffit de supprimer les paquets dnscrypt-proxy et dnscrypt-proxy-plugins. Selon la méthode choisie, la configuration globale de l'application est conservée ou supprimée. Les journaux du système, et les fichiers de préférence des utilisateurs dans leurs dossiers personnels sont toujours conservés.
Voir aussi
—- Contributeurs principaux : deobs.
Basé sur A protocol to improve DNS security par https://github.com/jedisct1 mainteneur actuel.