Outils pour utilisateurs

Outils du site


issue137:tutoriel1

Version: dnscrypt-proxy 1.9.5 Web: version 2.0.15 has been released, but Ubuntu 18.04 still uses 1.9.5 Chat: The official URL / Link is: #dnscrypt-proxy:matrix.org I am a private person, I do not like my privacy invaded. This is one of the main reasons I use Linux. Today I am going to show you how to set up DNScrypt on Ubuntu 18.04. Take that, Mr ISP, and anyone else trying to map your internet usage!

Version : dnscrypt-proxy 1.9.5

Web : la version 2.0.15 est sortie, mais Ubuntu 18.04 utilise encore la 1.9.5

Chat : l'URL/lien officiel est : #dnscrypt-proxy:matrix.org

Je suis une personne privée, et je n'aime pas que ma vie privée soit envahie. C'est une des principales raisons pour lesquelles j'utilise Linux.

Aujourd'hui, je vais vous montrer comment paramétrer DNSCrypt sur Ubuntu 18.04. Prenez ça, M. ISP, ainsi que toute autre personne essayant de suivre mon usage d'Internet !

Whether you like it or not, you are a commodity, you are being bought and sold all over the world. Let’s improve your security and privacy by following this guide. DNSCrypt turns regular DNS traffic into encrypted DNS traffic that secures you from eavesdropping and man-in-the-middle attacks. Just like HTTPS now secures your internet traffic, DNScrypt secures your DNS traffic. (That said, it is not a complete solution.) Let me tell you more about the protocol. Those of you who have no interest in this can skip to the next section. I promise to keep this section short. DNSCrypt is a protocol that authenticates communications between a DNS client and a DNS resolver.

Que vous aimiez ça ou non, vous êtes une marchandise ; vous êtes achetés et vendus partout dans le monde. Améliorez votre sécurité et le respect de votre vie privée en suivant ce guide.

DNSCrypt transforme le trafic DNS normal en trafic DNS chiffré, ce qui vous protège contre les attaques par écoute clandestine (eavesdropping) et « homme-au-milieu » (man-in-the-middle). De la même façon que HTTPS protège maintenant votre trafic sur Internet, DNSCrypt sécurise votre trafic DNS. (Cela dit, ce n'est pas une solution complète).

Laissez-moi vous en dire plus sur le protocole. Ceux d'entre vous qui n'y trouvent aucun intérêt peuvent passer à la section suivante. Je vous promets que cette section sera courte. DNSCrypt est un protocole qui authentifie les communications entre un client DNS et un « resolver » (une sorte de bibliothèque) DNS.

The DNScrypt protocol works on both TCP connections and UDP connections. The default HTTPS port is 443, and this is what DNScrypt uses also. This will let it pass through most firewalls unhindered. For those of you interested, you can find a list of ports here: http://www.hostingreviewbox.com/rhel-tcp-and-udp-ports/ Both the client and the resolver initially generate a temporary key pair for each supported encryption system. Each certificate includes a validity period, a serial number, a version that defines a key exchange mechanism, an authenticated encryption algorithm and its parameters, as well as a short-term public key, known as the resolver public key. So… From your computer or laptop (client), a DNSCrypt session begins with the client sending a non-authenticated DNS query to a DNSCrypt-enabled resolver, such as OpenDNS.

Le protocole DNSCrypt fonctionne avec les connexions TCP et UDP. Le port HTTPS par défaut est 443, et DNSCrypt l'utilise aussi. Celui-là le laissera passer sans entrave à travers la plupart des pare-feux. Pour ceux d'entre vous qui sont intéressés, vous pouvez trouver une liste des ports ici : http://www.hostingreviewbox.com/rhel-tcp-and-udp-ports/

Le client comme le resolver génèrent initialement une paire de clés temporaires pour chaque système de chiffrage pris en charge. Chaque certificat comprend une période de validité, un numéro de série, une version qui définit un mécanisme d'échange de clés, un algorithme authentifié de chiffrage et ses paramètres, ainsi qu'une clé publique à courte durée de vie, appelée la clé publique du resolver.

Voilà… Depuis votre ordinateur ou portable (client), une session DNSCrypt commence quand le client envoie une requête DNS non authentifiée à un resolver activé pour DNSCrypt, tel que OpenDNS.

This DNS query encodes the certificate versions supported by the client, as well as a public identifier of the provider requested by the client. The server (resolver) responds with a public set of signed certificates, that must be verified by the client using a provider public key. Each certificate includes a “magic number” that the client must prefix all of its queries with, for the resolver to know what certificate was chosen by the client before it does anything. The encryption algorithm, resolver public key and client magic number from the chosen certificate are then used by the client to send encrypted queries. These queries include the client public key.

Cette requête DNS encode les versions de certificats prises en charge par le client, ainsi qu'un identifiant public du fournisseur demandé par le client.

Le serveur (resolver) répond avec un jeu de certificats publics signés, qui doivent être vérifiés par le client en utilisant une clé publique du fournisseur.

Chaque certificat comprend un « nombre magique » que le client doit préfixer sur toutes ses requêtes, pour que, avant de faire quoi que ce soit, le resolver sache quel certificat a été choisi par le client.

L'algorithme de chiffrage, la clé publique du resolver et le nombre magique du client tirés du certificat choisi sont ensuite utilisés par le client pour envoyer des requêtes chiffrées. Ces requêtes contiennent la clé publique du client.

Using this client public key, and knowing which certificate was chosen by the client as well as the relevant secret key, the resolver verifies and decrypts the query, and encrypts the response the same way. DNScrypt is not to be confused with DoH, (not the arkanoid one) which is DNS over HTTPS. This is a project by the Mozilla foundation. If you are not 100% sure of your command line fu, please backup every file you edit, BEFORE EDITING! Open a terminal and type the following: sudo apt-get install dnscrypt-proxy Type in your password and let it finish. Then: sudo sed -i 's/fvz-anyone/cisco/g' /etc/dnscrypt-proxy/dnscrypt-proxy.conf

En utilisant cette clé publique du client et en sachant quel est le certificat choisi par le client ainsi que la clé secrète correspondante, le resolver vérifie et déchiffre la requête et chiffre la réponse de la même façon.

DNSCrypt ne doit pas être confondu avec DoH (pas celui d'arkanoid), qui est un DNS sur HTTPS. Ceci est un projet de la fondation Mozilla.

Si vous ne maîtrisez pas la ligne de commande à 100 %, merci de sauvegarder les fichiers que vous voulez modifier, AVANT de les modifier !

Ouvrez un terminal et saisissez ce qui suit :

sudo apt-get install dnscrypt-proxy

Entrez votre mot de passe et laissez l'action se terminer.

Puis :

sudo sed -i 's/fvz-anyone/cisco/g' /etc/dnscrypt-proxy/dnscrypt-proxy.conf

Explanation: sed is a stream editor, the s denotes substitution, the g means globally. The “-i” switch means in place. S, first we have the expression we want to substitute followed by what we want to replace it with, then immediately followed by the file path. The first line changes the default resolver from fvz-anyone to cisco. You do not have to choose Cisco, there are many resolvers, but I will use Cisco in the example. A list of resolvers can be found here: https://github.com/dyne/dnscrypt-proxy/blob/master/dnscrypt-resolvers.csv You can of course also do it manually: sudo nano /etc/dnscrypt-proxy/dnscrypt-proxy.conf Change the text 'ResolverName fvz-anyone' to 'ResolverName cisco'

Explication : sed est un éditeur de flux, le s indique une substitution, le g veut dire globalement. Le commutateur « -i » signifie à la place. Après s, nous avons, d'abord, l'expression que nous voulons remplacer, suivie par celle qui la remplacera, puis immédiatement suivie par le chemin du fichier. La première ligne remplace le resolver par défaut fvz-anyone par cisco. Vous n'êtes pas obligé de choisir Cisco ; il y a de nombreux resolvers, mais j'ai choisi Cisco pour cet exemple. Une liste de resolvers peut être trouvée ici : https://github.com/dyne/dnscrypt-proxy/blob/master/dnscrypt-resolvers.csv

Vous pouvez, bien sûr, le faire aussi à la main :

sudo nano /etc/dnscrypt-proxy/dnscrypt-proxy.conf

Remplacez le texte « ResolverName fvz-anyone » par « ResolverName cisco ».

Do not change the local address. As with all edits in the /etc folder, make a backup of the file first! Now that you understand the syntax of sed, let’s continue: sed -i 's/127.0.2.1/127.0.0.1/g' /lib/systemd/system/dnscrypt-proxy.socket Let us check to see if it is correct: grep '127' /lib/systemd/system/dnscrypt-proxy.socket You should see the following: ListenStream=127.0.0.1:53 ListenDatagram=127.0.0.1:53 In previous versions of Ubuntu, you simply had to point your DNS entry in network manager to 127.0.2.1. In 18.04, we need to change it to 127.0.0.1 (localhost), however bionic beaver is not happy with this.

Ne modifiez pas l'adresse locale. Comme pour toutes les modifications dans le répertoire /etc, faites d'abord une sauvegarde du fichier !

Maintenant que vous comprenez la syntaxe de sed, continuons :

sed -i 's/127.0.2.1/127.0.0.1/g' /lib/systemd/system/dnscrypt-proxy.socket

Vérifions pour voir si tout est correct :

grep '127' /lib/systemd/system/dnscrypt-proxy.socket

Vous devriez voir ceci :

ListenStream=127.0.0.1:53

ListenDatagram=127.0.0.1:53

Dans les versions précédentes d'Ubuntu, vous deviez simplement faire pointer votre entrée DNS dans le gestionnaire de réseau vers 127.0.2.1. Dans la 18.04, nous devons le changer en 127.0.0.1 (localhost) ; cependant, bionic beaver n'aime pas cela.

Now, let’s use systemd to stop and start the services, etc: sudo systemctl daemon-reload sudo systemctl stop dnscrypt-proxy.socket sudo systemctl start dnscrypt-proxy sudo systemctl disable systemd-resolved.service sudo systemctl stop systemd-resolved.service sudo systemctl disable systemd-resolved sudo systemctl stop systemd-resolved At this stage you may lose your internet connection.

Maintenant, utilisons systemd pour démarrer et arrêter les services, etc. :

sudo systemctl daemon-reload

sudo systemctl stop dnscrypt-proxy.socket

sudo systemctl start dnscrypt-proxy

sudo systemctl disable systemd-resolved.service

sudo systemctl stop systemd-resolved.service

sudo systemctl disable systemd-resolved

sudo systemctl stop systemd-resolved

À ce stade, vous pouvez perdre votre connexion à Internet.

If you desperately need a connection before we continue to the next part, simply type the following: sudo nano /etc/resolv.conf You will see Ubuntu has changed the nameserver to 127.0.0.53; don’t worry, simply change it to 127.0.0.1 and save it. Should you still not have a connection, change it to 1.1.1.1, this should resolve your connection problem. Just remember that by changing it to 1.1.1.1, you are NOT using the DNScrypt proxy, rather Cloudflare directly. This issue is speedily rectified by installing and configuring unbound. Unbound is a validating, recursive, and caching DNS resolver. apt-get install unbound Once it finishes, add “dns=unbound” in the [main] section in NetworkManager.conf sudo nano /etc/NetworkManager/NetworkManager.conf

Si vous avez désespérément besoin d'une connexion avant de passer à l'étape suivante, saisissez simplement ce qui suit :

sudo nano /etc/resolv.conf

Vous verrez qu'Ubuntu a changé le « nameserver » (serveur de nom) en 127.0.0.53 ; ne vous inquiétez pas, changez-le simplement en 127.0.0.1 et sauvegardez-le. Si vous n'avez toujours pas de connexion, remplacez-le par 1.1.1.1 ; ceci devrait résoudre votre problème de connexion. Toutefois, rappelez-vous qu'en le changeant en 1.1.1.1, vous n'utilisez PAS le proxy DNSCrypt, mais directement Cloudflare.

Ce problème est rapidement rectifié en installant et en configurant unbound. Unbound est un resolver DNS de validation, avec une cache et récursif.

apt-get install unbound

Une fois terminé, ajoutez « dns=unbound » dans la section [main] de NetworkManager.conf.

sudo nano /etc/NetworkManager/NetworkManager.conf

Under the [main] section, there should already be: plugins=ifupdown,keyfile Just add dns=unbound below it. Save and exit nano. Now let us enable unbound, then reboot to finish: sudo systemctl enable unbound-resolvconf sudo systemctl enable unbound Close your terminal and reboot, making sure all your work is saved first.

Dans la section [main], il devrait y avoir :

     plugins=ifupdown,keyfile

Ajoutez dns=unbound en dessous.

Sauvegardez et sortez de nano.

Maintenant, activons unbound, puis redémarrons pour finir :

sudo systemctl enable unbound-resolvconf

sudo systemctl enable unbound

Fermez votre terminal et redémarrez, en vous assurant d'abord que tout votre travail est sauvegardé.

After rebooting, let us test our handiwork. Open a browser and go to: https://welcome.opendns.com/ You should see a check mark. Now open a terminal again and type: nslookup -type=txt debug.opendns.com The last indented line should tell you if dnscrypt is enabled. Let’s look locally: sudo lsof -i -n | grep -i dnscrypt TCP and UDP should both point to 127.0.0.1

Après le redémarrage, nous allons tester notre travail.

Ouvrez un navigateur et allez à : https://welcome.opendns.com/ Vous devriez voir une coche.

Maintenant, ouvrez à nouveau un terminal et saisissez :

nslookup -type=txt debug.opendns.com

La dernière ligne indentée devrait vous dire si dnscrypt est activé.

Regardons localement :

sudo lsof -i -n | grep -i dnscrypt

TCP et UDP devraient pointer tous les deux vers 127.0.0.1.

Let’s get a quick overview of unbound and a link to more information. Unbound is an alternative to BIND – aiming to be faster and more secure. Unbound is open source. Website: https://www.unbound.net/ You can find out more here: https://jpmens.net/2010/10/29/alternative-dns-servers-the-book-as-pdf/ The book is available free of charge.

Voici une brève description de undbound et un lien pour de plus amples informations.

Unbound est une alternative à BIND, se voulant plus rapide et plus sûr. Unbound est Open Source.

Site Web : https://www.unbound.net/

Vous en trouverez plus ici : https://jpmens.net/2010/10/29/alternative-dns-servers-the-book-as-pdf/

L'ouvrage est disponible gratuitement.

issue137/tutoriel1.txt · Dernière modification : 2018/10/12 15:07 de auntiee