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

Rejoignez-nous sur mon tout nouveau serveur Discord, pour échanger entre passionnés !

Catégories : DockerUNIX/Linux

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

Laisser un commentaire

Avatar placeholder

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

%d blogueurs aiment cette page :