Installazione di PiHole all’interno di Docker tramite Portainer su Raspberry Pi
In un articolo precedente ho spiegato come installare PiHole su Raspberry Pi, ma in questo caso lo andremo a installare e configurare all’interno di Docker.
Per semplificare questo processo andremo ad utilizzare Portainer.io (in questo articolo ho spiegato come installarlo), per cui apriamo il nostro browser web ad apriamo l’URL:
http://192.168.1.100:9000/
(fai attenzione a sostituire 192.168.1.100 con l’IP del nostro Raspberry PI).
Una volta eseguito l’accesso con le credenziali amministrative, posizioniamoci nella pagina Containers (selezionandolo dal pannello di navigazione sulla sinistra) e da qui clicchiamo sul bottone “Add container“. Ora assegnamo il nome del nostro container (pihole), come registry lasciamo selezionato “DockerHub” e nel campo image.io digitiamo “pihole/pihole:latest“.
Scorriamo la pagina posizionandoci nella sezione successiva dove andremo a configurare l’esposizione di alcune porte di rete all’immagine di PiHole.
Per cui clicchiamo sul tasto “publish a new network port
” per ciascuna porta.
In particolare aggiungiamo le seguenti porte:
- host 80 -> container 80 tipo TCP
- host 443 -> container 443 tipo TCP
- host 53 -> container 53 tipo TCP
- host 53 -> container 53 tipo UDP
Scorriamo ulteriormente la pagina e posizioniamoci nella sezione “Advanced container settings” e subito sotto selezioniamo la voce “Volumes“.
Qui non dovremo far altro che mappare alcune cartelle contenuto nel nostro container con alcune cartelle nel nostro Raspberry Pi. Per aggiungere questo “mapping” clicchiamo sul tasto “map additional volume” per ciascuna cartella.
Le cartelle da configurare saranno:
container: /etc/dnsmasq.d
tipo Bind host: /home/pi/pihole/dnsmasq.d
Writable
e
container: /etc/pihole
tipo Bind host: /home/pi/pihole/pihole
Writable
Ora selezioniamo la voce “Network“, qui non dovremo far altro che attribuire il nome host di rete al container, attribuirgli un MAC address ed inserire i server DNS (quello principale lo faremo puntare a se stesso inserendo 127.0.0.1)
Ora spostiamoci nella sezione “Env” e qui andremo a dare alcune configurazioni di base al nostro PiHole come ad esempio la TimeZone da adottare, i server DNS e la password per l’accesso web alla configurazione di PiHole. (per ogni riga cliccare sul tasto “add environment variable“)
L’ultima cosa che dobbiamo impostare è la policy di riavvio. Clicchiamo sulla scheda “Restart policy” e quindi cliccare sul pulsante “Unless stopped“. Questa opzione significa che il container Pi-hole si riavvierà sempre in caso di crash e si avvierà anche dopo l’avvio del Raspberry Pi.
Il container si arresterà esclusivamente in modo manuale. Questo è ciò che vogliamo poiché è fondamentale che il server DNS sia sempre in esecuzione sulla nostra rete. Una volta che si passa all’utilizzo del server DNS Pi-hole, se questo si interrompe, i dispositivi di rete non sapranno più come risolvere le richieste DNS e il tuo traffico di rete non saprà dove andare.
Ora facciamo clic su “Deploy container” al centro della pagina. Pi-hole dovrebbe essere attivo e funzionante dopo poco tempo! Alla fine dovremmo vedere che è etichettato come “healthy” al termine del caricamento:
Per visualizzare la pagina di amministrazione di pihole, andiamo al senguente URL http://192.168.1.100/admin
(anche qui sostituire l’IP 192.168.1.100 con quello del nostro RaspberryPi). Dovremmo essere in grado di vedere la seguente pagina (dopo aver effettuato l’accesso con la nostra password di amministratore):
Tutto ciò che resta da fare è configurare il router per utilizzare il server DNS Pi-hole.
una domanda da neofita nella sezione network il mac dove lo trovo? inoltre volevo sapere se era possibile dare a pihole un indirizzo ip a scelta. grazie