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.

Optionnellement dnscrypt-proxy-plugins, donne beaucoup de contrôle sur le trafic DNS local:

* 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. 8-)

Pour configurer dnscrypt-proxy, procédez comme suit:

Un exemple de fichier de configuration, /etc/dnscrypt-proxy.conf.example est fourni mais notez que sytemd outrepasse l'option 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
* Une liste potentiellement plus à jour est disponible directement sur la page Github du projet

* À 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 ! FIXME

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

Local DNS cache configuration

Dnscrypt peut mettre en cache les entrées sans compter sur un autre programme. Assurez-vous que 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

La modification de l'adresse IP ou du port dans /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
Le port UDP 5353 est utilisé par Avahi (si installé et en cours d'exécution) et peut provoquer des avertissements dans le journal

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
Si vous configurez un serveur, ajoutez l'interface: 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

Dnscrypt fonctionne avec les privilèges root

à venir

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.

—- Contributeurs principaux : deobs.

Basé sur A protocol to improve DNS security par https://github.com/jedisct1 mainteneur actuel.

  • dnscrypt.1501594187.txt.gz
  • Dernière modification: Le 01/08/2017, 15:29
  • par deobs