--- date: 2017-07-27T13:47:18+02:00 description: "Comment sécuriser sa distribution GNU/Linux en utilisant dnscrypt" draft: false tags: ['Linux','Harden','dnscrypt'] title: "Durcir Linux : utiliser Dnscrypt" --- ## Description {{< note danger >}}Cet article est très probablement trop ancien, pour refléter l'actualité du logiciel **dnscrypt**. Il a été écrit en 2017, et non mis-à-jour. {{}} Nommé **Durcir Linux : utiliser dnscrypt** est un bien grand mot… en fait, nous n'allons pas durcir directement Linux, mais nous allons utiliser un petit outil, bien pratique, dont le but est de chiffrer les communications DNS ! **DNSCrypt** est un outil, à l'origine développé par [OpenDNS][1], qui maintenant a sa vie propre, au-travers du site : [dnscrypt.org][2]. Revenons en au but de ce petit outil, à savoir d’authentifier les communications DNS, entre votre client logiciel DNS, et les serveurs DNS que vous utilisez pour pouvoir surfer sur Internet. Il utilise des signatures cryptographiques pour communiquer. Il interroge des serveurs DNS publics, compatible avec l'outil. Il peut-être actif conjointement à votre serveur DNS cache local.
*pour cela, je vous renvoie à la documentation officielle* {{}}Bien comprendre que cela ne protège pas des failles dues à DNS. **dnscrypt authentifie le trafic DNS, avec un serveur DNS compatible**, et ainsi empêche qu'un serveur malintentionné se fasse passer pour un serveur authentique. **dnscrypt n'est pas non plus un service VPN**, et n'a pas l'intention de fournir de tels services, vous ne pouvez pas faire passer tous vos flux TCP/IP, ni UDP, à l'intérieur…
**Seules les requêtes DNS, sur les ports 53 et 443, en UDP.** Soyez avertis aussi que les serveurs DNS compatibles peuvent très bien journaliser votre trafic ! {{
}} Il fonctionne sur les protocoles IPv4 et IPv6. ## Installation Du côté de Debian, et assimilés, le client existe dans les dépôts officiels, pour toutes les versions de Debian, de stable à Sid. Du côté des \*Buntu, il existe les ppa suivants : * celui de [Xu Zhen][20], * ou mieux intégré, celui de [Pascal Mons][21] - *je me baserai sur ce dernier* à vous de les ajouter, puis de les installer. Sinon, vous attendez la future LTS [[http://packages.ubuntu.com/search?suite=xenial&searchon=names&keywords=dnscrypt|Xenial]], ou vous mettez-à-jour vers [[http://packages.ubuntu.com/search?suite=wily&searchon=names&keywords=dnscrypt|Willy]] ! ## Configuration Le fichier de configuration principal est situé dans `/etc/default/dnscrypt-proxy`. Vous y retrouverez différentes options faciles à comprendre ! ### Network Manager Pensez à bien modifier votre configuration dans l'outil Network Manager, et à paramétrer votre onglet [ Paramètres IPv4 ] en modifiant : * la méthode sur 'Adresses automatiques uniquement (DHCP)', * puis à écrire dans le champ 'Serveurs DNS', la valeur suivante '127.0.0.2', enregistrez ! ### /etc/network/interfaces Si vous n'utilisez pas Network Manager, modifiez directement votre fichier `/etc/network/interfaces`, en ajouter la mention : `dns-nameservers 127.0.0.2` dans ce cas, pensez à redémarrer votre réseau ! {{}}Oui, c'est bien l'adresse localhost `127.0.0.2`…
car l'outil `dnscrypt-proxy` travaille en relation avec `dnsmasq`, qui lui fonctionne, par défaut, sur l'adresse localhost normale. Celui de Xu Zhen, ce sera l'adresse localhost '127.0.0.1'. {{
}} ### Mise en garde {{< note warning >}}À ce propos, si vous changez l'option liée à l'utilisateur en changeant son nom, soit… c'est votre droit - mais pensez à supprimer celui créé par l'installateur, et à créer le vôtre dans les mêmes conditions, tel que : `# adduser --system --quiet --home /run/dnscrypt --shell /bin/false --group --disabled-password --disabled-login votre_user_dnscrypt` {{}} Cela est d'ailleurs indiqué dans le fichier de configuration ! Vous êtes libre de changer aussi son répertoire maison ; pensez à vérifier la création dudit répertoire, et à supprimer celui par défaut ! {{< note tip >}}Toutes les options que renferme le manpage lié à l'outil sont utilisables dans le fichier de configuration :
`$ man dnscrypt` Il suffit dans ce cas d'enlever les 2 symboles `--` qui les précédent. À ce propos, si vous avez la bonne idée d'utiliser l'option `logfile`, telle que `logfile=/var/log/dnscypt-proxy.log` et si vous utilisez `apparmor` aussi, il faudra changer le profil apparmor lié à l'outil, pour y ajouter la ligne suivante :
`/var/log/dnscypt-proxy.log rw,` {{}} Vous trouverez une liste des différents serveurs DNS compatibles, leurs noms, leurs adresses IP, leurs clés d'authentification, etc… dans le fichier `/usr/share/dnscrypt-proxy/dnscrypt-resolvers.csv`. Vous pouvez changer ces informations dans le fichier de configuration. --- [1]: https://www.opendns.com/about/innovations/dnscrypt/ [2]: https://dnscrypt.org [10]: https://packages.debian.org/search?suite=sid&searchon=names&keywords=dnscrypt [11]: https://packages.debian.org/search?suite=stretch&searchon=names&keywords=dnscrypt [20]: https://launchpad.net/~xuzhen666/+archive/ubuntu/dnscrypt [21]: https://launchpad.net/~anton+/+archive/ubuntu/dnscrypt [30]: https://github.com/jedisct1/dnscrypt-proxy/blob/master/dnscrypt-resolvers.csv