Bloquer toutes les publicités internet grâce à Pi-Hole

Aujourd’hui, la publicité envahit internet, si bien que des logiciels ont été réalisés pour bloquer les publicités et ne plus les afficher: les adblockers. Il s’agit souvent d’extensions ou plugins à installer sur notre navigateur internet. La principale contrainte est de devoir installer cela sur chaque appareil: ordinateur, tablette, smartphone, etc. sans compter que cela est impossible sur certains périphériques, tels que les TV ou consoles par exemple. Et si on filtrait les publicités directement à la source ? C’est ce que permet Pi-Hole, un logiciel open source extrêmement bien réalisé. Une fois mis en place, tout le trafic internet passe par Pi-Hole, qui se charge de nettoyer les sites des publicités. Il filtre en fait toutes les requêtes DNS grâce à des listes de domaines bloqués, comme le fait par exemple AdBlock. Son gros avantage: une seule installation, effective automatiquement sur tous les appareils de la maison, de l’ordinateur au smartphone, en passant même par la TV et les consoles de jeux.

I. Installation de Pi-Hole sur une machine virtuelle

A la base, Pi-Hole a été réalisé pour être installé sur un Raspberry Pi. Cela permet d’obtenir un bloqueur de publicité hardware à peu de frais. Mais il peut être installé sur tout type de machine tournant sous Linux, et même sous forme de Docker. Ici je l’ai installé sous forme de machine virtuelle sur mon Nas Synology (comme je l’avais expliqué dans mon article pour installer Jeedom en machine virtuelle sur Synology, c’est exactement le même principe).

Pi-Hole tourne ici en machine virtuelle sur Synology. Il est très peu gourmand en ressources, puisqu’il fonctionne ici avec seulement 512Mo de Ram affectée.

Bref, pour commencer, il nous faut donc une machine sous Linux, qu’elle soit physique (exemple Raspberry Pi) ou virtuelle (ici Virtual Manager sur Synology). Cela concerne aussi bien Debian, Ubuntu, Fedora, CentOS, ou encore Raspbian. Pi-Hole est peu gourmand en ressources, puisqu’il demandera moins de 100Mo sur disque dur, et 512Mo de Ram. C’est pourquoi il peut tout à fait fonctionner sur un Raspberry Pi.

Une fois la machine prête, on s’y connecte en SSH, et on tape ces deux commandes:

wget -O basic-install.sh https://install.pi-hole.net
sudo bash basic-install.sh

La première ligne va récupérer le script d’installation, et la seconde va l’exécuter, pour lancer l’installation de Pi-Hole.

Le script effectue quelques vérifications au lancement, pour s’assurer que la configuration de la machine est correcte.

Une fois validée, des paquets nécessaires à l’installation sont téléchargés.

Puis l’installation proprement dite démarre.

Il nous est conseillé d’utiliser une adresse IP fixe. Logique, puisque tous les appareils devront se connecter à Pi-Hole pour filtrer la publicité. Avec une adresse qui ne cesse de changer, cela pourrait poser des soucis…

Il nous faut ensuite choisir un serveur DNS, ce serveur qui fait la liaison entre les noms des sites que nous visitons et leurs adresses IP. Ici j’ai opté pour Quad9, un petit nouveau, public, et accessible de manière sécurisée et sans logs, pour protéger sa vie privée).

Une liste contenant tous les serveurs de publicités nous est ensuite proposée. On laisse tout coché par défaut comme c’est :)

Idem pour le protocole utilisé:

Pi-Hole propose une interface Web, qu’on peut ou non installer. Par défaut on la laisse s’installer, elle sera bien pratique par la suite.

On peut régler le niveau de confidentialité: par défaut, on saura quelle IP a tenté d’accéder à quel site, à quelle heure, etc. On peut choisir de masquer certaines infos. Nous sommes ici dans un cadre privé et familial, on laisse par défaut…

L’installation se poursuit alors avec l’installation de divers paquets.

Après quelques minutes, l’installation se termine, et un écran nous résume les informations importantes: l’adresse IP de Pi-Hole, l’adresse pour son administration web, et enfin le mot de passe pour y accéder.

Notez bien le mot de passe donné ici à la fin de l’installation, car il ne vous sera plus rappelé nulle part !

C’est terminé pour l’installation. Passons maintenant à son utilisation !


26 Commentaires
  1. Merci pour cet article. J’avais croisé ce nom là sur un forum sans m’y attarder, maintenant je sais.
    Est-ce que la rapidité/confort de surf, l’accès aux services en ligne (Netflix, Deezer,…) s’en ressent ?

  2. Bonjour,
    Utilisateur de pihole depuis plusieurs mois, est ce que tu constate aussi un nombre important de requêtes provenant du synology ? , a tel point que j ai configuré les dns du syno pour ne pas utiliser le pihole ….

  3. @marbaf , perso sur un hummingboard ( équivalent raspberry mais avec interface giga et plus de ram), je ne vois pas la différence de vitesse , j aurais tendance a dire que l affichage des pages web est plus rapide ( normal plus de pub a charger ).
    c est même surprenant de visiter un site a la maison ( sur le smartphone, donc wifi , pas de pub ) et revoir la meme page en extérieur en 4G ( blindée de pub )

    Pour Netflix, j utilise le client intégré a ma tv samsung , rien à signaler ( et j avais déjà pas de pub sur la tv , je ne sais pas si la version navigateur de Netflix en as ).

  4. D’ailleurs, pour ceux qui ne veulent pas s’embêter j’ai crée un serveur Pi-Hole sur un dédié qui ne s’appuie pas sur d’autres serveurs DNS (autre que les root-server) : http://51.15.237.181/

    Il est optimisé pour le filtrage de pub en anglais et en français (ce que les autres Pi-Hole publiques ne proposent pas…

    Pour le filtrage sur smartphone (surtout pour les connexions hors-WiFi) je vous conseille l’app Android DnsChanger…

  5. Excellent article!
    ca fait un moment que j’entends ce genre de solution mais je n’avais pas encore franchi le pas.
    Tu m’as donné envie…
    Ce week-end, je vais faire un essai en installant cela sur Proxmox.

    par contre, comme tu le dit, il ne faut pas en abuser et laisser la pub sur certains site :)
    moi je sais que le tien sera dans la white list ;)

      • Ca y est c’est installé! merci pour ce tuto. bon par contre, en cliquant trop vite j’ai pas vu qu’il me donnait un mot de passe (tu peux mettre cette information en GROS). pas trop grave car la commande de récupération est donnée…

        par contre, j’ai mis le pi Hole comme DNS de mon routeur mais dans ce cas, je ne vois pas l’ip qui a fait la demande… je ne vois que mon routeur comme client. tu as la meme chose?

        • Tu n’auras pas perdu de temps ! La commande est en effet donnée pour le mot de passe, j’ai eu le même cas que toi la première fois :p Je vais le mettre plus en évidence dans l’article :)
          Si on change le DNS directement sur le routeur, en effet, on ne voit que l’IP de celui ci. J’ai pas réussi à avoir mieux, même en jouant avec les divers paramètres. Si on veut le détail, faut que Pi-Hole soit aussi serveur DHCP. Ou alors changer le DNS sur chaque appareil, mais c’est pas possible partout :/ Si tu trouves une autre astuce je suis preneur !

  6. @ZEK c’est en particulier pour Android, véritable nid à pub, que cette solution est intéressante. Sur un Pi, j’ai peur que ça fasse goulet…
    @STÉPHANE Tu nous proposes de supporter tout notre trafic web gratuitement ? À un moment ton serveur va tousser non ?

  7. J’utilise depuis plusieurs mois, ca marche nickel. Je recommande d’ajouter un script hebdomadaire qui fait les mises à jours + fail2ban.

  8. Bonjour
    Ceci est super intéressante, j’ai fait un test avec un seul ordi pour voir.
    En mode normal tout fonctionne mais si j’active ExpressVPN, la ça ne fonctionne plus.
    J’ai mis serveur DNS sur Pi-Hole, je n’ai surement pas la bonne façon.
    Vous avez une idée??
    Merci
    Loup

  9. Hello,
    je l’utilise aussi chez moi et ça filtre vraiment bien, même sur les appareils mobiles.

    A noter qu’il faut aussi mettre un filtrage sur le router pour n’accepter les requêtes DNS vers l’extérieur que du PiHole (ou du serveur DNS local secondaire).
    Il y a un paquet d’applis mobiles qui utilisent leur propre DNS sans prendre celui indiqué par le serveur DHCP. Ça leur permet surement de contourner le filtrage par DNS.
    Même les Google Home prennent par défaut 8.8.8.8 (le DNS Google) !

    • Ah, merci pour l’info, je ne savais pas ! Comment mets tu en place ce filtrage sur ton routeur, par contre ?

      • J’ai mis plusieurs règles firewall sur mon routeur pour LAN_IN (Ubiquiti USG):
        – Autorisation des requêtes vers le port 53 (DNS) pour quelques appareils sur le réseau local (ça permet au PiHole d’appeler les serveurs DNS à l’extérieur).
        – Autorisation des requêtes vers le port 53 et le serveur PiHole
        – Blocage de toutes les requêtes vers le port 53

  10. Merci Cédric pour ce tuto, j’ai fait l’installation sur le synology, cependant je n’ai pas de blocage de mon coté. Les stats n’indiquent rien. J’ai pourtant indiqué dans mon routeur Ubiquiti l’adresse ip du synology en DNS numéro1 puis laisser 3 autres DNS au cas ou, mais rien ne fonctionne. J’avoue ne pas comprendre. J’utilise l’image pihole/pihole Est-ce que j’ai loupé quelque chose ?

  11. @Vosmont forcément avec le port 53 déclaré ça fonctionne bien mieux ! Je n’avais pas vu qu’il fallait le faire ! Mon Dashboard commence à remonter des données ! Par contre toujours pas de blocage sur les pubs de ce site de test : https://www.adsbexchange.com/ad-test-page/?

  12. Je cherchais un Raspberry dans un tiroir, je n’avais pas pensé à l’installer sur une VM …

    Mis en place aussi aujourd’hui ! Merci pour l’article :)

  13. Attention Quad9 n’est pas aussi vertueux que vous le dite dans votre article. Je vous laisse éplucher cet article qui le décrit très bien : https://www.bortzmeyer.org/quad9.html

    Merci pour vos tutos

  14. Bonjour, j’ai installé PiHole sur synology, il semble bien fonctionnel car j’ai énormément de blocage sur le dasboard avec des graphique et tout, mais il ne bloque rien en fait :( Les publicités de cette page ne sont pas bloqués, et aucune ailleur non plus. Je dirige bien le trafic sur mon synology. Un coup de main svp ?

  15. Bonjour, j’ai installé PiHole sur synology, il semble bien fonctionnel car j’ai énormément de blocage sur le dasboard avec des graphique et tout, mais il ne bloque rien en fait :( Les publicités de cette page ne sont pas bloqués, et aucune ailleur non plus. Je dirige bien le trafic sur mon synology. Un coup de main svp ?

  16. Bonjour,
    J’ai fait l’insall sur un Synology. Tout se passe bien, mais quand je vais sur l’adresse web d’administration j’ai le script suivant et pas la page web :

    Que dois je faire ?

    • Le script n’a pas été affiché. Voici le début :
      * Pi-hole: A black hole for Internet advertisements
      * (c) 2017 Pi-hole, LLC (https://pi-hole.net)
      * Network-wide ad blocking via your own hardware.
      *
      * This file is copyright under the latest version of the EUPL.
      * Please see LICENSE file for your rights under this license. */
      $indexpage = true;
      require « scripts/pi-hole/php/header.php »;
      require_once(« scripts/pi-hole/php/gravity.php »);

    Laisser un commentaire

    Ne ratez plus aucune news !

    Inscrivez vous à notre newsletter, et recevez chaque mois toute l'actualité du blog pour ne plus rien louper: actualité, guides, tutoriaux, concours !

    Merci pour votre inscription !