Modifier ses résolveurs DNS
En cette période où le DNS est sous les projecteurs, voici un petit tutoriel pour vous expliquer comment changer vos résolveurs DNS sous Windows, GNU/Linux, Mac OS X, Android et iOS.
Qu’est-ce que le DNS ?
Le DNS signfie Domain Name System en anglais, soit Service de Noms de Domaine.
Son utilité principale est de transformer un nom de domaine (domain.tld, sous.domaine.tld) en une adresse IP ( 123.123.123.123 pour une adresse IPv4).
Ce service est donc indispensable à tous les usagers d’internet.
Par défaut vous utilisez les résolveurs DNS de votre FAI (Fournisseur d’Accès à Internet).
Pour savoir quels serveurs vous utilisez actuellement vous pouvez utiliser un site comme DNS leak test. Si vous êtes chez Free, vous aurez quelque chose comme cela :
Quels serveurs DNS utiliser ?
Pourquoi devrait-on se poser cette question ? Parce que comme tout ce qui est sur internet, les serveurs ont des logs (des journaux) qui contiennent beaucoup d’informations: adresse IP, date, requête…
Un log de résolveur DNS peut donc savoir qui fait quelle requête, quand.
Et qui mieux que votre FAI connaît la relation entre une adresse IP et une personne physique ?
Vous voyez le problème ? Les logs des résolveurs DNS sont presque aussi complet que l’historique de votre navigateur !
Il y a aussi un autre problème : les résolveurs DNS menteurs. On a pu le voir avec ThePirateBay ou encore plus récemment T411, deux sites qui proposent entre-autre du contenu gratuitement sans respecter les droits s’appliquant sur ce contenu. Hadopi étant inutile, le gouvernement a demandé aux FAI français de faire mentir leurs résolveurs DNS sur ces domaines. Les FAI n’oseraient surtout pas se mettre à dos l’état Français 😉
En soit, ce blocage est aussi inutile, puisqu’il suffit de changer ses résolveurs DNS pour accéder de nouveau à ces sites.
De nombreux sites profitent du « blocage » de ces sites connus pour ramener des visiteurs sur leurs sites en leur expliquer comment contourner ce blocage, et bien souvent ils proposent les résolveurs DNS de Google.
Là encore, très mauvaise idée ! Google sait déjà tellement de choses sur vous, et même si vous êtes utilisateur de Chrome (Shame on you), et que Google connaît déjà votre historique web et vos mots de passe, ce n’est pas une raison pour leur en donner plus.
À une époque, les serveurs de noms OpenDNS étaient recommandables, mais la société (américaine) a été rachetée par Cisco, fabriquant de matériel réseau ayant déjà collaboré avec la NSA (bon plan, hein ? 🙂 )
Le meilleur résolveur DNS est votre propre ordinateur, mais ce n’est pas à la portée de tout le monde, et nous en reparlerons dans un prochain article. Une bonne idée est aussi d’installer un résolveur DNS pour son réseau local, mais là encore, ce n’est pas l’affaire de quelques minutes.
Je vous conseille donc résolveurs DNS public de la FDN (French Data Network), un FAI associatif. Ils sont compatibles IPv4 et IPv6, vous trouverez leurs adresses ici.
Il y a également OpenNIC, qui se veut être une alternative démocratique à l’ICANN (Société pour l’attribution des noms de domaine et des numéros sur Internet). Ou encore dns.watch.
Vous pouvez trouver les résolveurs DNS OpenNIC les plus proches de chez vous sur leur site.
Changer ses DNS
Sous Windows
Sous Windows, on doit modifier les résolveurs DNS sur chaque carte/périphérique réseau (carte wifi, carte Ethernet, clé wifi…)
Allez dans Panneau de configuration > Réseau et Internet > Centre Réseau et partage > modifier les paramètres de la carte.
Choisissez la carte :
Cliquez sur IPv4 puis propriétés :
Et insérez les 2 résolveurs DNS :
Sous GNU/Linux
Il y a deux manières de changer ses DNS sous Linux.
Vous pouvez soit changer via l’interface graphique, connexion par connexion, soit en ligne de commande, pour toutes les connexions et toutes les interfaces.
Via l’interface Graphique
Allez dans paramètres > connexions réseau et choisissez le réseau pour lequel vous souhaitez changer vos résolveurs DNS, puis « modifier ».
Ensuite, allez dans « Paramètres IPv4 », puis mettez les deux adresses IP des serveurs DNS séparées par une virgule :
Cliquez sur enregistrer, et c’est bon.
En ligne de commande
Si vous êtes sous Ubuntu, vous devez supprimer les paquets resolvconf et unbuntu-minimal, sinon les résolveurs DNS par défaut vont revenir au reboot.
Éditez le fichier /etc/resolv.conf en tant que root :
sudo nano /etc/resolv.conf
Supprimez les lignes déjà présentes ou ajoutez un # en début de ligne pour qu’elles ne fassent plus effet.
Ajoutez ceci :
nameserver IP1 nameserver IP2
IP1 et IP2 étant les deux serveurs DNS.
Votre fichier devrait ressembler à ceci :
Ensuite, saisissez cette commande :
sudo chattr +i /etc/resolv.conf
Cela va empêcher toute modification du fichier. Sinon, il va être régénéré au boot.
Si jamais vous souhaitez modifier à nouveau le fichier :
sudo chattr -i /etc/resolv.conf
Si vous souhaitez utiliser OpenNIC j’ai créé un petit script qui le fera à votre place.
Sous Mac OS X
N’ayant pas de Mac, je me fie à cet article.
Allez dans préférences > réseau
Comme sous Windows, choisissez l’interface pour laquelle vous souhaitez changer de résolveurs DNS :
Allez dans l’onglet DNS
Puis ajoutez/supprimez vos résolveurs DNS.
Sous Android
Malheureusement, Android ne supporte pas la modification des résolveurs DNS nativement..
Pour moi, il n’y qu’une seule application qui a marché et c’est Engelsiz : DNS Changer.
Ouvrez l’application, allez dans « manual », ajoutez les deux résolveurs DNS séparément, puis cliquez sur le « v » à droite des deux IP.
Confirmez, et c’est bon ! 🙂
Edit : Une nouvelle application est disponible : DNS66. Elle fait aussi bloqueur et de pub et est open-source. Je vous la conseille.
Sous iOS
N’ayant plus d’appareil sous iOS, je me fie à cet article.
Vous devez aller dans Paramètres > Wi-Fi, puis appuyer sur la flèche bleue à côté du réseau.
Les captures d’écran datent d’avant iOS 7, mais la procédure reste la même 🙂
Dans la section DNS, mettez les deux adresses IP séparées par une virgule.
Box/Routeur
Par défaut, c’est le routeur auquel vous êtes connecté qui définie les résolveurs DNS à utiliser. Vous pouvez donc cherchez dans les paramètres de votre box ou de votre routeur si vous pouvez directement changer les serveurs DNS, afin d’éviter de refaire la manip’ sur chaque appareil.
Conclusion
Une fois vos modifications faites, n’oubliez pas d’aller vérifier vos résolveurs DNS sur DNS Leak Test.
D’autres articles sont à venir sur les résolveurs DNS (notamment pour GNU/Linux), cet article sert donc de base.
J’espère vous avoir éclairci sur ce qu’étaient le DNS et comment les modifier sur vos différents appareils. 🙂
Dernière modification le 17 décembre 2017.
Est il possible de les modifier en tapant ?
vim /etc/resolv.conf
Si tu es root, oui
Dans le cas où l’on se trouve avec ce message : chattr: Opération non supportée lors de la lecture des drapeaux sur /etc/resolv.conf
Que ce soit avec la méthode manuelle ou en utilisant le script cela ne fonctionne pas.
chattr +i /etc/resolv.conf
renvoi
chattr: Opération non supportée lors de la lecture des drapeaux sur /etc/resolv.conf
et le fichier /etc/resolv.conf est regénéré automatiquement à la réinitialisation de la connexion internet
La même opération en ajoutant nameserver directement dans /var/run/NetworkManager/resolv.conf, ne fonctionne pas.
Pour trouver la parade :
il faut tout simplement hors connexion (pour éviter une régénération de fichiers) supprimer resolv.conf dans /etc puis le recréer manuellement et rentrer les nameserver
et effectuer la commande chattr +i /etc/resolv.conf pour définir le bit d’immutabilité et empêcher l’accès. La suppression et la récréation manuelle du fichier resolv.conf est nécessaire.
Salut,
Je comprends pas.
Tu conseilles d’éviter les dns de Google, mais les nouveaux que tu édites sur iOS sont ceux de Google.
Pourquoi ne pas mettre au moins un de ceux des autres os ?
Salut,
Je ne comprends pas.
C’est indiqué juste en dessous du sous-titre.
Pourquoi ne pas lire ?
Lire que tu n’as pas d’appareil iOS ?
C’eut été plus judicieux de mettre un rappel que les DNS : 8.8.8.8 et 8.8.4.4 sont ceux de Google.
Tout le monde ne lit pas ton tuto en entier, on se dirige machinalement sur les OS qu’on possède.
Perso, je n’ai aucun Android, donc, je saute son passage.
À part ça, j’ai feuilleté quelques uns de tes sujets, c’est vraiment pas mal, bravo !
Y’a un paragraphe entier sur quels serveurs utiliser, je peux pas faire mieux 🙁
Merci !
Bonjour et merci pour ce tuto.
J’essaye d’utiliser votre serveur DNS hébergé chez OVH.
J’ai un message d’erreur quand je fais chattr ou lsattr :
« chattr: Opération non supportée lors de la lecture des drapeaux sur /etc/resolv.conf ».
– /etc est sur une partition ext4 qui normalement supporte chattr +i
– Je suis sur Debian8/testing
Si quelqu’un a une idée pour m’aider à avancer sur le sujet, elle est bienvenue.
Merci encore.
Je viens d’essayer avec l’option -f et ça fonctionne 🙂 (ça m’intéresse de savoir pourquoi il me faut le -f si quelqu’un sait)
Salut, aurais-tu le paquet resolvconf d’installé par hasard ?
Salut, non, resolvconf n’est pas installé. Quand je fais lsattr sur /etc j’ai le même message d’erreur pour plusieurs fichiers (printcap, localtime, mtab, os-release et resolv.conf).
Tu peux faire ça aussi dans ton script (voir man echo) :
echo -e « nameserver $ns1nnameserver $ns2 » >> /etc/resolv.conf
Tcho !
Merci de l’astuce 😀
Hello,
Petite erreur. Si jamais vous souhaitez modifier à nouveau le fichier : sudo chattr -i /etc/resolv.conf
Concernant ton script chattr -i /etc/resolv.conf est réellement nécessaire ? De base je ne l’ai jamais vu « immutable » sur Ubuntu/Debian en tout cas.
Tcho !
Corrigé, merci !
Tu n’est pas le premier à me faire cette remarque. En effet de base le fichier est toujours modifiable, mais je l’ai mis parce que « on sait jamais ». Cela ne change en rien l’exécution du script 🙂