Installare Pi Hole su Raspberry Pi


Pi Hole, o meglio Pi-Hole, è uno strumento che si pone come blocco delle pubblicità (ad blocker) in una rete.
Non è facile spiegare le funzionalità di questo strumento se non con un esempio.
Le televisioni collegate ad Internet trasmettono informazioni sull’utilizzo periodicamente al produttore, agli sviluppatori delle app installate e a terze parti. Oltre a queste informazioni talvolta mostrano anche delle pubblicità e dei sondaggi.
L’obiettivo di Pi Hole è quello di contrastare queste azioni perchè spesso il proprietario del TV o del dispositivo “intelligente” non vorrebbe essere monitorato e trova che le continue pubblicità siano fastidiose.

Scopriamo come installare Pi Hole su Raspberry Pi.
Il Raspberry Pi che andremmo ad utilizzare è un vecchio Raspberry Pi 1 B (con 512 MB di RAM), le esigue risorse di ram non permettono un uso in multitasking del vecchio Raspberry che verrà dedicato a Pi Hole.
Scarichiamo l’immagine di Raspberry Pi OS da https://www.raspberrypi.com/software/operating-systems/#raspberry-pi-os-32-bit, scegliamo l’immagine lite (senza desktop).
Se usiamo Windows possiamo usare un tool come Win32DiskImager per scrivere l’immagine su una scheda SD (da almeno 8 GB). Se invece usiamo Linux non è necessario un tool non integrato col nostro sistema, infatti si può usare un banalissimo:

xz --decompress 2022-09-22-raspios-bullseye-armhf-lite.img.xz | sudo dd of=/dev/sdb bs=4M status=progress conv=fsync

dove 2022-09-22-raspios-bullseye-armhf-lite.img.xz è il file scaricato di Raspberry Pi OS e /dev/sdb è il device associato alla vostra SD card.

Terminata la scrittura della SD card, scolleghiamola e inserimo la scheda nel Raspberry Pi e avviamo il sistema dandogli corrente.
Tipicamente Raspberry Pi acquisisce un indirizzo IP automaticamente se la vostra rete dispone di un server che distribuisce IP (un DHCP server), qualora non ci fosse è necessario collegare tastiera e monitor per configurare Raspberry Pi.
L’account da usare per collegarsi viene creato al primo avvio, potete scegliere un username che desiderate.

Se avete anche voi un Raspberry Pi vecchio è meglio abbassare la memoria assegnata alla scheda video da 64 MB a 16 MB in modo da avere più RAM per Pi-Hole. Questa cosa si può fare usando il comando “sudo raspi-config“.

E’ necessario assegnare un IP statico, ossia che non cambia, al vostro Raspberry Pi perchè tale IP va impostato come DNS server sui vostri dispositivi oppure potete impostare questo indirizzo nel vostro router cosicchè se il vostro router fa anche da DNS server, Pi Hole diventerà il DNS server del vostro router e non sarà necessario modificare il DNS su tutti i vostri dispositivi casalinghi a mano.

Per assegnare un IP statico è sufficiente modificare il file /etc/dhcpcd.conf insendo queste righe:
interface eth0
static ip_address=192.168.1.100/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1

dove 192.168.1.1 è l’indirizzo IP del vostro router (che agisce come gateway) e 192.168.1.100 è l’indirizzo statico che assegnerete a Pi-Hole.
Ora riavviate il Raspberry Pi perchè in seguito procederemo all’installazione di Pi Hole.

L’installazione di Pi Hole è assai banale, è sufficiente lanciare questo comando:

curl -sSL https://install.pi-hole.net | bash

Nell’interfaccia di configurazione che apparirà vi verrà chiesto quali DNS usare per risolvere gli indirizzi. Scegliamo OpenDNS.
Al termine verrà mostrata la password per l’interfacia grafica di Pi Hole, mi raccomando annotiamocela.
Per accedere all’interfaccia grafica di Pi Hole è sufficiente usare questo indirizzo su un browser:
http://192.168.1.100/admin dove 192.168.1.100 è l’ip statico che abbiamo scelto per il Raspberry Pi.

Se l’interfaccia si apre correttamente, in generale l’installazione ha avuto buon fine. Ora possiamo impostare 192.168.1.100 (ossia l’ip del Raspberry Pi) come DNS del nostro router oppure dei nostri dispositivi casalighi come TV, prese intelligenti ed altro.

Come funziona Pi-Hole?

Pi Hole nei fatti agisce come un DNS server che consente di risolvere indirizzi Internet come cdn.samsungcloudsolution.com in 95.101.22.226. In questo modo quando il vostro TV vuole risolvere il nome cdn.samsungcloudsolution.com, Pi hole gli risponderà 95.101.22.226.
Supponiamo che alcuni network pubblicitari usino dei particolari indirizzi per veicolare la pubblicità. Per esempio ad.doubleclick.net (al momento 142.251.1.149) è usato per le pubblicità di Double Click, in questo caso Pi Hole invece che rispondere con l’ip 142.251.1.149 risponde con 0.0.0.0 nei fatti dicendo che ad.doubleclick.net non è risolvibile e quindi il banner pubblicitario non viene scaricato.

Pi Hole ha dei limiti proprio nella suo metodo di funzionamento. Non è propriamente un Ad blocker come si definisce per il semplice fatto che non tutti i siti porpalano le pubblicità su uno specifico indirizzo Internet diverso da quello dove veicolano i contenuti: il caso più significativo è Youtube. Infatti se intendete usare Pi Hole per bloccare le pubblicità di Youtube farete un buco nell’acqua. In questo caso è più efficiente un tool come uBlock Origin, Adblock Plus ma che difficilmente si può installare su televisori.

Allora perchè è utile Pi Hole?

Usate Netflix sul vostro TV? Io mai, eppure l’app di Netflix frequentemente raccoglie dati ma non è l’unica in quanto Mediaset e altre come Amazon, Google sono lì a raccogliere informazioni sul mio televisore e tutti gli apparecchi come smartphone, prese intelligenti…