(modifié le 29 octobre 2016 à 2:58)

Pi-Hole est un projet libre de blocage des publicités pouvant fonctionner sur un Raspberry Pi et de manière générale sur les distributions basées sur Debian : Raspbian,  Kali, Ubuntu, etc.

pi-hole

Plutôt que de bloquer les publicités avec un AdBlock like sur vos machines Pi-Hole va s'en charger pour tout votre réseau local.

Principe de fonctionnement

Pi-Hole va assurer va assurer le rôle de serveur DNS grâce à Dnsmasq et des fichiers texte contenant des domaines bloqués pointants vers 0.0.0.0 (une adresse non routable). En sorte c'est un bon vieux DNS menteur. Plutôt que d'utiliser votre box/routeur comme DNS il faudra que toutes vos machines pointent vers Pi-Hole pourla résolution IP.

Cela 29, et même de bloquer les publicités là où c'est normalement pas possible (console de jeu, camera IP connectée au cloud, etc).

Installation

C'est un jeu d'enfant. Saisir la commande dans un terminal :

curl -L https://install.pi-hole.net | bash

Laissez-vous guider par l'assistant qui va vous poser quelques questions.

Interface web sympa

Une chouette interface web est accessible sur http://ip/admin

pi-stats

Le menu Query Log permet de visualiser toutes les requêtes, particulièrement pratique pour inspecter les communications d'un périphérique douteux acheté sur banggood 🙂 Même si le niveau de détail ne sera pas aussi précis qu'avec un routeur Tomato avec tcpdump qui englobera tout le trafic.

Chemins utiles

Configuration Dnsmasq utilisée par Pi-Hole (si besoin de changer de DNS externe) :

/etc/dnsmasq.d/01-pihole.conf

Liste par défaut (modifiable via l'interface web)

/etc/pihole/adlists.default

Savoir si un site web est présent dans une des listes :

# pihole -q m6.fr
::: /etc/pihole/list.0.raw.githubusercontent.com.domains (1 results)
0.0.0.0 m6.fr.2mdn.net

Activer le mode debug (ctrl+c pour le stopper ensuite):
pihole -d

Log des résolutions DNS (log-facility) :
/var/log/pihole.log

Mise à jour des listes : Log des résolutions DNS (log-facility) :
pihole -g

Ajoutez la commande en crontab pour une mise à jour automatique.

Conclusion

Cette solution est intéressante car libre, et vous pourrez customiser au maximum les listes en ajoutant des domaines à bloquer. Néanmoins elle ne se révelera pas aussi effiace qu'une extension uBlock qui va réussir à bloquer des éléments plus finement (expressions régulières, CSS, etc).

Si comme moi vous avez un routeur Tomato cela vous permettra de vous inspirer de la configuration pour l'insérer dans Dnsmasq (menu Advanced > DHCP/DNS > Dnsmasq).

Enfin, si vous préférez utiliser Unbound au lieu de Dnsmasq je vous invite à suivre le tutoriel de Tuxicoman.

Merci @Yrill pour la découverte

Auteur : Mr Xhark

Fondateur du blog et passionné par les nouvelles techno, suivez-moi sur twitter