Come configurare Pihole in un contenitore Docker

Forse sei infastidito dalle pubblicità emergenti quando leggi un articolo su un sito web. Come bloccarle tutte? Installa Pi-hole in Docker e utilizzalo come bloccatore di pubblicità a livello di rete per migliorare le prestazioni della tua rete.

In questo tutorial, imparerai come configurare e eseguire Pi-hole in un contenitore Docker per bloccare annunci e siti web. Ti sembra interessante? Continua a leggere per saperne di più!

Prerequisiti

Questo tutorial sarà una dimostrazione pratica. Se desideri seguirla, assicurati di avere quanto segue:

  • Docker installato su Windows 10 (ma qualsiasi sistema operativo supportato funzionerà).
  • A Windows 10 PC – This tutorial uses Windows 10 OS Build 19042.1165.

Creazione di due volumi Docker persistenti

Quando si configura Pi-hole in un contenitore Docker, è necessario prima creare un volume Docker per archiviare l’applicazione Pi-hole e la configurazione DNS.

Apri PowerShell come amministratore, quindi esegui i seguenti comandi per Docker per creare due volumi (volume create) chiamati pihole_app e dns_config. Puoi anche cambiare i nomi secondo le tue preferenze.

docker volume create pihole_app
docker volume create dns_config

In seguito, verifica che i volumi di Docker siano stati creati correttamente eseguendo il seguente comando che elenca tutti i volumi di Docker disponibili sulla tua macchina.

docker volume ls

Sotto, vedi due volumi appena creati chiamati pihole_app e dns_config.

Creating two Docker Volumes for the Pi-hole Configurations.

Esecuzione di Pi-hole in un contenitore Docker con variabili di ambiente

Ora che hai due volumi persistenti disponibili, sei pronto per eseguire un contenitore Docker utilizzando l’immagine Docker di base di Pi-hole. Ma prima, dovrai annotare il tuo indirizzo IP locale.

Esegui il seguente comando per ottenere il tuo indirizzo IP locale. Il tuo indirizzo IP locale è necessario per eseguire correttamente il singolo comando Docker.

ipconfig /all

In seguito, esegui il comando seguente per scaricare l’immagine di base pihole/pihole da Docker hub. Sostituisci i valori di conseguenza utilizzando la tabella sottostante come riferimento. La tabella sottostante spiega lo scopo di ciascuna bandiera del comando.

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

Bandiere del comando Docker di Pi-hole

Command Flags Definition
—name=pihole Names a Docker container as pihole. There will be an error if a container with the same name already exists on your machine
-e TZ=Asia/Manila Environment variable for time zone. Asia/Manila was used for this tutorial, but you can input anything that has the same format listed in on a GitHub gist.
-e WEBPASSWORD=password Sets a password for the Pi-hole interface.
-e SERVERIP=YourIPAddressHere Set your IP address for the Docker container. You will use this again later for making Pi-hole work.
-v pihole_app:/etc/pihole Mounts the volume pihole_app and use subdirectory /etc/pihole for storing the Pi-hole files
-v dns_config:/etc/dnsmasq.d Mounts the volume dns_config and use subdirectory /etc/dnsmasq.d for storing DNS configurations as required.
p 81:80 -p 53:53/tcp -p 53:53/udp Maps the ports of host machine to the ports of the Docker container (port 81 in host machine maps to port 80 of Docker container)
—restart=unless-stopped Sets a restart policy so the Docker container always restarts unless it is manually stopped by the user.
pihole/pihole Tells the docker run command to use the official pihole/pihole base image from Docker hub.

Di seguito, puoi vedere il comando che estrae l’immagine di base pihole/pihole da Docker Hub. Una volta che l’immagine pihole/pihole è stata scaricata sul tuo computer, il comando continua automaticamente e segue i parametri impostati nel comando.

Downloading pihole/pihole image.

Dopo aver estratto l’immagine di base pihole/pihole, vedrai un output come quello di seguito, che indica che puoi già eseguire il dashboard di Pi-hole dal container.

Seeing the Pi-hole Docker Container Running Properly.

Accesso all’interfaccia web del dashboard di Pi-hole

Una volta che il container Docker che hai creato è in esecuzione, puoi accedere al dashboard di Pi-hole. Il dashboard di Pi-hole è un’interfaccia grafica che ti consente di configurare quali annunci bloccare, sia tramite la tua blacklist personale che tramite blacklist mantenute dalla comunità.

Vai su http://localhost:81 nel tuo browser, poiché in precedenza hai mappato la porta 81 della macchina host alla porta 80 del container Docker. In questo modo, il browser web reindirizza la pagina al dashboard di Pi-hole.

Se hai impostato una porta diversa durante l’esecuzione del precedente comando docker, cambia la porta per accedere al dashboard di Pi-hole. Ad esempio, http://localhost:n dove ‘n’ rappresenta il numero di porta.

Ora accedi al dashboard di Pi-hole con la password impostata eseguendo il comando docker nella sezione “Esecuzione del container Docker di Pi-hole con le variabili d’ambiente”. Per questo tutorial, la password è “password” (senza virgolette).

Accessing the Pi-hole dashboard.

Come puoi vedere di seguito, il contenitore Pi-hole non sta bloccando attivamente gli annunci ed è in modalità standby in attesa di ciò che chiama “query” o richieste di annunci da valutare.

Viewing Pi-hole dashboard Default Page.

Puntando il server DNS dell’host all’indirizzo IP di Pi-hole

Con il server Pi-hole in esecuzione, come si inizia a bloccare gli annunci sul sistema locale? È necessario indicare al sistema locale di instradare tutte le richieste all’indirizzo IP di Pi-hole e bloccare gli annunci corrispondenti. Continua a leggere per scoprire come fare!

1. Fai clic con il pulsante destro del mouse sull’icona delle impostazioni di rete nella barra delle applicazioni di Windows e scegli Apri impostazioni di rete e Internet per vedere l’elenco di tutti gli adattatori di rete nel tuo computer.

Accessing Network & Internet Settings

2. Successivamente, fai clic con il pulsante destro del mouse sull’adattatore di rete e scegli Proprietà. Si aprirà la finestra delle impostazioni dell’adattatore di rete.

Accessing Network Adapter Properties.

3. Seleziona Versione 4 del protocollo Internet (TCP/IPv4) dalla lista nella scheda Rete, quindi fai clic sul pulsante Proprietà.

Accessing IPv4 Properties.

4. Configura le proprietà IPv4 come segue:

  • Seleziona l’opzione Usa il seguente indirizzo IP per impostare un indirizzo IP statico. L’assegnazione di un indirizzo IP statico alla macchina host consente ad altri dispositivi di connettersi e utilizzare il blocco degli annunci. Il gateway predefinito per il router varia a seconda delle impostazioni del provider ISP nel tuo paese.
  • Seleziona l’opzione Utilizza i seguenti indirizzi del server DNS per configurare il tuo server DNS e aggiungi un server DNS nel campo Server DNS preferito. Inserisci l’indirizzo IP del server Docker che hai impostato dal precedente comando docker nella sezione “Esecuzione del contenitore Docker di Pi-hole con variabili di ambiente”.
  • Aggiungi un server alternativo come il server Google 8.8.8.8 nel campo Server DNS alternativo e clicca su OK. Il server DNS alternativo funge da server DNS nel caso in cui il contenitore Docker di Pi-hole vada giù per qualche motivo. Puoi dare un altro valore al server DNS alternativo che preferisci.
Configuring IPv4 Properties

Configurazione del DNS di un singolo dispositivo

Supponendo che tu abbia uno smartphone o un altro dispositivo connesso alla stessa rete, puoi impostare il server DNS di quel dispositivo in modo che corrisponda all’indirizzo IP dell’host. In questo tutorial, uno smartphone è connesso alla stessa rete.

1. Nelle impostazioni di rete wireless dello smartphone, tocca su Manuale e inserisci l’indirizzo IP della macchina host. Puoi anche aggiungere indirizzi IP alternativi nel caso in cui Pi-hole fallisca.

L’interfaccia delle impostazioni di rete wireless sugli smartphone può variare da un dispositivo all’altro.

Configuring DNS server on smartphone

2. Ora visita alcuni siti web che sono ricchi di pubblicità nel browser web dello smartphone.

Per questo esempio, i siti web del Daily Mail e del New York Times sono stati visitati ripetutamente per 5-10 minuti. L’amministratore del browser live sulla dashboard di Pi-hole mostra il numero di annunci bloccati dal dispositivo, come mostrato di seguito.

I grafici a barre sono un’aggiunta recente all’ultima versione di Pi-hole al momento della stesura di questo testo. Alcune versioni più vecchie hanno invece grafici a linee.

Running Docker Pi-hole in Action with a Smartphone Usage for 5-10 Minutes

Abilitare il blocco di rete domestica tramite le impostazioni del router

Piuttosto che configurare un server DNS su un singolo dispositivo, prova a configurare i server DNS per tutti i dispositivi nelle impostazioni del router. A seconda del tuo router, potrebbe esserci o meno una disposizione per utilizzare l’indirizzo IP.

In questa demo, il router non ha consentito l’accesso alla modifica dei server DNS e del DHCP. Pertanto, la rete domestica non è stata esplorata nel dettaglio completo in questo tutorial a causa delle limitazioni del router.

In una vista amministrativa di esempio, potresti essere in grado di codificare l’indirizzo IP del server DNS nello stesso modo in cui è stato fatto su un singolo dispositivo. Questa demo utilizza un router Prolink PRS1841U-v2 bloccato dall’ISP.

L’interfaccia di configurazione DNS varia da router a router, ma le impostazioni sono simili a quelle riportate di seguito.

Manually setting a router DNS settings.

È anche possibile disabilitare il server DHCP nel router e abilitare invece il server DHCP in Pi-hole. Una discussione di esempio nella community di Pi-hole mostra questo in dettaglio.

Blocco dei siti web tramite il pannello di controllo di Pi-hole

L’installazione predefinita di Pi-hole blocca circa 92.725 siti web, ma è anche possibile aggiungere altri siti web tramite liste nere del produttore di Pi-hole e altre liste condivise dai fan di Pi-hole.

1. Salva i siti web da bloccare in un file di testo con il nome preferito. In questo esempio, il file è chiamato blocklist.txt.

2. Esegui il comando docker di seguito per copiare il file blocklist.txt (cp blocklist.txt) nel volume del container Docker in un file denominato blacklist.txt. Mantieni il file blacklist.txt nel volume Docker in modo che Pi-hole lo rilevi automaticamente.

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

3. Infine, torna alla dashboard di amministrazione di Pi-hole. Clicca sul menu Strumenti nel pannello di sinistra e poi sul link Aggiorna Gravity. Infine, clicca su Aggiorna per ottenere una lista aggiornata di URL da bloccare con Pi-hole.

Showing Update Gravity on Pi-hole UI after Copying Additional Website Blacklists on Text File

A successful update will look like the one below.

Showing Display of Update Gravity Success

Aggiornamento della lista di siti web bloccati tramite console

Forse preferisci eseguire comandi tramite console anziché navigare sulla dashboard di Pi-hole. In tal caso, puoi eseguire un comando docker in PowerShell per bloccare i siti web. Esegui il comando docker exec riportato di seguito per creare una sessione interattiva del terminale nel container Docker pihole_app, che consente l’esecuzione dei comandi.

docker exec -it pihole_app /bin/bash

Una volta aperta la sessione del terminale, esegui il comando riportato di seguito per aggiornare la blacklist di Pi-hole con gli URL.

pihole -g

Riesegui pihole -g di tanto in tanto per mantenere aggiornato il tuo ad blocker.

Blocco dei siti web tramite blacklist di URL mantenute dalla comunità

Alcuni URL sono dedicati ad essere aggiornati regolarmente dai loro contributori, mentre altri no, quindi caricare una blacklist da un elenco vecchio potrebbe non riflettere le ultime modifiche.

Sfrutta la funzione di gestione del gruppo di liste di blocco di Pi-hole. Sulla dashboard di Pi-hole, clicca su Gestione GruppiListe di annunci nel pannello di sinistra, quindi clicca su Aggiungi per scegliere l’elenco di URL che desideri aggiungere a Pi-hole.

Adding a Community-Maintained Blacklists of URLs for Pi-hole to Block

Conclusione

In questo tutorial, hai imparato come scaricare un’immagine Docker di Pi-Hole, testare un’interfaccia web di Pi-hole con ascolto attivo, testare un dispositivo esterno per connettersi a Pi-hole. Hai anche imparato come bloccare annunci e siti web e hai visto in azione il cruscotto di Pi-hole mentre li blocca.

Con questa conoscenza, perché non utilizzare qualsiasi macchina host per bloccare annunci su altri dispositivi connessi alla stessa rete?

Source:
https://adamtheautomator.com/pi-hole-in-docker/