Più il programma è interessante, più sarà interrotto dalla pubblicità.
Arthur Bloch
La pubblicità non è solo fastidiosa ma, quando si parla di web, può anche essere pericolosa: i banner pubblicitari mostrati su molti siti web possono nascondere insidie e pericoli, rivelare la nostra presenza in Rete a terze parti e rallentare la velocità della navigazione.
Ci sono svariate soluzioni per difendersi, come gli adblocker (ad esempio uBlock Origin), semplici da installare sul proprio PC o come estensione per il browser. Queste soluzioni, tuttavia, non coprono la sempre più ampia gamma di dispositivi IoT installati nelle nostre abitazioni, rendendo quindi parziale la protezione: non è un caso se sempre più attacchi cyber si concentrano verso questi dispositivi, generalmente più vulnerabili di PC e smartphone.
Una soluzione più efficace può essere l’uso di un proxy, come Privoxy, che però deve essere configurato sui dispositivi e non intercetta le chiamate non HTTP.
Per questi motivi si sono diffusi da qualche anno sistemi di filtro basati sulle query DNS che, anche se non perfetti, si sono dimostrati sufficientemente efficaci e, soprattutto, richiedono poche risorse e non rischiano di creare antipatici “colli di bottiglia” sulla connessione di rete.
PiHole, uno dei più famosi e collaudati, può essere installato comodamente su una board OrangePi Zero con 512MB di RAM a meno di 10€ (potete anche puntare sul più blasonato RaspberryPi, ma il prezzo è superiore) e protegge piuttosto bene la nostra rete casalinga.
In pratica, PiHole si “sostituisce” al vostro server DNS e intercetta tutte le richieste, scegliendo quale approvare e quale no secondo una blacklists che contiene i siti malevoli, trackers e pubblicità
Predisporre il sistema
Abbiamo il nostro OrangePi zero tra le mani, insieme a una mini-SD da almeno 8-16GB dove installare il sistema operativo. Consiglio fortemente di usare Armbian nella sua ultima release per server, scaricabile gratuitamente da qui: dl.armbian.com/orangepizero/Bionic_current
Scriviamo l’immagine ISO nella mini-SD e inseriamola nello slot dell’OrangePi. Colleghiamolo alla rete casalinga (consiglio fortemente di usare il cavo ethernet), colleghiamo l’alimentazione via USB e attendiamo il boot del sistema. Seguendo le istruzioni (docs.armbian.com/User-Guide_Getting-Started/#how-to-login) accendiamo via SSH alla console e impostiamo un IP fisso per il nostro OrangePi, fuori dal range del server DHCP. Ad esempio, se avere una rete casalinga 192.168.1.x, con 192.168.1.1 come IP del router, potete impostare 192.168.1.2 come IP della OrangePi.
L’installazione di Pi-Hole è decisamente semplice e banale. Da utente root date il comando:
curl -sSL https://install.pi-hole.net | bash
e seguite poi le indicazioni a video, fino al termine della procedura. Se il tutto si completa senza errori, aprendo un browser e navigando su 192.168.1.2 dovrebbe darvi il benvenuto il logo verde e rosso, su sfondo nero, di Pi-Hole. Cliccando su link subito sotto o navigando su /admin, si accede all’interfaccia di riepilogo e amministrazione.
Cliccando su “Login” nel menù a sinistra, e inserendo la password di amministrazione, si accedere al pannello di controllo. (TL;DR impostate la password di amministrazione digitando, da consolle, il comando: pihole -a -p securepassword
)
Configurare la rete per usare Pi-Hole
Come dicevo, PiHole si sostituisce al server DNS di default (generalmente quello del router, che poi fa un semplice forward verso il DNS del provider) per intercettare e bloccare le chiamate verso siti non desiderati (trackers, pubblicità…).
Per farlo funzionare, quindi, ci sono due opzioni alternative e complementari:
- impostare come server DNS, su tutti i dispositivi nella nostra rete, l’IP del PiHole (es. 192.168.1.2);
- impostare l’IP del Pi-Hole come server DNS fornito dal DHCP alle richieste dei dispositivi;
Personalmente suggerisco la seconda, ma qui è difficile darvi istruzioni più precise perché dipendono dal Vs router.
Se avete un router con OpenWRT potete anche impostare il DNS forwarding verso il Pi-Hole, evitando di dover modificare ulteriori impostazioni: sarà il router a inoltrare automaticamente le stesse.
Per verificare le impostazioni DNS del vostro sistema potete:
- su Windows, potete aprire un terminale (“cmd“) e digitare
ipconfig /all
. Tra le varie voci, troverete anche quella relativa ai server DNS attualmente in uso. Qui deve comparire l’IP del PiHole; - su GNU/Linux, dipende da cosa usate. Potrebbe essere in /etc/resolv.conf oppure, se avete systemd, lanciare il comando
systemd-resolve --status
; - su Android potete usare una app come DNSChanger;
Potete verificare se Pi-Hole funziona correttamente visitando questa pagina: Block AdBlock test page. Se compare il popup, Pi-Hole funziona perfettamente ;-)
Discovering Pi-Hole
Non appena Pi-Hole entrerà in funzione e la rete sarà correttamente configurata, inizierà a ricevere le richieste DNS provenienti dai dispositivi connessi. Il contatore in prima pagina inizierà a crescere velocemente di numero e, dopo essersi autenticati nell’interfaccia di amministrazione, i dettagli delle chiamate permesse e bloccate ci permetteranno di avere una idea più precisa di cosa accade sulla nostra rete casalinga.
Per la stragrande maggioranza dei contesti non c’è bisogno di fare altro. Pi-Hole farà il suo “sporco” lavoro, bloccando le pubblicità invasive che trovate a giro sul web in modo pulito e discreto.
Dall’interfaccia di amministrazione, nel menù di sinistra, ci sono alcune funzioni che potrebbero tornare utili. Ad esempio, impostare alcuni siti web in white (concesso) o blacklist (negato). Magari perché non vogliamo, oppure desideriamo, andare su un sito bloccato. Funzione comoda, ad esempio, per impedire che i figli minorenni vadano su siti pornografici, di gioco online o di scommesse (e qui i vostri figli mi odieranno…).
C’è la possibilità di creare dei gruppi con permessi diversi, ma questa funzione è possibile solo se il DNS è impostato direttamente su Pi-Hole nei dispositivi (con il DNS forward non funzionerà).
Si può anche interrompere temporaneamente il blocco dei siti (“liberi tutti“) perché, magari, abbiamo una necessità e sospettiamo che Pi-Hole blocchi la connessione.
Ovviamente bisogna ricordarsi di aggiornare la lista (“Update Gravity“) dei domini da bloccare ogni tanto. Generalmente lo fa da solo ma è sempre bene verificare, ogni tanto.
In conclusione
Con 10€, un po’ di software libero e qualche ora di tempo da dedicarci, si può migliorare sensibilmente la sicurezza e la velocità di navigazione della nostra rete casalinga. Inoltre, volete mettere la soddisfazione di dire ad amici e parenti che “l’ho fatto io!“?
Uso Pi-Hole ormai da molti anni con grande soddisfazione e l’ultima release, la 5.0, è davvero eccezionale. Ci sono anche altri prodotti, come ad esempio Dowse (che però fa una cosa sensibilmente diversa) o la FingBox (99€, non molto economica…), per mantenere sotto controllo la rete casalinga. Ma probabilmente Pi-Hole è, al momento, lo strumento più semplice e rapido da usare e implementare: un piccolo step in più per migliorare la sicurezza nostra e dei nostri familiari!