Table des matières
Se passer des mauvais serveurs DNS de Free
Ceci n'a rien à voir avec l'hébergement de site, mais concerne toute personne ayant Free comme fournisseur d'accès.
La raison d'agir
Les serveur DNS de Free sont mauvais. Ils répondent lentement lorsqu'on leur demande de résoudre des noms de domaines fréquemment consultés et très lentement s'il s'agit de nom de domaines rarement consultés. Cela peut aboutir à la non résolution de certains noms ! Résultat, même si tout fonctionne parfaitement par ailleurs, on constate un temps d'accès anormalement long à certaines pages. Dans le même ordre d'idées, certaines pages (complexes1)) mettent longtemps à s'afficher, entre le commencement et la fin. Enfin, certains sites semblent tout bonnement inaccessibles, laissant croire que le serveur web est en cause alors qu'il n'en est rien !
Si des outils de surveillance sont installés sur notre station de travail on reçoit des messages explicites tels que (message de SNORT) :
Unusual number of DNS No Such Name Responses
Deux approches
Pour éviter de recourir à des mauvais serveurs DNS on peut s'y prendre de plusieurs manières. La “bonne” manière de faire dépend de facteurs sur lesquels nous avons plus ou moins prise, en tant qu'utilisatrice : système d'exploitation, configuration réseau, contrôle de l'infrastructure… Je ne présente ici que deux approches que presque tout oppose, chacune étant illustrée par un cas d'utilisation.
Utiliser son propre serveur DNS
Dès qu'on peut la mettre en oeuvre, la meilleure démarche2) consiste à créer son propre serveur DNS.
Faire appel à des serveurs DNS publics
Pour remplacer les serveur DNS de Free, il faut faire appel à des serveurs DNS publics3). La plage d'adresses IP suivante permet d'accéder à six serveurs publics rapides et fiables : 4.2.2.1 - 4.2.2.6. Il suffit d'en choisir deux que l'on sélectionne en fonction de leur vitesse de réponse estimée.
ping 4.2.2.x
dig @4.2.2.x truc.tld
Répéter les commandes plusieurs fois. On lance dig avec des domaines différents, a priori peu demandés par les internautes (google.com étant le pire des choix). Il est normal qu'un écart significatif apparaisse entre le premier lancement d'une commande et ses répétitions, à l'identique.
Pour la suite, on suppose que notre premier choix est 4.2.2.5 et notre second choix est 4.2.2.3.
Cas N°1 : actions correctives au niveau d'un seul ordi
Ce cas est une illustration de mise en place de son propre serveur DNS, dans le cas d'un seul poste de travail. Je décris les étapes d'installation à appliquer dans le cas d'un ordi fonctionnant avec Linux-Debian4).
Installer le serveur DNS
L'installation du serveur DNS sur l'ordi, connecté à internet, s'obtient en tapant deux commandes dans un terminal :
# apt-get update # apt-get install bind9
Et voilà ! Par défaut, Debian installe bind en mode résolveur. C'est exactement ce que l'on souhaite.
En savoir plus : Debian Linux Set BIND 9 Caching DNS Server (en).
Limiter l'interrogation au poste local
si webmin est installé sur le poste :
- webmin > servers > bind > addresses and topology : Allow recursive queries, Listed .. , 127.0.0.1
ou éditer le fichier /etc/bind/named.conf.options :
allow-recursion {mynetworks;}; allow-query-cache {mynetworks;};
où mynetworks sera remplacé par vos valeurs (par ex. 127.0.0.1).
En savoir plus : Il est recommandé de fermer les serveurs DNS récursifs ouverts (fr).
Empêcher le client DHCP d'imposer le DNS du FAI
éditer le fichier /etc/dhcp/dhclient.conf :
#supersede domain-name "127.0.0.1"; #prepend domain-name-servers 127.0.0.1;
- prepend : ajoute le(s) serveur(s) indiqué(s) et leur donne la priorité sur ceux fournis par le serveur dhcp
- supersede : écrase les valeurs fournies par le serveur dhcp
Pour appliquer la modification, on a abandonne la concession (lease) et en demande une autre auprès du serveur dhcp :
# dhclient -v -r # dhclient -v
En savoir plus : Configuring Static DNS with DHCP on Debian/Ubuntu (en).
Cas N°2 : actions correctives au niveau du LAN
Ce cas est une illustration de la démarche faisant appel à des serveurs DNS publics.
Configuration
Le cas traité est celui d'une configuration en réseau local géré par un routeur Lynksys WRT54G, relié au port ethernet de la FreeBox. La fonction routeur de la FreeBox n'est pas activée. Le WRT54G est équipé du microcode 5) OpenSource DD-WRT. L'explication qui suit est valable pour la quasi-totalité des routeurs équipés du même microcode.
Le WRT54G fait office de serveur DHCP pour l'ensemble des stations du réseau local (la question des stations à IP fixe est traitée par le serveur dhcp). Le service dhcp peut être rendu par deux programmes différents. Par défaut, le WRT54G utilise udhcpd et ne fournit que le service dhcp. Une simple case à cocher permet de lui préférer le programme dnsmasq 6). Comme son nom l'indique ce programme fait également office de serveur DNS.
Dans ce dernier cas, le WRT54G fait office de relais DNS (forwarder) pour les postes informatiques du réseau local.
Routeur
Par défaut, le WRT54G obtient sa configuration internet par une requête DHCP auprès du réseau de Free. C'est ainsi que lui sont donnés les serveurs DNS de Free, comme serveurs par défaut. Lorsque les stations vont acquérir leur configuration internet, par dhcp, auprès du WRT54G, celui-ci va leur transmettre les seuls serveurs DNS qu'il connait : ceux de Free. Il faut donc écraser cette configuration par défaut de manière à ce que les stations récupèrent les bons serveurs DNS.
On écrase les serveurs par défaut en se rendant sur la page Setup→Basic Setup de l'interface web de configuration du WRT54G. Par défaut, les champs Static DNS 1, 2 et 3 contiennent l'adresse IP 0.0.0.0. Il suffit de remplacer les valeurs de Static DNS 1 et 2 par 4.2.2.5 et 4.2.2.3. Conserver l'ordre de classement issu de nos tests7). Enregistrer la configuation (save) et redémarrer le WRT54G en cliquant sur le bouton Reboot Router de la page Administration→Management.
dnsmask
Si le WRT54G est configuré pour utiliser dnsmask, les actions et leurs conséquences dépendent de l'activation - ou non - de la fonctionnalité relais DNS de ce programme.
Si le relais DNS n'est pas activé (Setup→Basic Setup→Use DNSMasq for DNS, case non cochée), on peut se contenter des réglages précédents. Toutefois, les postes se connectant par dhcp ne recevront que les deux serveurs DNS indiqués explicitement. Autrement dit, la valeur vierge de DNS 3 n'est pas remplacée par le premier DNS fournit par Free. Deux adresses de serveurs DNS fiables, c'est bien assez8) ! ;)
Si le relais DNS est activé, les postes se connectant par dhcp recevront l'adresse locale du WRT54G comme unique serveur DNS. L'important est alors de savoir quels sont les serveurs DNS utilisés par le WRT54G, puisque c'est lui qui réalise l'intégralité des requêtes DNS, pour tous les postes informatiques du réseau local. Il utilisera les valeurs indiquées dans DNS 1 et DNS 2. Si l'on tient à ce que cet ordre soit respecté, on se rend sur la page Services→Services. Dans la zone de saisie intitulée Additional DNSMasq Options, ajouter la ligne suivante :
strict-order
Enregistrer la configuration et redémarrer le routeur en cliquant sur le bouton Reboot Router de la page Administration→Management.
Station de travail
Chaque station de travail se connectant par DHCP reçoit du WRT54G sa liste des serveurs DNS qu'elle utilisera. Pour bénécifier immédiatement des modifications apportées au WRT54G, elle doit se reconnecter ; un résultat que l'on obtient avec les commandes classiques :
sudo ifdown br0 sudo ifup br0
où br0 désigne l'interface de raccordement de la station à internet9). En cas de doute, les résultats de la commande ifconfig permettent de voir quelle est l'interface concernée.
Si cette procédure ne fonctionne pas ou vous est incompréhensible, le plus sûr est de redémarrer la station10).
Changement temporaire unique
Sans toucher au WRT54G, on peut écraser temporairement les valeurs utilisées par une seule station de travail. Pour ce faire, on modifie le fichier /etc/resovl.conf de la station. On remplace les lignes commençant par nameserver par les lignes suivantes :
nameserver 4.2.2.5 nameserver 4.2.2.3
L'effet est immédiat !
Changement permanent unique
Sans toucher au WRT54G, on peut faire en sorte qu'une station de travail “écrase”, lors de son démarrage, les valeurs de serveurs DNS reçues à la négociation dhpc. Pour que le changement soit permanent, il faut intervenir sur la configuration du client dhcp de la station. Par exemple, sur un système Ubuntu, on édite le fichier /etc/dhcp3/dhclient.conf pour y ajouter la ligne suivante :
prepend domain-name-servers 4.2.2.5, 4.2.2.3;
Danger des serveurs DNS publics
Les serveur DNS qui vont venir remplacer ceux de Free ne peuvent pas être choisis à la légère. Il faut être consciente de deux choses :
- vos serveurs DNS connaissent la totalité des noms de domaines que vous sollicitez (pages web, ftp, mail, etc.),
- vos serveurs DNS sont responsables des ordinateurs vers lesquels ils vous orientent lorsque vous leur demandez de résoudre un nom.
Le premier point a trait à la protection de la vie privée. Si vous vous exposez déjà sans précaution à Google, Facebook et d'autres, vous n'êtes probablement plus à ça près.
Le second point concerne plutôt le risque de phishing (ou hameçonnage). Typiquement, vous croyez consulter votre compte bancaire sur ma-banque.com mais le serveur DNS vous a orientée vers un autre site, très ressemblant, sur lequel vous allez donner vos identifiants (login et mot de passe).
Le Web regorge de fausses “bonnes” solutions “gratuites” pour éviter les serveurs DNS de Free ou d'autre FAI. Soyez prudentes…
Parmi celles-ci, les plus médiatisées sont OpenDNS.com et l'inévitable Google Public DNS (en). Le premier ne respecte pas les RFC11) et vous envoie sur des pages de pub s'il ne parvient pas à résoudre votre nom de domaine. Le second fait comme à son habitude, c'est-à-dire qu'il vous “espionne” avec votre consentement.
Limites de la solution
Cette technique ne fonctionne que si votre réseau informatique se trouve “derrière” un routeur que vous contrôlez.
Relier vos postes informatiques directement au routeur (activé) de la Freebox, est un mauvais choix. En informatique, il y a peu de cas où l'on peut être aussi catégorique. Celui-ci en fait partie. Un routeur de qualité, fiable et sûr, coûte à peine deux mois d'abonnement à Free ou à votre FAI préféré.