- En 2024, le web et les logiciels sont devenus plus fatigants à cause des publicités, du suivi, des widgets d’analyse, des bandeaux de cookies et des communications externes incessantes ; Pi-hole est une façon de réduire tout cela au niveau du réseau
- Pi-hole agit comme un DNS sinkhole sur le réseau domestique ou de bureau, bloquant sur tous les appareils les requêtes vers des traqueurs, des CDN publicitaires et des domaines indésirables
- Dans un environnement réel, 66,6 % du trafic total a été bloqué, sans impact fonctionnel sur les tâches quotidiennes
- La configuration nécessite un Raspberry Pi et une carte microSD, des périphériques pour l’installation initiale, l’installation de Pi-hole, ainsi qu’une configuration réseau pour que le routeur envoie les requêtes DNS vers Pi-hole
- Pi-hole ne suffit pas à bloquer toutes les publicités ; pour des services comme YouTube, il est utile de l’associer à un bloqueur de publicités dans le navigateur comme uBlock Origin
Pourquoi utiliser Pi-hole
- La collecte de données et le suivi indésirables ont fortement augmenté lors de la navigation web et de l’utilisation de logiciels, et les utilisateurs veulent éviter que leur ordinateur, leur navigateur et d’autres signaux servent à établir des profils sans consentement
- En 2024, l’expérience en ligne typique est remplie de publicités, de scripts malveillants, de widgets d’analyse, de widgets de chatbot, de bandeaux de consentement aux cookies qui recouvrent les pages, et de logiciels qui communiquent avec l’extérieur à chaque clic
- La technologie publicitaire a évolué vers une exploitation excessive des visiteurs, et l’installation de Pi-hole sur le réseau domestique est proposée comme réponse
- Pi-hole est un projet déjà bien connu, abordé depuis des années par Jeff Atwood, Troy Hunt, Scott Hanselman, Scott Helme et d’autres
Fonctionnement sur le réseau
- Pi-hole s’exécute généralement sur un Raspberry Pi, mais peut techniquement fonctionner ailleurs que sur un Pi
- Il agit comme un proxy DNS / sinkhole à l’intérieur du réseau
- Quand l’utilisateur accède à
https://example.com, la requête passe d’abord par Pi-hole
- Le flux se poursuit ensuite en interrogeant les serveurs DNS faisant autorité pour obtenir les informations du domaine
- L’objectif est de bloquer les requêtes vers les domaines auxquels on ne souhaite pas accéder depuis le réseau
- Traqueurs
- CDN servant de la publicité
- Domaines vers lesquels on ne veut pas envoyer de données depuis son domicile ou son entreprise
- Sur un réseau réel, 66,6 % du trafic total a été bloqué, sans impact fonctionnel sur les actions de l’utilisateur
Éléments nécessaires à l’installation
- La configuration de Pi-hole ne demande pas un gros investissement ; le principal coût est le temps consacré à la configuration et à la vérification, plus que le matériel
- La configuration de base est la suivante
- Raspberry Pi
- Un kit de démarrage CanaKit à environ 155 dollars aux États-Unis
- Il inclut aussi la carte microSD nécessaire à la configuration
- Un écran, une souris et un clavier à connecter au Raspberry Pi pour la configuration initiale
- Du temps pour suivre le guide d’installation de base de Pi-hole
- Du temps pour configurer le routeur afin que les requêtes DNS du réseau passent par Pi-hole
- L’équipe Pi-hole a rendu le processus d’installation aussi simple que possible
Gestion des listes de domaines bloqués
- Après avoir installé le matériel et les logiciels, il faut configurer la destination des requêtes DNS du routeur pour qu’elle pointe vers l’appareil Pi-hole
- L’étape suivante consiste à décider quels domaines bloquer
- On peut observer directement les requêtes qui circulent sur le réseau et décider en conséquence
- On peut utiliser des listes de blocage communautaires
- Firebog est une ressource recommandée comme point de départ, qui fournit de nombreuses listes de domaines étudiées et collectées par la communauté
- Il n’est pas nécessaire d’appliquer toutes les listes sans discernement
- Certaines fonctionnalités peuvent se casser ou ne plus fonctionner
- Le journal des requêtes en temps réel de Pi-hole permet de voir quel client tente d’accéder à quel domaine
- On peut bloquer ou autoriser dynamiquement des domaines selon les besoins
- Des expressions régulières permettent de bloquer les domaines correspondant à certaines conditions
- Un exemple consiste à bloquer les TLD
.cn, .ru et .hk, au motif que beaucoup de trafic malveillant observé provient de Russie, de Chine et de Hong Kong
(^|\.)(cn|ru|hk)$
- Une fois cette règle appliquée, tant que les requêtes DNS passent par Pi-hole, les communications vers les serveurs de ces TLD ne sortent pas du réseau
- Les TLD nationaux ne sont pas le seul vecteur d’attaque des malwares, mais leur blocage est présenté comme une petite étape pour améliorer la posture de sécurité de l’ensemble du réseau
Empêcher le contournement du DNS
- Certains appareils peuvent tenter de contourner le DNS configuré par l’utilisateur afin de servir des publicités ou de collecter des données d’analyse
- La manière de réagir dépend du matériel de routeur utilisé
- Dans un environnement utilisant l’écosystème UniFi et un UDM Pro, un exemple consiste à se connecter en SSH à l’UDM et à exécuter des règles
iptables
iptables -t nat -A PREROUTING ! -s YOUR_PI_HOLE_IP -p tcp --dport 53 -j DNAT --to YOUR_PI_HOLE_IP
iptables -t nat -A PREROUTING ! -s YOUR_PI_HOLE_IP -p udp --dport 53 -j DNAT --to YOUR_PI_HOLE_IP
# Make sure that we skip 192.168.1.1 since that seems to break UniFi Protect
iptables -t nat -A POSTROUTING -m iprange --src-range 192.168.1.2-192.168.254.254 -j MASQUERADE
- Ce script redirige tout le trafic DNS, c’est-à-dire le port 53, vers Pi-hole, et applique un masquage d’adresses réseau via une règle NAT
- La première commande applique un NAT de destination aux paquets DNS TCP vers l’adresse IP de Pi-hole
-t nat : indique une règle dans la table NAT
-A PREROUTING : ajoute une règle à la chaîne qui traite les paquets entrants avant le routage
! -s YOUR_PI_HOLE_IP : exclut les paquets émis par Pi-hole lui-même
-p tcp : s’applique aux paquets TCP
--dport 53 : correspond aux paquets à destination du port DNS 53
-j DNAT : envoie vers la cible DNAT, qui modifie l’adresse IP de destination
--to YOUR_PI_HOLE_IP : redirige les paquets vers l’IP de Pi-hole
- La deuxième commande applique le même traitement aux paquets UDP
- La troisième commande est une règle
MASQUERADE qui remplace l’IP source de la plage d’adresses internes spécifiée par l’IP du routeur
- La plage d’exemple va de
192.168.1.2 à 192.168.254.254 et peut être ajustée selon son réseau
192.168.1.1 est exclue pour éviter de casser UniFi Protect
- Au final, toutes les requêtes DNS TCP et UDP des appareils du réseau, à l’exception de celles émises par Pi-hole lui-même, sont redirigées vers Pi-hole
L’utiliser avec un bloqueur de publicités dans le navigateur
- Même lorsque Pi-hole se trouve entre les appareils du réseau et Internet, un bloqueur de publicités fiable comme uBlock Origin reste utile
- Pour des services comme YouTube, que l’on veut continuer à utiliser sans publicité, le blocage au niveau des domaines ne suffit pas toujours
- Pi-hole sert de couche supplémentaire pour bloquer les contenus et requêtes indésirables, en complément du bloqueur de publicités du navigateur
- Les bloqueurs de publicités de navigateur peuvent aussi bloquer certains éléments d’interface, comme des publicités manuelles ou du contenu sponsorisé chargés depuis le domaine principal du site
Bilan après utilisation
- Une fois Pi-hole installé sur le réseau, son efficacité a été telle qu’il est devenu difficile de revenir en arrière
- La même configuration a aussi été appliquée aux réseaux des parents et des beaux-parents
- L’auteur indique qu’il continuera à le recommander, car cela fait une grande différence dans la qualité de vie en ligne
5 commentaires
Même sans utiliser absolument Pi-hole, il est généralement tout à fait acceptable d’utiliser simplement un DNS qui bloque déjà les publicités.
http://youtube.com/watch?v=OvfnqFXRybk Installer et utiliser AdGuard de cette manière, c’est pas mal non plus.
J’ai utilisé les trois, Adguard Home, PiHole et NextDNS, et au final c’est Adguard Home qui m’a semblé le meilleur.
Avec les requêtes parallèles et un cache généreux, les requêtes DNS sont traitées en moins de 10 ms.
C’est un service correct du point de vue du blocage des publicités. Mais, comme le dit aussi l’article, il y a pas mal de services qui cessent discrètement de fonctionner quand on bloque les pubs, donc dans ce genre de cas il faut désactiver le blocage, etc. Si j’étais seul, je pourrais peut-être faire avec, mais quand ma femme l’utilise, que ça ne marche pas et que ça l’agace, ça devient aussi un casse-tête, donc je ne l’utilise que sur mon ordinateur personnel. Snif snif
Oh... merci..