In questo articolo spiegheremo come installare Pi-Hole, un server DNS open source che permette di bloccare il 90% delle pubblicità presenti sui siti (adv.) o link ad esse. Anche se l’installazione è molto semplice, è bene avere una conoscenza base dei sistemi Linux e sapere come configurare il proprio router di casa per la modifica del DNS e per riservare un IP del pool del DHCP per il Raspberry.
Per poter procedere all’installazione e configurazione di Pi-Hole, è necessario possedere un Raspberry Pi con versione Stretch o Buster di Raspbian, almeno 52 MB di spazio disponibile, 512 MB di RAM e impostare un IP statico al Raspberry che sarà l’indirizzo del nostro server DNS.
Per questo articolo verrà utilizzato un Raspberry Pi3 B+
Per prima cosa apriamo una sessione del terminale (shell) del nostro Raspbian e digitiamo il comando riportato a seguire. Nota che l’utente deve far parte degli utenti sudo o essere l’utente root:
curl -sSL https://install.pi-hole.net | bash
Il sistema chiederà di inserire la password come mostrato nell’immagine allegata
Inserita la password, partirà quindi il wizard di installazione che ci guiderà nei vari passaggi di configurazione di Pi-Hole
Per la maggior parte delle schermate che si presenteranno, sarà sufficiente premere invio lasciando le configurazioni proposte, configurazioni che potranno eventualmente essere modificate in un secondo momento, tramite la console amministrativa che vedremo più avanti.
Nelle due schermate successive a quelle di benvenuto, si ricorda che Pi-Hole è un progetto gratuito, ma sostenuto dalle donazioni degli utenti e che è necessario configurare il Raspberry con un IP statico, come riportato nell’introduzione di questo articolo.
Nella schermata successiva è richiesta la selezione del tipo di connessione del Raspberry, se di tipo wired (eth0) o wireless (wlan0). Nel nostro caso utilizzando una connessione wired (con filo), lasciamo selezionato eth0 e proseguiamo con invio.
È necessario poi scegliere il tipo di Provider DNS per l’upstream (le richieste verso l’esterno). Il wizard di default ci propone Google come provider DNS, ma noi preferiamo utilizzare OpenDNS, che a diseptto del nome non è un servizio open source, ma è meno “controllato”, libero da vincoli e controlli sul traffico effettuato.
Nello step successivo viene richiesto di selezionare le liste relative alle pubblicità da bloccare: lasciatele selezionate tutte come proposto e procedete nel wizard cliccando invio.
Nella schermata successiva viene richiesto di selezionare il tipo di protocollo da utilizzare, IPv4 o IPv6.
Non avendo sulla nostra rete indirizzi IPv6 da gestire, ci spostiamo con le freccette direzionali sulla voce IPv6 e, premendo spazio, deselezioniamo tale opzione. Poseguiamo nel wizard di installazione premendo invio.
Successivamente verrà mostrata la schermata con l’indirizzo IP assegnato al Raspberry e il wizard ci chiederà se vogliamo utilizzarlo come indirizzo IP statico per il nostro server DNS.
Avendolo configurato a priori come IP statico, confermiamo tale valore premendo invio per passare allo step successivo.
La schermata che segue ci ricorda quello che avevamo anticipato nell’introduzione dell’articolo, ossia quando abbiamo evidenziato che è necessario saper riservare un indirizzo IP del pool del nostro DHCP attraverso la configurazione del modem fornito dal nostro Provider internet.
Il messaggio ci spiega che il router/modem potrebbe assegnare l’indirizzo IP usato dal Raspberry ad un altro dispositivo associato alla nostra rete.
Tale eventualità però è abbastanza remota considerando che i router/modem sono abbastanza intelligenti da ricordare l’associazione mac address / IP address, per cui difficilmente l’indirizzo IP, anche se non riservato, potrebbe essere assegnato ad un altro dispositivo sulla rete e creare un conflitto. Ad ogni modo noi consigliamo di escludere l’IP dal pool DHCP per evitare a priori un eventuale conflitto.
Le schermate successive richiedono se attivare o meno l’interfaccia amministrativa, il web server, il logs sulle queries effettuate e che tipo di opzione di privacy selezionare (tracciamento dei siti visitati e logs delle adv. bloccate). In queste schermate, a meno di non avere particolari esigenze di configurazione, lasciate tutto come proposto (di default) e proseguite cliccando invio fino a che non verrà mostrato il riepilogo del serverino DNS configurato, con il dettaglio della password per accedere alla console amministrativa (da conservare) e il termine dell’installazione.
Nelle foto successive verranno evidenziati suddetti passaggi quale maggiore dettaglio.
Accediamo ora alla console amministrativa tramite l’indirizzo http://
Clicchiamo sul link “login” sul lato destro della pagina e nella nuova schermata che si presenta inseriamo la password mostrata nel precedente riepilogo, prima della fine del wizard di installazione.
Cliccando nuovamente su “login” accediamo quindi a tutte le feature della console amministrativa.
Dalla console amministrativa è possibile, oltre che apportare eventuali modifiche alla configurazione del nostro Pi-Hole (link settings), aggiungere esclusioni nella withelist e nella blacklist dei domini già presenti nelle liste a cui facciamo riferimento.
Se per esempio effettuiamo una ricerca su Google relativa ad un eventuale prodotto che vorremmo acquistare, il motore di ricerca ci mostrerà fra i primi risultati gli annunci a pagamento relativi a prodotti sponsorizzarti.
Il dominio a cui fa riferimento il prodotto non è bloccato da Pi-Hole, ma l’annuncio sponsorizzato da Google invece sì, per cui cliccando su quella inserizione mostrata da Google, ci verrà restituito l’errore “pagina non disponibile”. Se non vogliamo che Pi-Hole blocchi il sistema di inserizioni di Google, dobbiamo aggiungere il relativo dominio alla whitelist, al fine di creare un’esclusione. Ma come facciamo a sapere l’esatta nomenclatura del dominio relativo le inserzioni di Google?
La soluzione è accedere alla sezione “query log” della console ammnistrativa, nella quale sono elencati tutte le queries (le richieste) di tutti i clients collegati alla nostra rete, con la lista dei domini non bloccati (di colore verde) e di quelli bloccati (colore rosso).
Riportiamo a seguire gli screenshot della pagina principale della console amministrativa e il dettaglio della sezione query log.
Nella pagina “query log” è presente in alto a destra il campo “search”, digitando l’IP address del client dal quale avevamo ottenuto l’errore “pagina non disponibile”, filtriamo tutte le richieste di quel singolo client ottenendo la lista di tutte le richieste fatte al nostro serverino DNS.
Nella lista sarà presente anche il blocco al link sponsorizzato da Google (in rosso), con un tasto “whitelist” (di colore verde) che, se cliccato, permette di aggiungere nella sezione whitelist il nome di dominio, disabilitando di fatto il blocco ai link sponsorizzati da Google.
Conclusioni
Pi-Hole ci permette di interfacciare alla nostra rete un serverino DNS gratuito e dai costi contenuti. Il blocco dei domini può essere esteso a qualunque url, a prescindere che sia pubblicità o meno. Possono essere bloccati, per esempio, siti di giochi online, siti con materiale per adulti, etc., semplicemente aggiungendo nella blacklist i rispettivi domini.
E’ doverso riportare però che il blocco può essere arginato cambiando manualmente il DNS dal dispositivo dal quale navighiamo, ma seppur di semplice attuazione, ciò richiede quel minimo di conoscenza che non tutti hanno 😉