Hosts (reur et damnation), la ‘route’ sera longue…

J’ai découvert avec stupeur l’article de Génération Linux qui cite un article de TF1 expliquant comment et pourquoi  ((enfin, le pourquoi n’est pas très clair)) supprimer les fichier hosts d’un ordinateur sous linux (GNU/linux).

(Outre le fait que je suis en phase avec benjamin sur ce qu’il faut penser sur TF0) Je vais vous expliquer réellement à quoi il sert, et comment s’en servir un peu plus (vu que benjamin ne le fait pas). Et je vais le faire à un niveau d’explication qu’un lecteur de TF0 puisse comprendre. Mais je vous le dis tout de suite:

Ne supprimez pas votre fichier /etc/hosts!

Principe de fonctionnement

Lorsque vous voulez aller visiter le site de TF0 ((A publier des bêtises pareil, c’est eux qui vont me servir de cobaye, tant pis)) , vous allez taper l’adresse tf0.fr dans la barre d’adresse, pas leur adresse IP. Parce que c’est plus simple à se souvenir. Or, les ordinateurs communiquent entre eux avec l’adresse IP, parce qu’ils sont conçus comme ça ((et surtout parce que ça fonctionne, pas seulement pour enbêter les téléspectateurs de TF0)). Votre ordinateur va donc s’adresser à un service de DNS (domain name system (« système de nom de domaine ») qui va faire la correspondance entre l’adresse que vous connaissez, et l’adresse IP du site auquel s’adresser.

C’est un peu le GPS de l’informatique: vous connaissez l’adresse, il vous dit où ça se trouve. Et c’est comme ça pour TOUS les services réseau.

Mais, historiquement, (c’est à dire quand j’étais plus jeune non rien), les ordinateurs n’étaient pas connectés à internet. Ils n’étaient même parfois pas connectés du tout (( je sais, c’est l’horreur, la préhistoire…Incroyable mais vrai, ni wifi, ni 3G!)) mais les services réseau nécessitaient quand même d’avoir leur réponse même en l’absence de DNS.

Donc, les informaticiens ont décidé ((arbitrairement, je sais, mais les informaticiens sont comme ça)) d’utiliser un fichier qui ferait la correspondance entre un nom et une adresse IP. Et il faut bien admettre que ça marche! Et que c’est pratique! On le verra bientôt.

De plus, ce fichier étant local, la réponse est plus rapide que d’aller interroger un serveur chez votre FAI, même s’ils répondent assez vite.

Z’en ont de la chance, les linuxiens!

Ce système de fonctionnement n’est pas spécifique à linux, windows possède le même, inspiré de Unix lui aussi. C’est le fichier hosts que vous trouverez dans windows\system32\drivers\etc\hosts (pour XP)

Comparons un fichier hosts et un fichier hosts…:

hosts-linux

hosts-linux

hosts-windows

hosts-windows

Que remarque t-on?

  • Sous linux, on peut lire le fichier dans une console et c’est plus pratique,
  • Sous linux, on peut avoir de la couleur, et c’est beau,
  • Sous linux, on utilise le fichier hosts (en tout cas en ce qui me concerne) alors que sur windows il est là, mais atrophié et malheureux, sans pour autant être anémique vu qu’il a plus de commentaires que d’utilité.
  • Les deux sont identiques, au moins dans l’aspect. Une IP, un nom.

Comment se servir du fichier hosts?

Vu que le fichier est là, autant l’utiliser. Comme il est interrogé par défaut avant la résolution DNS, on peut le modifier et s’amuser.

Dans ce fichier, que vous devrez éditer avec les droits root, ajoutez la ligne suivante:

82.242.245.98          www.tf1.fr

Puis ouvrez votre navigateur pour aller sur www.tf1.fr. Vous constaterez que MON DIEU, MA SOCIÉTÉ VIENT DE PRENDRE POSSESSION DE TF1 ET NOUS SOMMES LES MAITRES DU MONDE!!!

Ah non, c’est juste que mon ordinateur croit que pour aller sur TF1, il faut se rendre à l’adresse Absolacom… ((/me retrouve un rythme cardiaque correct)).

Tiens, ça me donne une idée ((autre que pourrir les ordinateurs de mes collègues, c’est pour ça qu’il faut les droits root. Ah, on me souffle dans l’oreillette qu’avec windows on peut sans droits particuliers… A vérifier de votre côté.)): et si j’indiquais dans mon fichier hosts l’adresse de toutes ces vilaines publicités qui apparaissent sur mon ordinateur?

Eh bien, au lieu d’attendre des heures que google analytics veuille bien répondre avant de m’afficher la page, ou avoir des sites de casino, ou de jeunes filles slaves  voulant à tout prix chatter avec moi (( ce que je peux comprendre)) ou des sites voulant augmenter mon anatomie ((ce que j’ai du mal à comprendre)) , j’aurais une erreur, certes, mais je verrais le reste de ma page. Plus vite, mieux, plus agréable ((presque du Daf Punk)). Vous trouverez plein d’endroits qui vous donneront une liste à ajouter à votre fichier hosts en cherchant un peu sur le net.

Regardez dans mon hosts, la solution pour éviter le rickroll s’y est cachée: saurez vous la retrouver?

Comme je choisis le nom et l’IP à insérer, je peux aussi y indiquer mes machines locales. Ainsi, si je veux faire un ping ou un ssh sur mercure (un de mes postes), je peux le faire avec son IP ou le nom que je lui ai donné dans ce fichier. Pas besoin de DNS sur un petit réseau!

Cool! Je vais pouvoir mettre toutes les adresses de l’internet dans mon fichier hosts et je n’aurais plus besoin de DNS pour naviguer!

Oui, en principe. En pratique, quand ce fichier atteint une certaine taille, il génère l’effet inverse de celui recherché: c’est long à chaque requête.

Et puis c’est surtout la mise à jour qui est laborieuse. Imaginons que google change d’IP, vous ne pourriez plus atteindre leur site tant que vous n’aurez pas modifié le fichier hosts, ce qui est compliqué quand il y a beaucoup d’entrées.

Même pas peur! Et si je le supprime, mon fichier hosts, ça donne quoi?

Ça donne que TF0 pourra à nouveau afficher des pubs sur votre ordinateur. Mais ça va surtout mettre le b…l dans les services réseau qui vont vouloir s’adresser à localhost et qui n’auront plus l’IP correspondante ((je sais, mais c’est bête, un ordinateur)). Un certain programme ((que je ne citerais pas)) se rabat sur ‘localhost’ quand le site demandé ne répond pas (timeout) et repère l’adresse 127.0.0.1 pour passer le message disant qu’il y a un problème. Sauf que s’il n’y a plus le fichier hosts, il n’y a plus de 127.0.0.1 pour localhost, donc le programme est en timeout et se rabat sur localhost qui passe en timeout et le programme se rabat sur localhost qui…. ((comment ça, je l’ai déjà dit?))

Bref, que du bonheur grâce à TF0 ((et ses rédacteurs)).

Résumons un peu:

  1. Le fichier hosts n’a un rôle de filtrage du web que si on lui a demandé de le faire. Le supprimer n’apporterait qu’un comportement non désiré à ce niveau (sauf pour les publicitaires)
  2. Que l’adresse soit présente ou pas dans le fichier hosts, tant qu’un DNS est présent sur le réseau, et l’ordinateur paramétré pour l’interroger, on accèdera au site choisi.
  3. Le fichier hosts n’est pas inutile pour le fonctionnement même de l’ordinateur. Amusez vous à le supprimer sur windows, histoire de rigoler ((puis redémarrez en console, utilisez vi pour le recréer. Comment ça c’est pas possible?!?))
  4. Le fichier hosts n’est pas créé par votre FAI ou par les serveurs DNS. Il ne contient QUE ce que vous y mettez. Dans le cas contraire, ce serait inutile de le supprimer, puisqu’il serait recréé à chaque connexion. ((l’auteur confond sans doute avec le fichier /etc/resolv.conf))
  5. L’auteur ne sait pas lire un man, l’option -f de rm sert à ne pas avoir de demande de confirmation dans tous les cas, certainement pas à effacer un fichier protégé en écriture, qu’il soit protégé ou pas ((ça veut dire quoi, protégé? J’ai les droits ou pas de le supprimer?))

Conclusion

  1. TF0 fait une grande confiance à ses rédacteurs
  2. Le niveau linux chez eux  est le même que le niveau auquel je place leurs émissions
  3. Je vais me prendre un procès si je ne supprime pas leur nom dans mon article (checked)
  4. Faut pas toucher à mon linux quand je voulais dormir le dimanche matin mais que les moustiques m’agressent!

PS: supprimez la ligne que je vous ait fait ajouter au fichier hosts si vous voulez retourner sur TF1 et pas sur le site de ma société.