Lors de l’utilisation d’un VPN pour se connecter sur internet, vous utilisez les serveurs DNS de ce dernier. Hors, il peut y avoir une fuite DNS (DNS leak). Aussi voici comment corriger le problème de fuite DNS avec OpenVPN sous Linux Mint et Ubuntu.
Table des matières
Qu’est qu’un serveur DNS ?
DNS est l’abréviation de Domain Name System. Un serveur DNS (DNS resolver) est un système qui permet la conversion d’une adresse internet (www.nomdedomaine.ext) en une adresse IP (adresse physique des machines connectées à un réseau). On appelle ça aussi la résolution de nom de domaine. Et les noms de domaine sont plus facilement manipulables pour les humains que les adresses IP. C’est donc une sorte d’annuaire.
Aussi, le choix du serveur DNS a son importance. En effet, comme à chaque fois que vous tapez une adresse internet, il est interrogé, il connaît donc tous les sites que vous visitez et pourrait conserver ses informations pour diverses raisons. Mais ce n’est pas tout. Il pourrait vous interdire l’accès à certains sites web en ne faisant pas la redirection entre le nom et l’adresse réelle d’un site…
Généralement, par défaut, vous utilisez ceux de votre fournisseur d’accès internet (FAI), mais vous pouvez aussi en changer. (cf. Comment changer de DNS dans Linux Mint)
Aussi, les services VPN qui veulent protéger votre anonymat sur internet, proposent généralement leurs propres serveurs DNS. Mais pour que cela soit efficace, il faut éviter la fuite DNS encore appelé DNS leak.
Qu’est que la fuite DNS ou DNS leak ?
Le DNS leak est le fait qu’une partie ou la totalité des requêtes qui devraient aller vers le serveur DNS de votre VPN va vers un autre serveur en dehors du VPN.
Plusieurs raisons peuvent être responsables de cela. Une des raisons vient du fait que votre ordinateur n’a pas remplacé les DNS par défaut par ceux de votre VPN (par exemple un problème de cache DNS sous Windows ou de resolv.conf non réécrit sous Linux).
Vous pouvez tester si votre connexion VPN est sujet à des fuites en allant sur https://dnsleaktest.com/ et en lançant un test étendu (Extended test).
Le résultat devrait indiquer le DNS fourni par votre VPN. En cas de fuite, votre DNS par défaut (par exemple celui de votre FAI) apparaît.
Comment se protéger de la fuite DNS avec OpenVPN
OpenVPN est une solution libre pour créer un VPN. Il est généralement suggéré par les services VPN pour connecter les ordinateurs sous Linux à leur VPN. Sous Linux Mint, il est déjà installé et intégré au Gestionnaire Réseau.
Depuis une machine Ubuntu ou Linux Mint, si vous faites un test de DNS leak étendu (https://dnsleaktest.com/). Alors, vous verrez certainement qu’il y a des fuites DNS. Aussi, pour vous prévenir de cela :
Pour Linux Mint 18.x (mais aussi pour Ubuntu 16.04)
Lancer la commande suivante qui installera de nouveaux paquets pour la gestion DNS :
sudo apt install openresolv nscd unbound
Puis redémarrer votre ordinateur.
Maintenant, vous pouvez refaire un test, il ne devrait plus y avoir de fuite DNS.
Pour Linux Mint 19 (mais aussi pour Ubuntu 18.04)
Installer le paquet openvpn-systemd-resolved
:
sudo apt install openvpn-systemd-resolved
Généralement, les services VPN vous propose de télécharger un fichier .ovpn
à importer pour configurer la connexion. Avant d’importer ce fichier, il faut le modifier en ajoutant :
# This updates the resolvconf with dns settings
setenv PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
script-security 2
up /etc/openvpn/update-resolv-conf.sh
down /etc/openvpn/update-resolv-conf.sh
down-pr
Une fois le fichier .ovpn
modifié, pour utiliser le DNS fourni par votre VPN, il faut modifier aussi le fichier /etc/NetworkManager/system-connections/nom_de_votre_vpn
en ajoutant dns-priority=-1
dans la section [ipV4]
.
Pour modifier le fichier, vous pouvez faire dans un terminal :
sudo nano /etc/NetworkManager/system-connections/nom_de_votre_vpn
nom_de_votre_vpn
: étant à remplacer par le nom correspondant à votre connexion.
Utilisez les touches ← ↑ → ↓ pour déplacer le curseur. Une fois la ligne insérée, faites Ctrl + O pour sauvegarder la modification et Ctrl + X pour sortir.
Et redémarrez votre ordinateur.
Maintenant, vous pouvez refaire un test, il ne devrait plus y avoir de fuite DNS.
après un bon moment de recherche, une solution qui marche et qui plus est… très bien expliquée.
Merci
bonjour,
n’étant pas très coutumier de linux et de la ligne de commande, je ne sait pas ou ajouter les lignes recommandées dans le fichier de config fourni par mon fournisseur de vpn (nordvpn)… un petit exemple , peut être?
Bonjour Clodius,
Merci de cette suggestion qui pourra servir à d’autre 🙂 . Exemples ajoutés.
Salut,
Merci beaucoup pour ce tuto très bien expliqué, j’ai pu régler ce problème de fuite.
J’avoue être admiratif dont la façon vous faites vos tutos… simple, très bien expliqué le tout accompagné de captures d’écrans, ce qui permet de comprendre mieux et apprendre aussi.
Encore merci