Pi-Hole : bloquer toutes les pubs internet sur votre réseau

Publié par Tpeltier le

Il existe de nombreux logiciels et plugins pour bloquer les pubs, mais si vous voulez les mettre en place sur tous vos objets connectés au web vous aurez besoin soit de trouver ces programmes pour chacun de vos périphériques, soit d’une alternative. C’est là qu’intervient Pi-Hole en effectuant un filtrage directement entre votre box et votre Raspberry.

Pi-Hole va assurer le rôle de serveur DNS grâce à Dnsmasq et des fichiers texte contenant des domaines bloqués pointant 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 pour la résolution IP.
Cela permet même de bloquer les publicités là où c’est normalement pas possible (console de jeu, camera IP connectée au cloud, etc).

Dans mon cas, la mise en place a été extrêmement simple car je disposais déjà d’un Raspberry sur mon réseau … Mais des tutos d’installation sont disponibles un peu partout sur le net. De plus, Pi-Hole peut s’installer de manière générale sur les distributions basées sur Debian : Raspbian,  Kali, Ubuntu, etc…

Je vais traiter du cas Raspberry ici mais les commandes sont les mêmes pour les autres distributions …

Prérequis :

  • Raspbian installé sur votre Raspberry Pi
  • Avoir votre Raspberry connecté au réseau local
  • Avoir une IP fixe sur le Raspberry
  • Connaître l’IP de sa box

Installation :

L’installation est simplissime car il suffit de se connecter en SSH sur le raspberry et de simplement lancer la commande suivante :

# curl -L install.pi-hole.net | bash

Le script d’installation se lance et vous devez répondre à quelques questions.

on me demande de choisir un fournisseur DNS dans une liste de fournisseurs de DNS publics, j’ai sélectionné OpenDNS :

Les questions suivantes sont basiques ….

 

Bien noter le password donné à la fin de l’installation qui vous permettra de vous connecter sur l’interface d’admin !

 

Voilà ! Pi-Hole est désormais actifs sur votre réseau … Il suffit de se connecter sur l’URL : http://Ip_du_Raspberry/admin pour obtenir un beau dashboard :

Configuration Pi-Hole

Les commandes :

 

# pihole –help
::: Control all Pi-hole specific functions
:::
::: Usage: pihole [options]
:::        Add -h after -w (whitelist), -b (blacklist), -c (chronometer), or -a (admin) for more information on usage
:::
::: Options:
:::  -w, whitelist            Whitelist domain(s)
:::  -b, blacklist            Blacklist domain(s) (exact match)
:::  -wild, wildcard          Blacklist whole domain(s) (wildcard)
:::  -d, debug                Start a debugging session
:::                             Automated debugging can be enabled with ‘-a’.
:::                             ‘pihole -d -a’
:::  -f, flush                Flush the ‘pihole.log’ file
:::  -t, tail                 Output the last lines of the ‘pihole.log’ file. Lines are appended as the file grows
:::  -up, updatePihole        Update Pi-hole components
:::  -r, reconfigure          Reconfigure or Repair Pi-hole
:::  -g, updateGravity        Update the list of ad-serving domains
:::  -c, chronometer          Calculates stats and displays to an LCD
:::  -h, help                 Show this help dialog
:::  -v, version              Show installed versions of Pi-hole and Web-Admin
:::  -q, query                Query the adlists for a specific domain
:::                             ‘pihole -q domain -exact’ shows exact matches only
:::  -l, logging              Enable or Disable logging (pass ‘on’ or ‘off’)
:::  -a, admin                Admin webpage options
:::  uninstall                Uninstall Pi-hole from your system! 🙁
:::  status                   Display if Pi-hole is Enabled or Disabled
:::  enable                   Enable Pi-hole DNS Blocking
:::  disable                  Disable Pi-hole DNS Blocking
:::                             Blocking can also be disabled only temporarily, e.g.,
:::                             ‘pihole disable 5m’ – will disable blocking for 5 minutes
:::  restartdns               Restart dnsmasq
:::  checkout                 Check out different branches

Changer le mot de passe

Se connecter en ssh et utiliser la commande :

# pihole -a -p votre-mot-de-passe

Mettre à jour Pi-Hole

Se connecter en ssh et utiliser la commande :

# pihole -up

ex:

# pihole -up
::: Checking for updates...
::: Pi-hole Core:   up to date
::: FTL:            up to date
::: Web Interface:  up to date
:::
::: Everything is up to date!
#

Afin d’être à jour en permanence le mieux est de passer cette commande dans un cron

on créé un script dans le répertoire /etc/cron.daily ( script trouvé ici : https://pastebin.com/ZDhgQ2be )

# sudo vi pi-hole

“pihole -g” permet de mettre à jour les listes

“pihole -up” permet de mettre à jour Pi-Hole

 

#!/bin/bash
echo ""
echo ""
echo "******************************"
echo "*** updating pi-hole lists ***"
echo "******************************"
pihole -g
pihole -up
clear
date >> /var/log/pihole-update.log
echo "******************************"
echo "*** pi-hole lists updated ***"
echo "******************************"
echo ""
echo ""

On ajoute les droits d’execution au script avec un :

# sudo chmod 755 pi-hole

 

Et notre pi-Hole se mettra à jour tous les jours …

 

Configuration sur le réseau

Une fois cela fait, il ne reste plus qu’à configurer vos appareils pour qu’il puisse utiliser le Pi-Hole en tant que serveur DNS sinon l’intérêt est plus que limité 😆 .

Pour cela plusieurs méthodes en fonction de la configuration de votre réseau.

Pour ma part toutes les adresses IP de mon réseau sont fournies par un serveur DHCP sur Synology et si j’ai besoin d’adresse fixe je configure ce même DHCP pour une réservation d’adresse avec l’adresse MAC. Donc il me suffit de modifier la configuration DHCP de mon serveur pour qu’il utilise le Raspberry Pi-Hole en tant que serveur DNS primaire, et hop ! le tour est joué ! Tous mes appareils ( PC, NAS, Tablette, smartphone, etc … )  feront des requêtes DNS sur le Pi-Hole 😎

Le principe est le même dans le cas d’une box ( Livebox, Freebox, etc … ). Il faut se rendre sur la configuration du serveur DHCP et remplacer le serveur DNS par l’adresse du Pi-Hole.

Paramétrage des DNS sans passer par une box ou serveur DHCP :

Sous Linux :

  • Settings > Network Connections
  • Sélectionnez la connexion puis Edit
  • Sélectionnez IPv4 Settings ou IPv6 Settings selon ce que vous utilisez
  • Si la méthode utilisée est « Automatic (DHCP) », ouvrez le menu et sélectionnez « Automatic (DHCP) addresses only ».
  • Remplacez les adresses par l’IP du Raspberry Pi-Hole
  • Sauvegardez

Sous Windows :

  • Clic droit sur le bouton démarrer > Panneau de configuration
  • Réseaux Internet > Centre réseaux et partage
  • Panneau latéral gauche > Modifier les paramètres de la carte
  • Sélectionnez votre connexion
  • Clic droit > Propriétés
  • Double clic sur Protocol Internet Version 4 (TCP/IPv4) ou Protocol Internet Version 6 (TCP/IPv6) selon ce que vous utilisez
  • Sélectionnez Utiliser l’adresse de serveur DNS suivante
  • Rentrez l’IP du Raspberry Pi-Hole
  • Redémarrez votre connexion ou ordinateur

 Sous Mac OS X :

  • Apple > Préférences Système > Réseau
  • Sélectionnez votre connexion
  • Avancé > Serveur DNS
  • Remplacez l’adresse par l’IP du Raspberry Pi-Hole
  • Appliquer

 

Conclusion

Pi-Hole est une solution gratuite et très facile à mettre en place. Bien sûr ce n’est pas l’arme ultime car certaines publicités continuent de passer mais dans la grande majorité elles sont effectivement bien bloquées.


3 commentaires

GwenNo Gravatar · 15 décembre 2017 à 8 h 27 min

Super tuto, merci. Pihole est installé, mais ma livebox empêche le changement du serveur DNS. Je fais comment pour que tous mes appareils utilisent mon raspi comme DNS (sauf la box, le décodeur et le téléphone) ?

TpeltierNo Gravatar · 15 décembre 2017 à 8 h 42 min

Bonne question … A part modifier les DNS de chaque machine localement je vois pas trop … Je n’ai pas de livebox mais il serait quand même bizarre de ne pas pouvoir modifier les dns par défaut au niveau de la configuration DHCP de la box …

bartNo Gravatar · 30 décembre 2022 à 18 h 39 min

reponse un peu tardive mais bon … poir les box qui ne permette pas le changement de dns, il faut brider le serveur dhcp de la box a 2 ip (box télé+pihole) ensuite sur le dhcp du pihole decaler les attributions des ip en dehors de la plage ip du serveur dhcp de la box , ex ip dhcp de la box de 192.168.1.1 a 192.168.1.3 et le dhcp du pihole de 192.168.1.100 a 192.168.1.200

Laisser un commentaire

Emplacement de l’avatar

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.