Un serveur DNS, Kézako ?

Pour configurer Pi-hole, il faut d'abord comprendre ce que fait un serveur DNS.

Pour faire simple, le serveur DNS met en relation des noms de domaines avec les adresses IP des machines qui hébergent ces domaines.

Quand on tape une adresse dans la barre d'adresse d'un navigateur, la requête est envoyée au serveur DNS configuré sur la box de votre fournisseur d'accès. Ce serveur DNS contient un dictionnaire plus ou moins fourni, qui met en relation l'adresse tapée avec l'IP du serveur qui l'héberge. C'est ce serveur DNS qui est configuré sur votre machine au moment où elle se connecte sur la box.

Une simple commande ping permet de vérifier ce fonctionnement :

On voit ici qu'une commande ping sur l'adresse google.fr renvoie l'adresse IP 172.217.171.195. Il suffit ensuite de taper cette adresse IP dans la barre du navigateur pour s'en assurer.

Il se pose un réel problème de confidentialité et d'accès aux ressources. En effet, pour l'abonné lambda, toute requête passe entre les filtres de son fournisseur d'accès, qui a toute liberté d'enregistrer les tendances, et de renvoyer des réponses plus ou moins pertinentes et tenant en priorité compte des intérêts du même fournisseur d'accès. Il n'est donc pas étonnant de voir les fenêtres de publicité envahir nos écrans et de constater que nos boîtes mails débordent de spams.

Il faut ajouter à ça, la possibilité de censurer certains domaines en ne fournissant pas la correspondance IP/domaine, voire en renvoyant vers un autre domaine...

Il est possible d'échapper à ce fonctionnement en optant pour des services DNS plus ou moins libres.

On imagine que les DNS de Google fourniront un maximum de réponses, en échange, toutes vos requêtes seront soigneusement décortiquées et stockées pour faire de vous un parfait consommateur.

D'autres services semblent plus respectueux de votre vie privée, Cloudflare par exemple s'engage à ne pas vendre ni enregistrer vos requêtes. Les serveurs DNS Clouflare sont accessibles sur les adresses 1.1.1.1 et 1.0.0.1.

Changer de serveur DNS

Le but ici est de remplacer le DNS déclaré dans votre box par l'adresse de votre Pi-hole, qui lui pointera vers les serveurs DNS de votre choix en appliquant les blacklists de votre cru.

Pour ce faire, il y a plusieurs méthodes :

1 . Changer la configuration de la box :

C'est de loin la solution la pus simple. Malheureusement, la majorité des fournisseurs d'accès n'autorisent pas cette modification (SFR, Orange, Bouygues...), pour des raisons de sécurité (on ne rigole pas!). Il me semble que free autorise cette modification.

2 . Changer la configuration sur le poste utilisé :

Cette solution est facile à mettre en œuvre, par contre il faut faire le changement sur chacune des machines et ça prend du temps.

Il faut désactiver le service automatique DHCP.

Ce service est sensé vous donner une adresse IP, vous indiquer la passerelle vers le web (adresse IP de votre box), le masque de réseau (255.255.255.0) et les serveur DNS :

  • Adresse IP : on prendra une adresse en dehors de la plage du serveur DHCP de la box. Il faudra choisir une adresse unique par machine.
  • Passerelle : bien souvent 192.168.1.1
  • Masque : 255.255.255.0
  • DNS : adresse de Pi-hole (pour moi 192.168.1.18). Vous noterez que j'ai ajouté les IP directes de Cloudflare ( 1.1.1.1 et 1.0.0.1), ce qui permet de garder l'accès au web en cas de panne ou de redémarrage de mon Nas.

Sous Linux :

Il faut cliquer sur l'icône de connexion (wifi ou ethernet) et demander l'affichage des paramètres.

3 . Remplacer le service DHCP de la box par un autre serveur DHCP :

Cette solution n'est pas vraiment compliquée à mettre en œuvre. Il faut juste avoir conscience du fait qu'en cas d'échec, ce sont tous les postes qui se trouveront en panne. De plus, j'ai constaté des difficultés de mise à jour de la TV-Box.

Pour éviter les pannes, il faut savoir que :

  • L'arrêt du service DHCP prive une nouvelle machine de son adresse IP automatique. Il faut donc un autre serveur DHCP dans le réseau (Pi-hole et le Nas Synology peuvent assurer ce rôle)
  • On ne peut pas avoir deux serveurs DHCP actifs dans un même réseau, ce sera soit Pi-hole, soit le Nas Synology, mais pas les deux
  • Le serveur DHCP doit toujours être opérationnel, en cas de redémarrage ou de panne du Nas, il faudra patie,tyer ou réactiver le service sur la box pour retrouver l'accès au web

Cette méthode est à mon avis la plus pertinente. Reste le problème de mise à jour de la TV-Box pour lequel on peut désactiver provisoirement les blacklists dans Pi-hole.

3.1 . Désactiver le service DHCP de la box :

Voir doc fournisseur d'accès.

3.2 . Activer le service DHCP sur le Nas Synology :

Dans le DSM sous Configuration/Serveur DHCP, on choisit de modifier l'interface réseau :


Ici, on voit que mon serveur DNS principal est 192.168.1.18, que les adresses IP seront distribuées automatiquement de 192.168.1.20 à 192.168.1.60.

La durée du bail est en secondes, toute machine qui redémarrera dans les 24h (86400s) retrouvera la même adresse IP.

Notez que j'ai ajouté 1.1.1.1 comme DNS secondaire, ce qui permet de mettre à jour Pi-hole sans priver l'accès au web des machines connectées.

Configurer Pi-hole :

Voila, on a installé Pi-hole, les machines du réseau pointent sur son adresse, grace à l'une des trois méthodes citées précédemment.

Il reste à paramétrer Pi-hole pou filtrer un maximum de nuisibles.

Le paramétrage se fait dans Settings :

1 . DNS :

Il s'agit là de déclarer les serveur DNS vers lesquels on souhaite pointer.

On va dans Settings / DNS, et on coche les serveurs retenus. Pour ma part, j'ai coché les deux cases du bas : 1.1.1.1 et 1.0.0.1 pour Cloudflare.

On n'oublie pas de sauvegarder.

2 . Blocklist :

Pi-hole propose cinq blocklists par défaut.

On peut en désactiver, on peut en ajouter, en allant dans Settings / Blocklists.

On trouve une multitude de sites qui proposent des bloclists :

...

L'intérêt, c'est que plus on en met, plus on en bloque.
Le défaut, c'est que plus on en met, plus on en bloque ;-) .

L'autre inconvénient, c'est que plus on en met et plus on charge Pi-hole, d'autant que certaines blacklists se recoupent et l'ensemble devient redondant.

Dans ma précédente installation, Pi-hole tournait sur un Raspberry-Pi modèle B Rev 2, la bête était à genoux sous le poids des 700 000 adresses blacklistées.

Mise à jour : ces listes sont distantes et font l'objet de mise à jour. Pour mettre à jour Pi-hole, il faut cliquer sur Save and Update.

3 . Whitelist :

Une fois qu'on aura bien chargé en blacklists, il sera nécessaire de mettre au cas par des adresses dans la whitelist (celle-ci prime sur la blacklist).

4 . Blacklist

Cette page permet de bloquer des adresses au cas par cas.
Ces adresses sont tout simplement ajoutées aux blocklists.

5 . Mail - Password :

Dans Settings API / Web interface, on renseigne son adresse mail. Ça simplifie les choses en cas d'oubli du mot de passe.

Pour le password, il n'y a malheureusement pas d'autre solution que de le réinitialiser comme vu dans le billet précédent.