GNU/Linux >> Tutoriels Linux >  >> Panels >> Docker

Comment configurer Pihole dans un conteneur Docker

Peut-être êtes-vous harcelé par des publicités contextuelles lorsque vous lisez un article sur un site Web. Avec toutes ces publicités, comment les bloquer ? Installez Pi-hole dans Docker et utilisez Pi-hole comme bloqueur de publicités à l'échelle du réseau et améliorez les performances de votre réseau.

Dans ce didacticiel, vous apprendrez à configurer et à exécuter Pi-hole dans un conteneur Docker pour bloquer les publicités et les sites Web. Cela vous semble excitant ? Lisez la suite pour en savoir plus !

Prérequis

Ce tutoriel sera une démonstration pratique. Si vous souhaitez suivre, assurez-vous d'avoir les éléments suivants :

  • Docker installé sur Windows 10 (mais tout système d'exploitation pris en charge fonctionnera).
  • Un PC Windows 10 :ce didacticiel utilise la version 19042.1165 du système d'exploitation Windows 10.

Création de deux volumes Docker persistants

Lors de la configuration de Pi-hole dans le conteneur Docker, vous devez d'abord créer un volume Docker pour stocker l'application Pi-hole et la configuration DNS.

Ouvrez PowerShell en tant qu'administrateur, puis exécutez les commandes ci-dessous pour que Docker crée deux volumes (volume create ) nommé pihole_app et dns_config . Vous pouvez également modifier les noms selon vos préférences.

docker volume create pihole_app
docker volume create dns_config

Ensuite, vérifiez que les volumes Docker ont été créés avec succès en exécutant la commande suivante qui répertorie tous les volumes Docker disponibles sur votre machine.

docker volume ls

Ci-dessous, vous voyez deux volumes nouvellement créés nommés pihole_app et dns_config .

Exécuter Pi-hole dans Docker Container avec des variables d'environnement

Maintenant que vous disposez de deux volumes persistants, vous êtes prêt à exécuter un conteneur Docker à l'aide de l'image Docker de base de Pi-hole. Mais d'abord, vous devrez noter votre adresse IP locale.

Exécutez la commande ci-dessous pour obtenir votre adresse IP locale. Votre adresse IP locale est nécessaire pour exécuter correctement la commande Docker unique.

ipconfig /all

Ensuite, exécutez la commande ci-dessous pour extraire le pihole/pihole image de base du hub Docker. Remplacez les valeurs en conséquence en utilisant le tableau ci-dessous comme référence. Le tableau ci-dessous explique chaque indicateur de l'objectif de la commande.

docker run --name=pihole -e TZ=Asia/Manila -e WEBPASSWORD=password -e SERVERIP=YourIPAddressHere -v pihole_app:/etc/pihole -v dns_config:/etc/dnsmasq.d -p 81:80 -p 53:53/tcp -p 53:53/udp --restart=unless-stopped pihole/pihole

Pi-hole Docker Command Flags

Indicateurs de commande Définition
—name=pihole Nomme un conteneur Docker comme pihole. Il y aura une erreur si un conteneur portant le même nom existe déjà sur votre machine
-e TZ=Asie/Manille Variable d'environnement pour le fuseau horaire. Asia/Manille a été utilisé pour ce didacticiel, mais vous pouvez saisir tout ce qui a le même format répertorié dans un gist GitHub.
-e WEBPASSWORD=mot de passe Définit un mot de passe pour l'interface Pi-hole.
-e SERVERIP=VotreAdresseIPIci Définissez votre adresse IP pour le conteneur Docker. Vous l'utiliserez à nouveau plus tard pour faire fonctionner Pi-hole.
-v pihole_app :/etc/pihole Monte le volume pihole_app et utilise le sous-répertoire /etc/pihole pour stocker les fichiers Pi-hole
-v dns_config :/etc/dnsmasq.d Monte le volume dns_config et utilise le sous-répertoire /etc/dnsmasq. d pour stocker les configurations DNS selon les besoins.
p 81:80 -p 53:53/tcp -p 53:53/udp Mappe les ports de la machine hôte sur les ports du conteneur Docker (le port 81 de la machine hôte est mappé sur le port 80 du conteneur Docker)
—restart=unless-stopped Définit une politique de redémarrage afin que le conteneur Docker redémarre toujours à moins qu'il ne soit arrêté manuellement par l'utilisateur.
pihole/pihole Dit à la commande docker run d'utiliser l'image de base pihole/pihole officielle du hub Docker.

Ci-dessous, vous pouvez voir la commande tire le pihole/pihole image de base de Docker Hub. Une fois le pihole/pihole l'image est téléchargée sur votre machine, la commande se poursuit automatiquement et suit les paramètres que vous avez définis dans la commande.

Après avoir tiré le pihole/pihole image de base, vous verrez une sortie comme celle ci-dessous, qui indique que vous pouvez déjà exécuter le tableau de bord Pi-hole à partir du conteneur.

Accéder à l'interface Web du tableau de bord Pi-hole

Une fois que le conteneur Docker que vous avez créé est en cours d'exécution, vous pouvez désormais accéder au tableau de bord Pi-hole. Le tableau de bord Pi-hole est une interface graphique qui vous permet de configurer les publicités à bloquer via votre propre liste noire ou des listes noires gérées par la communauté.

Accédez à http://localhost:81 sur votre navigateur puisque vous avez précédemment mappé le port 81 de la machine hôte au port 80 du conteneur Docker. Ce faisant, votre navigateur Web redirige la page vers le tableau de bord Pi-hole.

Si vous définissez un port différent lors de l'exécution du précédent docker commande, modifiez le port pour accéder au tableau de bord Pi-hole. Par exemple, http://localhost:n où 'n' représente le numéro de port.

Maintenant, connectez-vous au tableau de bord Pi-hole avec le mot de passe que vous avez défini en exécutant le docker dans la section "Exécution du conteneur Pi-hole Docker avec des variables d'environnement". Pour ce tutoriel, le mot de passe est "password" (sans les guillemets).

Comme vous le voyez ci-dessous, le conteneur Pi-hole ne bloque pas activement les annonces et est en mode veille en attendant ce qu'il appelle des "requêtes" ou des demandes d'annonces à évaluer.

Pointage du serveur DNS de l'hôte vers l'adresse IP Pi-hole

Avec le serveur Pi-hole en cours d'exécution, comment commencer à bloquer les publicités sur votre système local ? Vous devez dire à votre système local d'acheminer toutes les demandes vers l'adresse IP Pi-hole et de bloquer toutes les annonces correspondantes. Lisez la suite pour savoir comment !

1. Cliquez avec le bouton droit de la souris sur l'icône des paramètres réseau dans la barre d'état système de Windows et choisissez Ouvrir les paramètres réseau et Internet pour voir la liste de tous les adaptateurs réseau de votre machine.

2. Ensuite, faites un clic droit sur votre adaptateur réseau et choisissez Propriétés . La fenêtre des paramètres de votre adaptateur réseau apparaîtra.

3. Sélectionnez Protocole Internet version 4 (TCP/IPv4) dans la liste sous Mise en réseau puis cliquez sur l'onglet Propriétés bouton.

4. Configurez les propriétés IPv4 avec ce qui suit :

  • Sélectionnez l'option Utiliser l'adresse IP suivante pour définir une adresse IP statique. L'attribution d'adresse IP statique à la machine hôte permet à d'autres appareils de se connecter et d'utiliser le bloqueur de publicités. La passerelle par défaut du routeur diffère selon les paramètres de votre fournisseur d'accès Internet dans votre pays.
  • Sélectionnez l'option Utiliser les adresses de serveur DNS suivantes option pour configurer votre serveur DNS et ajouter un serveur DNS dans le Serveur DNS préféré domaine. Entrez l'adresse IP du serveur Docker que vous avez définie à partir du précédent docker sous la section "Exécution du conteneur Pi-hole Docker avec des variables d'environnement".
  • Ajouter un serveur alternatif comme le serveur Google 8.8.8.8 dans le serveur DNS alternatif champ, puis cliquez sur OK . Le serveur DNS alternatif sert de serveur DNS au cas où le conteneur Pi-hole Docker tomberait en panne pour une raison quelconque. Vous pouvez donner une autre valeur au serveur DNS alternatif que vous préférez.

Configuration du DNS d'un seul appareil

En supposant que vous ayez un smartphone ou tout autre appareil connecté au même réseau, vous pouvez pointer le serveur DNS de cet appareil pour qu'il corresponde à l'adresse IP de l'hôte. Dans ce tutoriel, un smartphone est connecté au même réseau.

1. Dans les paramètres du réseau sans fil du smartphone, appuyez sur Manuel et entrez l'adresse IP de la machine hôte. Vous pouvez également ajouter des adresses IP alternatives en cas d'échec de Pi-hole.

L'interface des paramètres de réseau sans fil sur les smartphones diffère l'une de l'autre.

2. Visitez maintenant certains sites Web qui contiennent beaucoup de publicités dans le navigateur Web de votre smartphone.

Pour cet exemple, les sites Web du Daily Mail et du New York Times ont été visités à plusieurs reprises pendant 5 à 10 minutes. L'administrateur du navigateur en direct sur le tableau de bord Pi-hole affiche le nombre d'annonces bloquées de l'appareil, comme indiqué ci-dessous.

Les graphiques à barres sont un ajout récent à la dernière version de Pi-hole au moment de la rédaction de cet article. Certaines versions plus anciennes ont des graphiques linéaires à la place.

Activation du blocage à l'échelle du réseau domestique via les paramètres du routeur

Plutôt que de configurer un serveur DNS sur un seul appareil, essayez de configurer des serveurs DNS pour tous les appareils dans les paramètres de votre routeur. Selon votre routeur, il peut y avoir ou non une disposition pour l'utilisation de l'adresse IP.

Pour cette démonstration, le routeur n'a pas autorisé l'accès aux serveurs DNS et DHCP changeants. Le réseau domestique n'a donc pas été exploré en détail dans ce didacticiel en raison des contraintes du routeur.

Dans un exemple de vue d'administration, vous pourrez peut-être encoder l'adresse IP du serveur DNS de la même manière que cela a été fait sur un seul appareil. Cette démo utilise un routeur Prolink PRS1841U-v2 verrouillé sur le FAI.

L'interface de configuration DNS diffère d'un routeur à l'autre, mais les paramètres ressemblent à celui ci-dessous.

Vous pouvez également désactiver le serveur DHCP dans le routeur, puis activer le serveur DHCP dans Pi-hole à la place. Un exemple de discussion dans la communauté Pi-hole le montre plus en détail.

Blocage de sites Web via le tableau de bord Pi-hole

L'installation par défaut de Pi-hole bloque environ 92 725 sites Web par défaut, mais vous pouvez également ajouter d'autres sites Web via des listes noires du fabricant de Pi-hole et d'autres listes partagées par les fans de Pi-hole.

1. Enregistrez les sites Web à bloquer dans un fichier texte avec votre nom préféré. Pour cet exemple, le fichier est nommé blocklist.txt .

2. Exécutez le docker commande ci-dessous pour copier le blocklist.txt fichier (cp blocklist.txt ) au volume du conteneur Docker dans un fichier nommé blacklist.txt . Conservez le blacklist.txt fichier sur le volume Docker afin que Pi-hole le détecte automatiquement.

docker cp blocklist.txt d70:/etc/pihole/blacklist.txt

3. Enfin, accédez à nouveau au tableau de bord d'administration de Pi-hole. Cliquez sur Outils menu dans le panneau de gauche, puis le Mettre à jour la gravité lien. Enfin, cliquez sur Mettre à jour pour récupérer une liste mise à jour des URL que Pi-hole doit bloquer.

Une mise à jour réussie ressemblera à celle ci-dessous.

Mise à jour de la liste de blocage des sites Web via la console

Peut-être préférez-vous exécuter les commandes de la console plutôt que de naviguer dans le tableau de bord Pi-hole. Si tel est le cas, vous pouvez exécuter une commande docker dans PowerShell pour bloquer les sites Web. Exécutez le docker exec commande ci-dessous pour créer une session de terminal interactif sur pihole_app Conteneur Docker, qui permet l'exécution de commandes.

docker exec -it pihole_app /bin/bash

Une fois la session de terminal ouverte, exécutez la commande ci-dessous pour mettre à jour la liste noire des URL de Pi-hole.

pihole -g

Réexécutez pihole -g de temps en temps afin que votre bloqueur de publicités reste à jour.

Blocage de sites Web via des listes noires d'URL gérées par la communauté

Certaines URL sont dédiées à être mises à jour régulièrement par leurs contributeurs, et d'autres ne le sont pas, donc le téléchargement d'une liste noire à partir d'une ancienne liste peut ne pas refléter les dernières modifications.

Tirez parti de la fonctionnalité de gestion des groupes de listes de blocage Adlist de Pi-hole. Sur le tableau de bord Pi-hole, cliquez sur Gestion des groupesListes publicitaires menu dans le panneau de gauche, puis cliquez sur Ajouter pour choisir la liste des URL que vous souhaitez ajouter dans Pi-hole.

Conclusion

Dans ce didacticiel, vous avez appris à télécharger une image Pi-Hole Docker, à tester une interface Web Pi-hole à écoute active, à tester un périphérique externe pour se connecter à Pi-hole. Vous avez également appris à bloquer les publicités et les sites Web, et vous avez vu le tableau de bord Pi-hole en action lorsqu'il les bloque.

Avec cette connaissance, pourquoi ne pas utiliser n'importe quelle machine hôte pour bloquer les publicités sur d'autres appareils connectés sur le même réseau ?


Docker
  1. Comment se connecter en SSH à un conteneur Docker

  2. Comment exécuter une commande sur un conteneur Docker en cours d'exécution

  3. Comment attribuer une adresse IP statique à un conteneur Docker

  4. Comment installer Vim dans un conteneur Docker

  5. Comment quitter un conteneur Docker

Qu'est-ce que Docker ? Comment ça marche?

Comment exécuter PHPMyAdmin dans un conteneur Docker

Comment exécuter Grafana dans un conteneur Docker

Comment ajouter un volume à un conteneur Docker existant

Comment configurer un conteneur Apache Docker

Comment exécuter des conteneurs Docker