Outils pour utilisateurs

Outils du site


free:dns

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).

Ne pas appliquer cette solution si votre réseau local dispose déjà de son propre serveur DNS, indépendant de celui de votre FAI.

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;};

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

En savoir plus : Configuring Static DNS with DHCP on Debian/Ubuntu (en).

La mise en place de cette solution présuppose que vous disposez d'une vraie connexion à internet, c'est-à-dire sans restriction de ports ou de protocoles (notamment DNS).

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

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 :

  1. vos serveurs DNS connaissent la totalité des noms de domaines que vous sollicitez (pages web, ftp, mail, etc.),
  2. 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é.

1)
Par exemple, la page d'accueil de voyages-sncf demande la résolution de 6 noms de domaines pour quelques 62 requêtes.
2)
Si une personne vous dit le contraire, vous considérer qu'elle s'exprime sur un sujet qu'elle que maîtrise pas.
3)
Les serveurs DNS que l'on utilise (sans le savoir) sont ceux de notre fournisseur d'accès. L'accès à ces serveurs est réservé aux abonnés du FAI. A contrario, un seveur DNS public est accessible depuis tout ordi connecté à internet, quel soit son FAI ou son mode de connexion.
4)
Validé sur Debian 7 Wheezy
5)
Aussi appelé firmware
6)
comme son nom ne l'indique pas, ce programme fait office de serveur dhcp
7)
Si DNS 3 est laissé à la valeur 0.0.0.0, le WRT54G ajoutera le premier serveur DNS fournit par Free, en troisième position de la liste des serveurs DNS qu'il indique au postes du réseau local configurés par dhcp.
8)
Car derrière une seule adresse IP de serveurs DNS fiables se trouvent plusieurs serveurs redondants.
9)
Dans une configuration système et matérielle minimale, ce sera probablement eth0. Ici, la station est configurée pour héberger des machines virtuelles accédant en propre au réseau local, grâce à virtualBox
10)
Certes, cela fait un peu bourrin, mais c'est préférable. On peut aussi faire les choses plus proprement mais, s'agissant de stations de travail, il est probable qu'elles utilisent des machines virtuelles ce qui complique la configuration des interfaces réseaux et donc leur redémarrage. Même sur un simple poste informatique, un network-manager peut venir son grin de sel.
11)
Les normes techniques qui garantissent le bon fonctionnement d'internet.
free/dns.txt · Dernière modification: 2016/09/11 15:12 de flaz