Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Pi-hole, attivazione della protezione nella rete locale

Configurazione avanzata di Pi-hole per utilizzare RaspberryPi come ad-blocker.
Configurazione avanzata di Pi-hole per utilizzare RaspberryPi come ad-blocker.
Link copiato negli appunti

In un precedente articolo abbiamo introdotto le funzionalità di Pi-hole e esplorato la sua procedura di installazione. In questo, invece, vedremo come integrare il nostro dispositivo e cominciare a esaudire le richieste DNS dai client della rete locale.

Primo login e integrazione nella LAN

La dashboard di Pi-hole offre statistiche sulla percentuale di query bloccate e il numero complessivo di domini bloccati oltre a un semplice grafico esplicativo dell'andamento delle query DNS gestite nelle ultime 24 ore. Dopo aver effettuato il login la pagina si popola con ulteriori widget informativi sui domini più richiesti e i client più attivi. Al primo accesso, ovviamente, i log sono vuoti perchè i client non sono consapevoli dell'esistenza di questo nuovo server DNS interno. Il primo passo sarà dunque quello di impostare Pi-hole come server DNS primario per la rete locale. Le opzioni per farlo sono essenzialmente tre.

In primis, possiamo configurare staticamente i server DNS utilizzati da tutti i client nelle loro impostazioni di rete (o di interfaccia) del sistema operativo. Questa è la strada ideale da percorrere per chi vuole testare performance e affidabilità del sistema su un numero limitato di client (anche uno solo) prima di allargarne l'uso a tutti gli host presenti nella LAN. I client configurati staticamente, con l'indirizzo IP della Pi-hole come server DNS primario, saranno da essa protetti. Tutti gli altri continueranno a utilizzare normalmente quelli correnti (ovvero, con ogni probabilità, quelli di default del provider).

La procedura più comune, quindi raccomandata, per integrare Pi-hole in tutta la propria rete, prevede di sfruttare il server DHCP del proprio router con parametri personalizzati relativamente ai server DNS. Specificando l'indirizzo della Pi-hole come server DNS primario, quando i client richiederanno l'assegnazione di un indirizzo IP al router, otterranno dati supplementari che indicheranno loro di utilizzare la Pi-hole come server DNS predefinito.

Sebbene la quasi totalità dei router, tra cui quelli offerti in comodato d'uso dai provider di connettività, supportino la personalizzazione dei server DNS, alcuni potrebbero non consentirla. Pi-hole viene in soccorso anche qui: è possibile abilitare la funzionalità di server DHCP, con la quale Pi-hole si farà carico di assegnare un indirizzo IP ai client che lo richiedano, oltre all'indirizzo del default gateway (il router, personalizzabile) e dei server DNS (la Pi-hole, implicito). Sarà sufficiente abilitare la funzionalità in Settings > DHCP > DHCP server enabled e impostare l'intervallo di indirizzi assegnabili e l'indirizzo del router. È molto importante ricordare di disabilitare il servizio DHCP sul router prima di abilitare quello sulla Pi-hole, per evitare conflitti di assegnazione nella rete locale: i client acquisirebbero altrimenti l'indirizzo offerto dal primo dei due servizi DHCP che risponderà alla richiesta, quindi le informazioni DNS offerte dalla Pi-hole rischierebbero di essere ignorate. Il server DHCP presente in Pi-hole non ha molte altre funzionalità ma supporta quelle più importanti come le assegnazioni statiche (static DHCP leases) e la gestione di un dominio locale.

Operatività di Pi-hole

Un effetto collaterale del delegare alla Pi-hole tutte le funzionalità DNS mantenendo però il DHCP sul router è la perdita della possibilità di gestire un local domain, un dominio privato valido solo per la rete locale con cui diventa possibile indirizzare i singoli host attraverso i loro hostname senza dover memorizzare il loro indirizzo IP. Tipicamente nelle reti domestiche vengono utilizzati domini con estensione .lan o .local, valori comunque personalizzabili. La corrispondenza tra i valori nomehost.dominio e l'indirizzo IP dell'host viene infatti tracciata dal server DHCP: mantenendo questo servizio sul router la Pi-hole non ha modo di risolvere richieste DNS per il dominio locale. Per ovviare a questo problema è possibile attivare il Conditional Forwarding nella sezione Settings > DNS > Advanced. La Pi-hole gestirà tutte le query DNS, tranne quelle relative al dominio locale configurato, che verranno delegate in via eccezionale al router/server DHCP e le cui risposte verranno poi inoltrate al client in maniera trasparente.

Ora che la Pi-hole è in servizio, possiamo osservarne le operazioni nel Query Log: una tabella che elenca i domini richiesti da tutti i client e registra la risposta fornita. L'esito della richiesta è riassunto in uno Status, i più importanti dei quali sono tre:

  • OK (Forwarded) - Indica un dominio non bloccato e per il quale Pi-hole ha proceduto alla risoluzione dell'indirizzo IP, attraverso il forwarder scelto dall'utente.
  • OK (Cached) - Indica un dominio non bloccato già risolto da Pi-hole in precedenza per il quale la risposta proviene dalla cache.
  • Pi-holed - Il dominio è presente nelle blacklist di Pi-hole. Al client è stata data una risposta fittizia indicante la non-esistenza del dominio.

Direttamente dal Query Log possiamo aggiungere o rimuovere domini dalle liste di blocco attraverso, rispettivamente, i tasti azione Blacklist e Whitelist. Nelle omonime sezioni è possibile specificare inclusioni più dettagliate, mediante wildcard o espressioni regolari. Se ci fosse necessità di seguire in tempo reale le query gestite dalla Pi-hole, lo strumento ideale è Tools > Tail pihole.log, che espone via interfaccia web l'output di uno dei più classici comandi shell di consultazione log.

La lista dei domini bloccati (chiamata scherzosamente gravity in riferimento al "buco nero" rappresentato da Pi-hole) può essere aggiornata dalla sezione Tools > Update Gravity. Si tratta di un'operazione fondamentale da compiere periodicamente vista la natura estremamente dinamica delle liste redatte in crowdsourcing.

Manutenzione e troubleshooting

Per quanto riguarda l'aggiornamento del sistema nel suo complesso, valgono le note procedure per ogni sistema operativo Raspbian. L'aggiornamento del sottosistema Pi-hole è invece gestito dall'apposita utility CLI, con il comando pihole -up.

Qualora fosse necessario procedere al troubleshooting di un problema di accesso ad una risorsa in rete, è possibile disabilitare temporaneamente o permanentemente il blocco a livello dominio di Pi-hole nella sezione Disable. Pi-hole continuerà ad operare regolarmente come DNS server/forwarder, ma risponderà a tutte le richieste senza onorare la blacklist.

Concludiamo con una tabella di riferimento delle opzioni di pihole più importanti, che permettono di eseguire anche via shell molti dei task accessibili attraverso l'interfaccia web:

Aggiornamento della domain blacklist pihole -g
Log pi-hole in tempo reale pihole -t
Aggiornamento del sottosistema pi-hole pihole -up
Riavvio del sottosistema pi-hole pihole restartdns
Disinstallazione completa di pi-hole pihole uninstall

Ti consigliamo anche