Finalmente ho trovato il tempo di configurare Pi-hole, un blackhole DNS (che nome figo) per eliminare gran parte (non tutto) del traffico internet relativo a pubblicità o tracker.
Il fuzionamento è molto semplice, funziona da DNS server (oltre che da DHCP se necessario) e controlla i record richiesti sulla base di varie blacklist. Nel mio caso di default sta usando questa.
Quando una risoluzione DNS fa matching con un record in blacklist viene bloccata.
Setup hardware iniziale
A casa uso un modem FritzBox 7530. Ho trovato un vecchio Raspberry Pi 2 Model B e l’ho collegato tramite USB per occupare meno prese della corrente. Non avevo un cavo di rete, questa è la spegiazione per cui il raspino ha anche un’antenna WiFi nonostante sia attaccato al router 😀
L’installazione di Pi-hole è molto semplice, ma prima di tutto ho dovuto installare il sistema operativo nel raspino. Devo dire che era molto tempo che non ci giocavo e mi aspettavo di dover copiare l’immagine sulla micro sd card tramite dd. Invece, ho potuto usare il comodissimo tool Raspberry Pi Imager.
Una volta installato il sistema operativo sul repo GitHub di Pi-hole c’è il mitico README con vari metodi di installazione. Io sono pigro e ho scelto questo:
Concluso il processo di installazione otterrete un riepilogo come il seguente:
[✓] Pi-hole Enabled
[i] Web Interface password: SuperSecretPass
[i] This can be changed using ‘pihole -a -p’
[i] View the web interface at http://pi.hole/admin or http://192.168.178.78/admin
[i] You may now configure your devices to use the Pi-hole as their DNS server
[i] Pi-hole DNS (IPv4): 192.168.178.78
[i] If you have not done so already, the above IP should be set to static.
Configurazioni sul router
Naturalmente sul FritzBox ho dovuto cambiare alcune cose a livello di DHCP.
Dare sempre lo stesso indirizzo al raspberry con Pi-hole
Fare in modo che il DHCP passi il corretto IP del nuovo DNS sever
Ora… questo è a tutti gli effetti uno SPOF ma per casa va bene.
La GUI di Pi-hole
Devo dire che l’interfaccia grafica è molto gradevole e si aggiorna in tempo reale. Riporto alcuni settaggi con cui ho interagito per il mio setup.
Inserimento manuale di un dominio in blacklist
Inserimento manuale di un dominio in whitelist
Aggiunta di adlist
Configurazione upstream DNS server
Alcuni test utili
Naturalmente è un sistema che va seguito. Soprattutto nella ricerca di adlist aggiornate. Non prentende di bloccare tutto, ma di sicuro sfoltisce gran parte delle URL spazzatura. Ho cercato su Google un primo risultato per un test in ambito ad-block ed è uscito fuori questo progetto: https://github.com/d3ward/toolz.
Andando su https://d3ward.github.io/toolz/adblock.html viene svolto un test automatico di cui non certifico la validità, ma con e senza Pi-hole si hanno risultati distinti.
Con Pi-Hole
Senza Pi-Hole (dalla GUI è possibile disabilitare Pi-hole facilmente per un tempo preimpostato)
Ho deciso quindi di aggiungere alla blacklist dei domini una lista riportata direttamente sul progetto https://github.com/d3ward/toolz e ho trovato un mirror su GitHub https://github.com/ookangzheng/dbl-oisd-nl.
Risultato finale
Caricando nelle blacklist https://raw.githubusercontent.com/ookangzheng/dbl-oisd-nl/master/dbl.txt presa da https://github.com/ookangzheng/dbl-oisd-nl#just-domains la percentuale di blocked host è salita.
Il tema è che Pi-hole è uno strumento che va curato per non incappare anche in eventuali falsi positivi o interruzioni di servizio.