Bonjour à tous,

Aujourd’hui on se retrouve pour un tuto semblable à celui concernant l’installation de Pi-Hole sur une VM, mais cette fois ce sera sous Docker.

Jusqu’alors je n’étais pas très à l’aise avec Docker, spécialement pour les mise à jour des conteneurs. Il s’avère que c’est plutôt simple au final en utilisant un conteneur spécial qui vous facilite la vie.

L’avantage ici c’est de se passer d’une VM qui sera d’office plus gourmande en ressources. MAIS vous êtes exactement dans la même situation, mais sans la VM!

Pour info, mon NAS est un Synology DS1817+

0. Prérequis

  • Posséder un NAS Synology compatible avec Docker. Voir le site Synology pour vous en assurer.
  • Installer Docker sur votre NAS via le « centre de paquets » si ce n’est pas encore fait.

1. Les logiciels nécessaires / téléchargements

2. Installation de Portainer

  • Connectez-vous à votre NAS et activez le SSH (assurez vous que le port 22 est ouvert si vous avez activé le Firewall sur NAS)
  • Créez un dossier « portainer » dans votre dossier Docker à l’aide de File Station.
  • Connectez-vous à votre NAS en SSH à l’aide de votre logiciel favori (pour moi c’est MobaXterm).
  • Il faut passer en root avec la commande suivante (votre mot de passe va être redemandé) :
sudo su -
  • Ensuite on crée le conteneur avec la commande suivante (ATTENTION : dans cet exemple, Docker a été installé sur le volume 1 et donc le dossier Docker se situe également sur le volume 1, ce n’est peut-être pas le cas chez vous => vérifiez bien et adaptez le n° de volume en fonction)
docker run -d -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /volume1/docker/portainer:/data portainer/portainer-ce
  • Une fois terminé, vous pouvez ouvrir votre navigateur internet et vous rendre à cette adresse : http://ipdevotrenas:9000 pour accéder à Portainer. Ne fermez pas la session SSH, on va en avoir besoin dans peu de temps 😉
  • Il vous faut maintenant créer un Administrateur, là c’est vous qui mettez ce que vous voulez, mais souvenez-vous en car vous en aurez besoin pour vos futures connexions.
  • Maintenant Portainer vous demande comment il va se connecter à votre Docker afin d’en « prendre la gestion ».
  • Cliquez sur « Local » puis « Connect »
  • Et voilà, vous avez configuré Portainer. Vous vous trouvez maintenant sur la page d’accueil. Cliquez sur la ligne « local » regroupant les infos de votre Docker. Vous pourrez voir que vous avez au moins un conteneur actif: portainer.
  • C’est à partir de là que l’on va créer d’autres conteneurs, comme Pi-Hole. Mais avant il faut faire autre chose si vous voulez bénéficier d’une autre IP pour votre Pi-Hole!

3. Création de l’interface réseau pour Pi-hole

  • Toujours en étant connecté en SSH à votre NAS (je vous avais dit de ne pas vous déconnecter du SSh ^^), utilisez la commande suivante pour connaitre le nom de votre interface réseau :
ip route |grep default
  • Maintenant on va créer l’interface MACVLAN qui sera l’interface reliée à notre conteneur Pi-hole :
docker network create --driver=macvlan --gateway=IP DE VOTRE ROUTEUR --subnet=VOTRE RESEAU/24 --ip-range=IP POUR PIHOLE/32 -o parent=NOM DE VOTRE INTERFACE RESEAU NOM DE VOTRE NOUVELLE INTERFACE

Ce qui donne ceci pour quelqu’un qui a un routeur en 192.168.1.1 et qui souhaite que pi-hole soit en 192.168.1.254 et que l’interface se nomme Eth-PiHole :

docker network create --driver=macvlan --gateway=192.168.1.1 --subnet=192.168.1.0/24 --ip-range=192.168.1.254/32 -o parent=ovs_eth0 Eth_PiHole
  • Pour être certain que ça ait bien fonctionné, on peut taper cette commande :
docker network ls
  • Vous devriez alors voir apparaitre le réseau MACVLAN que vous venez de créer.

4. Création du conteneur Pi-hole

  • Vous pouvez faire cela depuis le paquet Docker sur votre NAS directement, depuis Portainer, ou en SSH ce que nous allons faire.
  • Mais avant il faut utiliser « File Station » pour créer les dossiers pour Pi-hole. Donc dans le dossier Docker, vous créez un dossier « Pihole », et dans ce dossier, vous créez les 2 dossiers suivants : « config » et « dnsmasq.d »
  • Il ne vous reste plus qu’à copier/coller et exécuter le code ci-dessous après l’avoir personnalisé bien sûr :
docker run --detach \
           --name pi-hole \
           --restart always \
           --volume /volumeX/docker/Pihole/config:/etc/pihole \
           --volume /volumeX/docker/Pihole/dnsmasq.d:/etc/dnsmasq.d \
           --cap-add NET_ADMIN \
           --dns=8.8.8.8 \
           --dns=8.8.4.4 \
           --env "DNS1=8.8.8.8" \
           --env "DNS2=8.8.4.4" \
           --env "ServerIP=IP CONFIGUREE PRECEDEMMENT" \
           --env "DNSMASQ_LISTENING=all" \
           --env "WEBPASSWORD=CE QUE VOUS VOULEZ" \
           --env "TZ=Europe/Paris" \
           --network NOM DU RESEAU CONFIGURE PRECEDEMMENT \
           --ip "IP CONFIGUREE PRECEDEMENT" \
           --mac-address "02:42:c0:a8:01:d7" \
           pihole/pihole:latest
  • Vous pouvez ouvrir un explorateur et entrer l’adresse IP que vous aviez configuré précédemment, vous devriez arriver sur Pi-Hole.

5. Bug du mot de passe

  • Il m’est arrivé de ne pas réussir à me logger avec le mot de passe configuré à la création du conteneur. Dans ce cas, rendez-vous dans portainer, cliquez sur votre conteneur Pi-hole, ouvrez la console et connectez-vous (c’est une sorte de SSH mais sur votre conteneur), utilisez juste cette commande pour changer le mot de passe :
pihole -a -p

6. Mettre à jour Pi-hole, comment ça marche?

  • He bien c’est simple comme bonjour grâce à Portainer. Il vous suffit de vous rendre sur Portainer, cliquez sur votre conteneur Pi-hole, stoppez le conteneur, puis cliquez sur « Recreate » (ou recréer le conteneur). Choisissez bien « Pull latest image » pour qu’il télécharge la mise à jour, puis Portainer s’occupe de supprimer, puis recréer et reconfigurer tout votre Pi-hole pour vous.
  • Pensez aussi à mettre à jour de temps en temps les « blocklist » depuis votre interface de Pi-hole => « Update Gravity »

Categories:

2 Responses

  1. salut et merci pour ce tuto.
    je lai suivi et pihole fonctionne, mais mon vpn je veux plus ce connecté.
    j’utilise celui du nas, ta un avis ?
    merci d’avance

Laisser un commentaire

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