Bonjour à tous, aujourd’hui je vais vous montrer comment mettre en place le célèbre bloqueur de publicité à venir greffer sur votre réseau local.
J’utilise Pi-hole depuis fin 2019 sur mon Raspberry PI et il est super agréable de naviguer sur internet sans distractions.
Grâce a Pi-hole vous aurez plus besoin d’avoir une extension sur votre navigateur pour bloquer les publicités intrusives. Vous pourrez même aller plus loin et bloquer les publicités partout ou cela était impossible auparavant, comme les applications de votre smartphone ou votre télé connectée, mais aussi de bloquer toutes les activités de tracking de vos appareils connectés.
Vous pouvez aussi utiliser Pi-hole comme contrôle parental.
Systèmes d’exploitation compatible :
Raspberry Pi OS (Raspbian) Stretch / Buster ARM
Ubuntu 16.x / 18.x / 20.x ARM / x86_64
Debian 9 / 10 ARM / x86_64 / i386
Fedora 31 / 32 ARM / x86_64
CentOS 7 / 8 x86_64
Préparation de la machine
Installez docker-compose :
sudo apt install docker-compose
Récupérer la dernière version de docker-compose (la commande peut changer avec le temps, rendez-vous sur ce site puis « Install Compose » et choisir l’onglet « Linux« ) :
sudo curl -L "https://github.com/docker/compose/releases/download/1.28.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Appliquez les bons droits au fichier compose :
sudo chmod +x /usr/local/bin/docker-compose
Puis créez un lien symbolique afin d’être sûr que le lien a déjà été fait avec le paquet docker-compose :
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
Si vous avez le message d’erreur suivant, cela veut dire que le lien était déjà créé :
ln: impossible de créer le lien symbolique '/usr/bin/docker-compose': Le fichier existe
Puis vous pouvez tester la version :
:~$ docker-compose --version docker-compose version 1.28.4, build cabd5cfb
Installation de Pi-Hole
Afin de pouvoir procéder à l’installation de Pi-Hole il va falloir créer un fichier de configuration docker-compose
Vous pouvez créer par exemple un dossier docker dans lequel on pourra mettre a disposition les fichiers de configuration :
mkdir docker mkdir docker/pihole
Rendez-vous dans votre dossier docker :
cd docker/pihole/
Puis créez le fichier docker-compose.yml :
version: "3" # More info at https://github.com/pi-hole/docker-pi-hole/ and https://docs.pi-hole.net/ services: pihole: container_name: pihole image: pihole/pihole:latest hostname: pi.hole ports: - "53:53/tcp" - "53:53/udp" - "67:67/udp" - "80:80/tcp" - "443:443/tcp" environment: TZ: 'France/Paris' # Volumes store your data between container upgrades volumes: - './etc-pihole/:/etc/pihole/' - './etc-dnsmasq.d/:/etc/dnsmasq.d/' # Recommended but not required (DHCP needs NET_ADMIN) # https://github.com/pi-hole/docker-pi-hole#note-on-capabilities cap_add: - NET_ADMIN restart: unless-stopped
Puis procédons à l’installation de Pi-hole :
:~/docker/pihole$ sudo docker-compose up -d Building with native build. Learn about native build in Compose here: https://docs.docker.com/go/compose-native-b uild/ Creating network "docker_default" with the default driver Creating pihole ... done
Afin de pouvoir se connecter à l’interface web de Pi-hole, il faut définir un mot de passe :
:~/docker/pihole$ sudo docker exec -it pihole pihole -a -p Enter New Password (Blank for no password): Confirm Password: [✓] New password set
Je vous conseille de mettre à jour Pi-hole avant de commencer à l’utiliser :
sudo docker pull pihole/pihole
Démarrons Pi-hole :
sudo docker start pihole
Vous pouvez maintenant accéder à l’interface d’administration avec l’URL suivante http://ipduserveur/admin/
Puis testez votre accès :
Tester la résolution DNS
Sur Windows, vous pouvez ajouter manuelle l’adresse IP de votre serveur Pi-hole puis tester la résolution avec la commande suivante:
nslookup alexbacher.fr
Exemple de résultat :
PS C:\Windows\system32> nslookup alexbacher.fr Serveur : pihole.ab.local Address: 192.168.0.3 Nom : alexbacher.fr Addresses: 2001:41d0:301::21 188.165.53.185
Sur Linux, installez le paquet dnsutils :
sudo apt install dnsutils
Puis testez la résolution en forçant l’utilisateur de notre serveur :
dig @ipduserveur alexbacher.fr +short
Exemple de résultat :
dig @192.168.0.3 alexbacher.fr +short 188.165.53.185
Dans un prochain article, je vais vous montrer comment configurer Pi-hole
7 commentaires
Bremaud Kevin · 22 février 2021 à 8h45
très bon article. L’idéal est de créer un dossier pour chaque container Docker. Dans votre exemple rajouter le dossier /docker/pihole. Cela permet de mieux organiser les container et de rajouter d’autre fichier de conf.
Alex B · 22 février 2021 à 8h59
Merci Kevin 🙂 effectivement, après avoir configuré un deuxième conteneur à côté j’ai fini par faire des dossiers. Je vais mettre à jour la doc 👍🏻
rv · 13 décembre 2021 à 9h59
Merci pour l’article.
J’ai 2 pihole, un sur un raspberry et l’autre sur une autre machine en docker suivant ton article.
Depuis plusieurs jours ds les log de pihole je retrouve un nombre astronomique de requêtes vers :
_kerberos.localdomain
_kerberos._udp.LOCALDOMAIN
_kerberos._tcp.LOCALDOMAIN
_kerberos-master._udp.localdomain
_kerberos-master._tcp.localdomain
Une idée ?
Alex B · 13 décembre 2021 à 10h11
Bonjour, merci pour votre retour sur mon article 🙂
Kerberos est un composant de l’Active Directory Windows, cela veut certainement dire qu’un poste intégré dans un domaine Windows ou un serveur AD est présent sur votre réseau et il s’agit de requêtes tout à fait normales. 🙂
david · 19 décembre 2021 à 3h45
Bonjour j’ai un petit blocage a l’étape « Puis procédons à l’installation de Pi-hole ».
Quand j’exécute la commande « docker-compose up -d »
sa me donne « /usr/local/bin/docker-compose: line 1: Not: command not found »
je suis sous debian 11
Merci
david · 19 décembre 2021 à 4h06
J’ai refait l’installation de docker compose visiblement j’avais une version amd64 alors que j’ai un arm64 (vm freebox delta)
mais j’ai presque la même erreur avec le « 1 » en moins.
« /usr/local/bin/docker-compose: No such file or directory »
Par contre y a pas de dossier « docker-compose » dans « /usr/local/bin/ ».
what is it the folder lol??
Merci
Alex B · 19 décembre 2021 à 10h41
Bonjour, merci pour votre commentaire et votre visite 🙂
Avez vous essayé de mettre « Sudo » devant la commande Docker Compose ? Sudo est nécessaire pour lancer des commandes avec les droits d’administration. Il faut aussi être dans le bon répertoire pour lancer la commande docker compose (emplacement du fichier yml)
La Freebox est en arm64 pour le processeur