ph-whitelist: Gestisci dinamicamente la Whitelist di Pi-hole

Gioxx  —  03/06/2019 — Leave a comment

Ci siamo, mi sono finalmente ritagliato il tempo necessario per parlarti di un progetto collaterale all’installazione di un RPi in casa sul quale ho successivamente configurato con molta soddisfazione Pi-hole. Si chiama ph-whitelist e contrariamente al mio solito (considerando cosa faccio per Adblock Plus e simili) autorizza il funzionamento di siti web che potrebbero finire tra quelli bloccati da Pi-hole!

ph-whitelist: Gestisci dinamicamente la Whitelist di Pi-hole

Una questione di Whitelist

Non posso parlarti di blacklist più di quanto non abbia già fatto nel precedente articolo dedicato a Pi-hole (Pi-hole: installazione e prima configurazione), ti avevo però anticipato qualcosa in merito ai siti web autorizzati e all’uso della funzione di Whitelist integrata nel software, a oggi non efficiente quanto quella dedicata all’aggiunta di fonti dalle quali pescare indirizzi web da mettere alla gogna. Il problema è facilmente aggirabile da Terminale collegato via SSH a RPi, io ho solo migliorato una soluzione già esistente (github.com/anudeepND/whitelist) e arricchito ulteriormente la sorgente di file contenenti indirizzi leciti da dare in pasto a Pi-hole.

Perché farlo?

Perché a oggi esistono e continuano a nascere davvero molte liste di siti web e più in generale indirizzi che finiscono in blocco apparentemente senza motivo, questi generano poi anomalie e problemi di navigazione ai dispositivi facenti parte di reti protette da Pi-hole. Si finisce per dare la colpa a un prodotto quando in realtà quel “merito” dovrebbero prenderselo coloro che le liste le creano e – in qualche caso – smettono di mantenerle. Quello che per qualcuno potrebbe essere considerato “nocivo” per qualcun altro potrebbe essere invece lecito o necessario per lavoro.

Per questo motivo – prima di raccontarti cosa fa lo script e come utilizzarlo – ti voglio parlare delle liste autorizzative.

ListaScopo
safeLa whitelist di anudeepND (github.com/anudeepND/whitelist/blob/master/domains/whitelist.txt). Integro poi tutti i domini riportati nella discussione discourse.pi-hole.net/t/commonly-whitelisted-domains/212/27, costantemente monitorati e aggiornati (go.gioxx.org/ph-whitelist-integrations).
referralAlcuni siti web potrebbero non funzionare se questi domini non si trovano in whitelist (github.com/anudeepND/whitelist/blob/master/domains/referral-sites.txt). Per questo motivo è sempre possibile chiedere a ph-whitelist di integrarli in Pi-hole. La lista è curata da anudeepND.
statsIn parte suggeriti dalla comunità, in parte da me integrati dopo aver verificato alcuni piccoli malfunzionamenti nel quotidiano utilizzo di browser e applicativi di terze parti. Si tratta di domini che possono tracciare statistiche d'uso da parte dell'utente, ma non sono nocivi per la sicurezza della propria navigazione (go.gioxx.org/ph-whitelist-stats).
facebookSblocca qualsiasi dominio legato a Facebook, gli indirizzi sono stati suggeriti e verificati dalla comunità di Pi-hole (discourse.pi-hole.net/t/commonly-whitelisted-domains/212/27), li ho consapevolmente scorporati dalla lista safe e dalla mia integrazione poiché non a tutti fa comodo o piacere sbloccare i domini legati al colosso di Zuckerberg (go.gioxx.org/ph-whitelist-fb).

Le stesse liste con relative spiegazioni e con ulteriori informazioni sono raccolte nel nuovo sito web dedicato al progetto, ospitato all’indirizzo pihole.noads.it. Contestualmente ho messo in ordine anche il README del fork ph-whitelist su GitHub. Tutti gli indirizzi riportati nelle liste possono essere messi in discussione e subire modifiche in qualsiasi momento, puoi aprire segnalazioni per integrarne di nuovi o rimuoverne di presenti (giustificando tale richiesta).

Come utilizzare ph-whitelist

Niente di più semplice. Collegati in SSH al tuo RPi, spostati nella cartella che preferisci (io utilizzerò come esempio la home dell’utente pi) e lancia il comando:

wget -N https://pihole.noads.it/whitelist.sh

L’indirizzo ti riporta in realtà su GitHub, ma così facendo diventa molto più corto e facile da ricordare e utilizzare. Il comando sopra riportato ti permetterà di scaricare sul tuo RPi lo script bash che si occuperà di aggiornare la whitelist della tua installazione Pi-hole. Per poter utilizzare lo script occorrerà prima renderlo eseguibile:

chmod +x whitelist.sh

Il gioco è ormai fatto. Lancia ora whitelist.sh utilizzando sudo e dandogli in pasto il nome di una lista che vuoi portare sul tuo RPi (esempio: sudo ./whitelist.sh safe). Questo lancerà il download del materiale necessario da GitHub, da unire ai filtri già esistenti sulla tua installazione Pi-hole. Il processo dura una manciata di secondi e potrai immediatamente giovare della novità. Puoi verificare tu stesso il risultato accedendo alla dashboard amministrativa di Pi-hole e spostandoti sotto Whitelist (dal menu di sinistra):

ph-whitelist: Gestisci dinamicamente la Whitelist di Pi-hole 2

Esistono a oggi 4 tipi di liste che puoi scaricare tramite ph-whitelist, come già riportato nel paragrafo precedente di questo articolo. Se un domani dovessi integrarne di nuove, le troverai sul sito ufficiale del progetto. Oltre alle liste, lo script di bash permette di richiamare alcune azioni di manutenzione che potresti trovare utili nel corso del tempo:

  • demo: per scaricare e integrare in Pi-hole un solo indirizzo “dimostrativo” all’interno della Whitelist, si tratta più che altro di un metodo rapido per assicurarti che tutto funzioni correttamente (il sito che troverai in Whitelist sarà quello di progetto, quindi pihole.noads.it).
  • clear: per effettuare uno svuotamento totale della Whitelist del tuo Pi-hole, ricominciare da zero secondo le tue regole o tramite le liste che ti offro.
  • upgrade: per aggiornare lo script whitelist.sh che regola il download e l’integrazione dei nuovi filtri all’interno del tuo Pi-hole, da utilizzare solo quando (e se) rilascerò nuove versioni dello script, annunciate tramite questo blog o repository GitHub.

Quello che tu puoi fare per sfruttare al meglio lo script è richiamarlo all’interno delle operazioni Crontab del tuo RPi, per farlo ho cercato di riportarti una descrizione chiara e completa all’indirizzo pihole.noads.it/#crontab. Se qualcosa non dovesse essere troppo chiara non esitare a lasciare un commento a quest’articolo per ottenere assistenza.

Credo di averti detto praticamente tutto, non resta quindi che lasciarti giocare con le risorse messe a disposizione e chiederti di farmi sapere se si può fare qualcosa per migliorare ulteriormente il lavoro pubblicato, il contributo di tutti è fondamentale per la crescita corretta del progetto.

Buona navigazione!


Grazie a regex101.com per l’ottimo strumento messo a disposizione, ad Anudeep per la base messa a disposizione e Andrea Draghetti per avermi fatto conoscere questo repository.
Condividi l'articolo con i tuoi contatti: