Stanchi di essere bombardati da pubblicità ogni volta che navigate su internet o utilizzate un'app per dispositivi mobili? Bene, esiste una soluzione fantastica chiamata Pi-hole, che funziona essenzialmente come un filtro DNS intelligente . La parte migliore è che non è necessario installare nulla su ogni dispositivo di casa; il sistema opera dal cuore della rete, intercettando e bloccando i contenuti indesiderati prima ancora che raggiungano lo schermo.
Per configurare questo sistema, l'opzione più intelligente al momento è utilizzare Docker. Inserendo Pi-hole in un container, si evita di sovraccaricare il sistema operativo del computer, si semplificano enormemente gli aggiornamenti e si sfrutta al massimo l'hardware , che si tratti di un Raspberry Pi, di un server datato o persino di una macchina virtuale con Ubuntu o Debian, senza alcun conflitto di servizi.
Prerequisiti e preparazione del sito
Prima di iniziare, è importante notare che Pi-hole è estremamente leggero. Per farlo funzionare senza problemi, sono necessari solo circa 512 MB di RAM e tra 2 e 4 GB di spazio su disco. Per quanto riguarda il sistema operativo, funziona perfettamente con le distribuzioni che utilizzano systemd o sysvinit, come Debian, Ubuntu, Fedora o Raspberry Pi OS.
Un punto critico è la rete. Affinché il sistema sia stabile, Pi-hole richiede un indirizzo IP statico . Se non si desidera configurare manualmente il server, è possibile riservare un indirizzo IP sul router in modo che assegni sempre lo stesso indirizzo al computer che ospita il container.
Distribuzione di Pi-hole tramite Docker
Il modo più semplice per configurarlo è tramite un file docker-compose.yml . Questo metodo consente di definire tutta la configurazione in una sola volta. È fondamentale mappare i volumi (come /etc/pihole e /etc-dnsmasq.d) a cartelle locali sul proprio host, in modo che, aggiornando l'immagine del container, non si perdano tutte le configurazioni o le blacklist.
Nel file di configurazione, presta attenzione alle porte. La porta 53 è fondamentale per il DNS e deve essere libera. Se noti che il container non si avvia, è probabile che systemd-resolved o dnsmasq stiano utilizzando quella porta sull'host. In questi casi, dovrai disabilitare il servizio in conflitto o configurare un bridge per reindirizzare il traffico.
Se decidi di utilizzare Pi-hole anche come server DHCP, ricorda di aggiungere la funzionalità NET_ADMIN nella sezione cap_add del file compose e, preferibilmente, di utilizzare la modalità di rete host (network_mode: host) per evitare problemi di connettività.
Configurazione iniziale e gestione degli accessi
Una volta eseguito il comando docker-compose up -dIl sistema sarà attivo. Per accedere al pannello di controllo, connettiti all'indirizzo IP del tuo server tramite la porta che hai assegnato (80 per impostazione predefinita, ma puoi cambiarla in 8080 o 89 per evitare conflitti con altri server web). Se non hai definito una password nella variabile d'ambiente... PASSWORD WEBIl sistema genererà un numero casuale che potrai trovare controllando i log con il comando docker logs pihole | grep random.
Per una maggiore sicurezza, è meglio cambiare rapidamente quella password. Puoi accedere al terminale del container usando docker exec -it pihole /bin/bash ed esegui il comando pihole -a -p Impostare una password facile da ricordare per te, ma difficile da memorizzare per gli altri.
Filtraggio a monte e ottimizzazione DNS
Per garantire che Pi-hole sappia a chi rivolgersi quando non riconosce un indirizzo, è necessario configurare un server DNS a monte. Un'opzione molto affidabile è Quad9 ; è sufficiente selezionare i suoi server filtrati (come 9.9.9.9) nella scheda delle impostazioni DNS. Questo aggiunge un ulteriore livello di sicurezza e privacy alla navigazione.
Il cuore di Pi-hole sono le sue blacklist. Se vuoi iniziare con qualcosa di solido, puoi aggiungere la lista di StevenBlack . Ogni volta che modifichi le liste, sia eliminando voci con SQLite3 che aggiungendo nuovi URL, è fondamentale andare su Strumenti ed eseguire Aggiorna Gravity in modo che il database venga aggiornato e le modifiche abbiano effetto.
Suggerimenti avanzati: domini locali e gestione
Se hai più servizi a casa, puoi creare nomi di dominio locali per evitare di dover memorizzare gli IP. Per fare ciò, crea un file chiamato local.list Sul volume Pi-hole montato, definire l'indirizzo IP e il formato del dominio. Quindi, creare un file di configurazione per dnsmasq che faccia riferimento a tale elenco e riavviare il container.
Per gestire il sistema senza accedere al sito web, esistono comandi molto utili che è possibile eseguire dall'host. Ad esempio, per aggiungere un dominio alla blacklist, utilizzare `pihole -b mydomain.com` , oppure per disabilitare temporaneamente il filtro per 10 minuti, è possibile utilizzare `pihole disable 10m` , il che risulta molto utile quando un sito web legittimo viene bloccato per errore.
Assumere il controllo della pubblicità domestica è assolutamente fattibile combinando hardware di base con la flessibilità di Docker, assicurandosi che la porta 53 sia libera e configurando correttamente i volumi per la persistenza dei dati. Una volta regolato il DNS sul router e ottimizzate le liste Gravity, potrai godere di una rete più pulita e molto più veloce su tutti i tuoi dispositivi.
