Les publicités sont une vraie plaie et je vous expliquer ici comment bloquer les pubs à la maison sur tous vos appareils. Autant sur PC il est facile de s’en affranchir (plugins Adblock ou uBlock que je lui préfère), autant sur smartphone, c’est mission quasi impossible, à moins de rooter son téléphone Android pour modifier le fichier de blocage de certains domaines.
Une solution existe sur Raspberry Pi avec le petit serveur Pi-Hole qui sert de serveur DNS pour bloquer les pubs sur tout votre réseau local à la maison.
Les DNS, c’est quoi ?
Un serveur DNS (Domain Name Serveur) est une sorte d’annuaire téléphonique. Vous lui demandez d’aller sur un site via son URL, il y associe une adresse IP pour que l’échange de données puisse se faire.
Si vous souhaitez bloquer un site, il suffit de renvoyer tel ou tel nom de domaine vers une IP nulle. Cette tactique est bien connue de certains FAI, on en revient à la neutralité du net avec par exemple des FAI qui bloquent certains sites web via leurs « DNS menteurs » ou du packet sniffing.
Configurer PiHole pour le blocage de pub
Pi-Hole est un serveur DNS custom pour Raspberry Pi ou tout appareil faisant tourner une distribution Linux Raspbian. Contrairement aux extensions de navigateur pour bloquer les pubs, Pi-Hole peut bloquer les publicités ou domaines choisis sur TOUS les appareils connectés à votre réseau domestique. Pas besoin d’installer de logiciel ou application sur chaque appareil de la maison, le simple fait de se connecter au WiFi bloque tous les domaines choisis.
On installe git et net-tools
sudo apt-get install git net-tools
Puis on le git pi-hole :
git clone --depth 1 https://github.com/pi-hole/pi-hole.git pi-hole
Enfin, on lance l’installation :
sudo bash pi-hole/automated\ install/basic-install.sh
On suit l’installeur en prenant :
- DNS de repli : Quad 9 (filtré + DNSSEC)
- Blocage des noms de domaine en IPv4 (je n’utilise pas l’IPv6 en réseau local, vous non plus je suppose)
- Choisir l’adresse de Gateway proposée et la noter
- Noter l’adresse statique de Pi-Hole
- On active l’interface web (on) et les logs (désactiver les logs si vous utilisez un VPN)
- Notez le mot de passe admin affiché à la fin de l’installation, on va en avoir besoin pour se connecter à l’interface web. Vous pouvez aussi le changer par la commande :
pihole -a -p
Une fois connecté, aller dans la configuration et modifier les serveurs DNS de repli. Le plus simple dans un premier temps est de prendre Quad9 en non filtré et Cloudflare.
Facultatif : DNS Over HTTPS avec Cloudflared
[MAJ tuto le 22/03/2023] : modification des commandes pour Clouflared
[Edition le 11/11/2019] Pour aller plus loin, je vous conseille vivement de mettre en place le DoH sur Pihole (DNS over HTTPS) via le tuto suivant sur le wiki de Pihole.
Un reboot et on peut saisir les nouvelles infos du serveur DNS dans PiHole. On décoche les serveurs DNS dans la partie gauche et on entre l’IP locale 127.0.0.1#5053.
Les requetes seront résolues par Pihole via Cloudflared, chiffrées en DNS over HTTPS. Nickel !
Quelques commandes pour Pihole
Voir le log des requêtes en direct :
pihole -t
Afficher dans le terminal un etat en direct de Pihole et du RaspberryPi. L’affichage s’adapte automatiquement à un LCD :
pihole -c
Voir la version et mettre à jour Pihole :
pihole -v
pihole -up
Ajouter des listes de blocage
Je vous recommandes les listes de Wally3k’s block lists et notamment la première, Ticked lists, qui demande le moins de maintenance pour whitelister des sites bloqués. La plupart des sites bloqués le sont à juste titre (pub, spam, virus etc.)
Les deux autres listes sont plus étoffées mais risquent de bloquer des accès à tort.
Je vous propose un récapitulatif complet des meilleures listes de blocage pour PiHole.
Config de votre routeur : utiliser DHCP pour bloquer les pubs
Ajouter la config DNS au DHCP du routeur permet à chaque appareil connecté au routeur de se voir fournir les DNS de Pi-Hole, en même temps que l’IP sur le réseau.
Certains routeurs (des FAI notamment) refusent l’utilisation de DNS autres que les originaux (pour permettre les DNS menteurs notamment). Pi-Hole peut alors faire office de serveur DHCP + DNS, les IP et DNS seront alors fournis par Pi-Hole et plus par le routeur. Inconvénient, si le Raspberry Pi est éteint, le réseau n’a plus de DHCP.
Quelques optimisations du Raspberry Pi
Pour éviter de fusiller une carte SD par mois avec votre raspberry Pi, voici quelques astuces à mettre en oeuvre :
- Supprimer l’utilisation du swap sur le Raspberry Pi
- Stocker les logs dans la RAM et pas sur la carte SD. J’utilise Log2Ram.
- Réduire la taille de Raspbian
Depuis que j’ai mis en place cette méthode, ma TV Samsung ne communique plus avec ses serveurs de pub à la noix et plus aucun appareil à la maison ne subit de pub !!!
[MAJ 7/06/2019]
- Modification de la méthode d’installation, plus sécurisée, pour bloquer toutes les pubs à la maison.
- Quelques commandes utiles de Pihole rajoutées
- Astuces pour optimiser les écritures sur carte SD et la préserver
Configurer Pi-Hole pour bloquer les pubs en passant par les DNS de Google… Fallait oser. ^^
Bonjour,
Oui, c’était sacrément gonflé de ma part ! Bloquer les pubs google et fournir de la data à Google, drôle de paradoxe ! J’ai oublié de mettre à jour l’article à l’époque.
Merci de m’avoir repris, j’en ai profité pour corriger tout ça et ajouter un paragraphe sur le DNS over HTTPS via clouflared.
Mon Pihole ronronne depuis plus de 3 mois avec le DoH sans souci, et j’ai mis le firmware DD-WRT sur mon routeur Linksys pour plus de contrôle. Perfect !
bonjour comment faire pour que la liste blacklist se mettent à jour automatiquement car j’ai pas trouvé la solution, merci, l’idée est de mettre une temporisation du style toutes les 6 heures par exemple
Bonjour, la blacklist est peuplée par vos ajouts, je ne vois pas comment cela pourrait être « automatique ». Je dois mal comprendre votre question. Pour la tempo, vous voulez désactiver pi-hole temporairement ? Si oui il y a une option dans l’interface graphique « Disable » > « Custom time ».
je voudrais savoir comment forcer la mise à jour des listes qui se retrouve dans « Domains on Blocklist » tous les jours car quant je regarde en déplaçant mas souris dessus « Blocking List Updated » y a 5 jours…….donc j’aimerais que ce soit toute les 24h et non je ne sais quand, merci, j’espère avoir étais plus clair
Je comprends mieux, vous voulez mettre l’ensemble des listes de blocage à jour quotidiennement via gravity. Je doute de l’utilité d’une mise à jour quotidienne, les listes n’étant à mon avis pas modifiées aussi souvent. Pihole fait déjà une mise à jour hebdomadaire. Mais pour une mise à jour quotidienne, il suffit de créer une tâche cron pour cela.
On ouvre le fichier cron de pihole dans nano :
sudo nano /etc/cron.d/pihole
On édite pour avoir la ligne suivante (mise à jour tous les jours à 4h du matin):
00 4 * * * root PATH="$PATH:/usr/local/bin/" pihole updateGravity
Enregistrer le fichier (CTRL+K puis O puis Entrée).
On lance la commande suivante pour que tout soit pris en compte :
sudo systemctl restart cron
Gravity de Pihole mettra à jour la liste globale tous les matins à 4h ! C’est cela que vous vouliez faire ?
oui parfait!!! c’est exactement ça! merci!
Salut et merci pour les explications.
Par contre, 2020 février => je change mon dns dans ma smart tv Samsung et elle perd automatiquement internet.
Je suppose qu’en allant autoriser en whitelist un truc comme samsung\* ça devrait passer.
Si tu as une autre explication je lis attentivement.
Ps : concernant ton astuce pour kick rakutenTV chez moi Netflix Amazon prime et d’autres joyeusetés de ce genre sont des applications pré installées par Samsung et impossible à desinstaller.
Bonjour,
Tout d’abord MERCI et SUPER ARTICLE !
Je trouve honteux la manière dont nous sommes spoilé par les pubs sur Android.
Avant, les pubs sur la TV s’affichaient toutes les 30 – 45 min.
Sur les PC, on pouvait mettre AdBlock ou autre ce qui limitait les dégats.
Mais sur Android c’est une plaie ! Des pubs de partout et en permanence. 2 minutes d’utilisations et 30 secondes de pubs.
On lit un article scientifique ou professionnel et à la fin de chaque article des pubs qui montrent les pires obscénités ou vices possibles (fric, presse people, sexe, etc.). Le pire est que tout le monde à l’air de s’en accommoder (ou pas vu que cet article existe :-))
Ce qui m’inquiète est que nos enfants utilisent et vont utiliser de plus en plus les outils types smartphones et baigner en toute impunité dans cet univers avec des débilités servies sur des plateau d’argent et ouvrant grandes les portes aux travers et trauma vers lesquels cela peut les conduire … A vomir.
Maintenant que j’ai déballé mon sac, je me lance sur la question ;-)
J’aimerais me lancer pour faire la même chose et j’ai pour l’instant peu de connaissance sur les Raspberry (partie matérielle). Je ne me fais pas trop de soucis pour la partie logicielle.
Quel Raspberry avez-vous utilisé pour la réalisation ? Est-ce qu’un Pi 3 1Go de RAM est suffisant ou bien ou bien faut-il se tourner nécessairement vers les Pi 4 et avec quelle quantité de RAM (2 Go, 4Go, ou plus) ?
Merci d’avance
Bonjour,
Un RaspberryPi ultra basique suffit amplement !!! Même la première version. J’ai un Pi3+ qui me servira à terme pour de la domotique si j’arrive à faire cohabiter les deux.
Pour l’instant il tourne H24 depuis 2 ans avec PiHole, franchement top comme setup.
Bonjour
Après avoir activé l’interface web et les logs j’ai dû choisir parmis 4 choix, ne sachant pas ce qu’on me demandait j’ai sélectionné le premier choix (numéro 0) et en suite j’ai reçu un message d’erreur du raspberry (model 1 B rev 2 avec raspbian lite), et je n’arrive pas à terminer l’installation de pi-hole.
Malheureusement je n’ai pas noté le message d’erreur, ne pensant pas qu’il allait disparaître de mon écran…
Est-il possible de reprendre l’installation en lignes de commande ? Ou bien de l’annuler et de tout redémarrer de zéro ?
La commande startx ne fonctionne pas, (ce qui est peut-être normal avec raspbian lite, je suis plutôt novice donc j’ai encore énormément à apprendre à propos de linux), le raspberry semble bloqué sur la commande -bash. Ne pouvant pas accéder au bureau, je ne peux qu’utiliser des lignes de commandes, je ne sais pas s’il est possible d’arrêter ou redémarrer le raspberry alors que l’installation de pi-hole n’est pas terminée.
Quelqu’un saurait-il me dire comment me sortir de ce problème ?
D’avance merci !
Bonjour ca date un peux , j’utilise adguard home sur mon synology je cherche a bloquer les pub Youtube en reseau
y a t il un scrpit ou une solution, merci pour les reponses bonne journee
Bonjour,
Est ce que quelqu’un pourrait avoir la gentillesse de m’expliquer comment supprimer ou ajouter une url dans PiHole qui à eté blacklistée par erreur. merci d’avance
bonne journée
pierre
Bonjour,
Dans le menu Domains, il suffit de cliquer sur « Enabled » ou « Disabled » sur l’URL blacklistée pour l’activer ou la désactiver temporairement. La corbeille à droite au botu de chaque ligne permet de sortir l’URL de la blacklist.
Sur chaque ligne, le menu « type » permet de passer de blacklist à whitelist ;)