Nettoyer son réseau avec pihole et un raspberry

pihole

Dès qu’un smartphone , une tablette est connectée à votre box, une quantité phénoménale de requêtes DNS partent régulièrement à votre insu vers des sites publicitaires et autres traqueurs d’activité. Tout ça sans même avoir lancé votre navigateur car avec, c’est bien pire! Certes des extensions comme Ublock permettent de limiter la casse. Mais imaginez un moyen de filtrer plus efficacement en amont de votre réseau …

Pihole , est un projet qui a pour but d’assainir vos connexions en envoyant toutes les requêtes DNS irrespectueuses de votre vie privée vers un « trou noir ». Toutes les pubs , traqueurs, sites malveillants seront redirigés vers une adresse locale (127.0.0.1). Pihole nécessite très peu de ressources , simplement un raspberry (fonctionne aussi sous processeur x86).
A la fin du tuto vous aurez un joli tableau de bord comme ci-dessous qui vous permettra entre autres de voir l’ensemble des requêtes bloquées sur votre réseau, filtrées par machine.


Sceptique ou curieux, pihole pourrait bien vous ouvrir les yeux sur le caractère intrusif de vos objets connectés préférés 🙂

Comment ça fonctionne ?

Un petit schéma de notre réseau local

Pihole va jouer le rôle de résolveur DNS pour tous les périphériques connectés à votre Box. Il sera ainsi en mesure de bloquer toutes les requêtes DNS « néfastes » à partir d’ une liste noire.

Vous pouvez aussi obtenir le best of des domaines les plus bloqués (voir extrait ci-dessous)

Oh surprise ! Ici on voit que ce sont  les applications snapshat , instagram , google ad services qui polluent le plus notre réseau …Bah ouais c’est ça d’avoir des ados à la maison :-/

Et si on passait à l’action?

Installation du pihole

Se connecter en ssh sur son raspberry:

méthode1

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

Cette commande a l’avantage de tout faire en une seule ligne mais le « pipe » avec bash ,côté sécurité c’est très très bof. D’où la méthode2 que je vous conseille plutôt ^^

méthode2

On télécharge les sources depuis le repo officiel , puis on lance le script d’install à partir de notre raspberry
git clone --depth 1 https://github.com/pi-hole/pi-hole.git Pi-hole
cd "Pi-hole/automated install/"
sudo bash basic-install.sh

Configuration

Le script d’install va dans un premier temps se charger d’installer tous les paquets nécessaires (php, python,git, dnsmasq etc…). Ensuite suffit de suivre les étapes suivantes:

1/ Réserver une adresse ip statique pour le raspberry

Selon votre FAI (Orange, free, SFR etc..) , il faudra accéder à la conf DHCP pour attribuer un bail static à votre machine. Par exemple pour sa freebox , voir ici.

2/ Choisir votre Résolveur DNS principal

choix du résolveur principal
Quad9 pour ma part, Cloudfare pourquoi pas , le reste à vos risques et périls.

3/ Confirmer l’adresse ip et la passerelle utilisée par le pihole

4/ On demande à pihole de bosser pour les 2 protocoles IPv4 et IPv6

*

5/ On coche les partenaires qui fournissent les « listes noires »? Par défaut tout est coché et c’est pas plus mal.

6/ Par défaut , le serveur web sera lighttpd. Si vous avez apache déjà d’installé je vous conseille de cocher « off » à la question ci-dessous.

A la question est ce qu’on veut l’interface d’administration et logguer les requêtes ,on répond « oui »

Compter environ 5 minutes d’installation auto en fonction de la puissance de votre serveur. A la fin notez bien le mot de passe qui vous est communiqué dans le shell.

7/ dernière étape et pas des moindres: mettre l’@IP de votre raspberry en DNS principal sur votre Box.

En général c’est dans les options de votre conf DHCP.

Pour ceux qui n’y arriveraient pas vous pouvez modifier directement sur pc ou la tablette , c’est dans les propriétés de la connexion Wifi.

Se connecter à l’interface d’administration pihole

Dans un navigateur, taper :

http://@ipraspberry/admin

Rentrer le mot de passe qui vous a été donné à l’install . si vous ne l’avez pas , nopanic. Suffit de lancer la commande suivante pour en définir un:

pihole -a -p

mettre votre nouveau mot de passe.

Je vous laisse découvrir le tableau de bord qui a lui seul pourrait faire l’objet d’un autre billet. Mais en gros , vous pouvez voir toutes les requêtes DNS des objets connectés sur la box.

Menu => « query log »:

En rouge les mauvaises qui ont été redirigées dans la « poubelle » et en vert, les légitimes. Vous pouvez en ajouter sur liste blanche ou au contraire faire une règle pour empêcher l’accès à tout un domaine.

Reconfigurer ou réparer

il peut arriver que vous souhaitiez changer a posteriori des paramètres de votre configuration. Pas de soucis  suffit de relancer le script comme suit:

pihole -r

-enregistrer les logs? s’assurer d’avoir assez de place sur rpi . Eviter les écritures sur la sd card

Personnaliser les filtres

Vous pouvez interdire certains domaines.Par exemple vous pourriez décider de bloquer à la demande des sites comme youtube si le filston abusait . Oui je sais c’est pas bien , certains vont crier à la censure et c’est tout à fait ça. Mais j’en connais certains qui pompent toute la bande passante au détriment des autres habitants.

Ca se passe dans le menu de gauche du dashboard => « blacklist »

Ne soyons pas (trop) naïfs

Les possibilités de Pihole sont multiples et jusqu’à ce jour (6 mois d’utilisation) je n’ai pas relevé de bug ni de latence.

Par contre, il est très facile pour quelqu’un qui s’y connait un peu de contourner le filtrage du raspberry notamment en modifiant directement sur son smartphone ou son pc sa configuration DHCP en mettant en dur les adresses d’autres résolveurs DNS.

Bon en même temps si la personne s’amuse à faire ça, c’est qu’elle préfère pouvoir aller sur les sites comme bon lui semble quitte à ne pas plus bénéficier des protections anti pubs du pihole. Donc c’est aussi à vous de ne pas en faire un outil de censure même si le filston abuse de la bande passante le soir 😉

[edit 13.01.2019]

Suite aux nombreux commentaires sur ce billet concernant le raspberry, je me dis qu’il pourrait être utile aussi de préciser qu’une image officielle docker est disponible pour tester pihole sur un pc classique 😉

18 commentaires sur Nettoyer son réseau avec pihole et un raspberry

  1. Intéressant. Il faudrait du détail sur la configuration quand on reçoit également la télé via la box. Dans le cas de Orange, la télé ne marche plus avec pi-hole car le serveur DHCP donne des configurations particulières a la box TV.
    Et sinon, je pense que le pipe n’est pas moins insecurisé qu’une autre installation. L’important est de connaître et truster la source. Après, que cela soit exécuté par du Bash ou autre n’a pas d’importance a mon sens.

    • Dans l’exemple que j’ai donné, la livebox continuerait de faire DHCP et d’attribuer les @ip ,seul le dns principal est différent. Donc je vois pas trop en quoi cela pourrait gêner mais sans doute que je connais mal les pratiques de ce type de FAI.Si tu peux en dire plus sur la particularité de cette install ? Mais bon à titre perso , je changerai de fournisseur rien que pour cette raison.

      Pour le « pipe bash » à l’install ,c’est juste que tu ne lis pas les sources et exécute directement alors qu’en les téléchargeant au préalable avant d’exécuter le script d’install tu es en théorie en mesure de les contrôler et de te fader toute la lecture du code ^_^

      • Bonjour si j’ai bien compris le phihole est dans principal dans y’a proposition. Si c’est le cas ça vaudrait le coup de le préciser dans l’article. A mon humble avis

  2. Bonjour
    Merci pour cet article et ce tuto très instructifs.
    Bon évidemment, j’ai pas de chance j’ai une box orange et je ne veux pas prendre le risque de priver de TV femme et enfant.
    Quelqu’un a un tuto fiable testé et approuvé avec pihole et la box orange et la TV fonctionnel ?
    Merci de m’avoir ouvert les yeux sur ces requêtes non désirées et intrusives

    • Tu peux toujours mettre en « dur » l’@ip du raspberry en dns principal sur ton pc ou smartphone. Sur android :
      cest dans les paramètres de connexion wifi -> modifier le réseau -> ip statique -> dns principal

  3. Super decouverte un petit outil bien intéressant.
    Pour limiter un possible contournement on pourrait bloquer avec le firewall les requêtes DNS vers internet.

  4. Bonjour,
    Merci pour ce tuto. J’ai déjà installé Pihole sur pi W en wifi. Je préférerai le faire en ethernet mais quel pi alors. Tous sont-ils capable de faire le job sans brider ma connexion?
    Merci d’avance.

  5. Bonjour.

    J’ai découvert par hasard ce site, et la présentation de pihole.
    Bien sympa, je n’ai pas attendu longtemps (12h, avec une nuit) pour l’installer sur mon réseau. Il faut dire que mon rasbperry était en route, et que je remettais en place mon réseau (changement de FAI).

    C’est assez impressionnant le nombre de touches blacklistées pour certains site (instagram, en l’occurence !).

    Je vais parcourir le reste du site, y’a surement des choses à découvrir.

1 Trackbacks & Pingbacks

  1. Mettre en place un contrôle parental avec Pihole -

Leave a Reply

Votre adresse de messagerie ne sera pas publiée.


*