Contenuti

Addio alla pubblicità invasiva ai Malware e al Phishing ci pensa Pi-hole

Pi-hole è un DNS sinkhole che è stato definito “un buco nero per tutta la pubblicità invasiva di Internet” in realtà è una definizione molto stretta per un progetto che va al di la di un semplice adblock

Introduzione

All’interno di questo articolo andrò ad analizzare un progetto molto famoso Pi-hole che ha come obbiettivo principale quello di eliminare la pubblicità invasiva ma anche mettere al sicuro il tuo hardware da potenziali Malware o attacchi di Phishing.

Mi sono approcciato a questo progetto circa un paio di anni fa quando ero alla ricerca di una soluzione che mi permettesse di filtrare l’accesso a siti potenzialmente pericolsi evitare tutte le pubblicità popup che mettono in crisi gli utenti “poco esperti”. Insomma il mio obbiettivo era creare una sorta di bolla di filtraggio per evitare che alcuni tipi di contenuti venissero caricati. La soluzione più semplice era quella di installare un semplice Adblock che evita alle risorse invasive di essere caricate sul tuo browser. L’uso di questi componenti aggiuntivi richiede comunque uno sforzo computazionale maggiore al browser e se l’hardware su cui navighi non è particolarmente aggiornato l’esperienza di navigazione sarà sicuramente più lenta inoltre Adblock si limita solo alla pubblicità se volete anche un anti tracking cookie sarete costretti a installare altri componenti aggiuntivi con un conseguente ulteriore rallentamento. Pi-hole, invece, permette di filtrare la comunicazione in un solo colpo per tutti i dispositivi connessi alla tua rete. Rispetto ai DNS pubblici Pi-hole tronca direttamente la comunicazione con determinati domini. Il vantaggio principale di questo prodotto sta nella centralizzazione del filtraggio e nella possibilità di scaricare un po’ il lavoro del browser dei singoli dispositivi.

Definizione di Pi-hole sulla Wiki di archlinux
Pi-hole è un DNS sinkhole che redige una lista di blocco di domini conosciuti per offrire pubblicità e malware da sorgenti multiple di terze parti. Pi-hole, attraverso l’uso di dnsmasq, elimina semplicemente tutte le richieste di domini nella sua lista di blocco. Questa configurazione implementa efficacemente il blocco della pubblicità a livello di rete senza dover configurare ogni singolo client. Il pacchetto offre una interfaccia web e una a riga di comando.

Hardware

Pi-hole puo essere installato su diversi dispositivi la soluzione più semplice è acquistare un Raspberry Pi è comunque un hardware più potente di quello che vi serve realmente. Se riesci a trovare un hardware più economico che riesca a far girare Docker va più che bene. L’ultima soluzione è quella di sfruttare una macchina linux che già usi nella tua tua rete o anche un NAS con supporto Docker. La lista della compatibilità hardware la trovi qui .

Attenzione
Se non sei consapevole di cio che stai facenedo lascia perdere!

Installazione

Tutti i vari screenshot che vedrai in questo articolo li ho relizzati appositamente tramite macchina virtuale con Raspbian visto che quando ho realizzato la mia installazione di Pi-hole non avevo minimamente pensato che ci avrei realizzato un articolo.

L’installazione può avvenire in due modi o tramite SSH o tramite l’interfaccia desktop di Raspbian. Lancia la stringa di installazione:

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

Il sistema farà un rapido check (verifica che tu abbia tutte le dipendenze necessarie) se tutto va liscio ti troverai difronte all schermata di configurazione di Pi-hole:

Qui in alto vedi tutti gli screenshot a seguire trovi un elenco puntato di tutti i vari passaggi di installazione.

Attenzione
Tutta la procedura seguente la dovrai fare tramite i tasti freccette, tab ed enter della tastiera
  • Permi invio per avviare l’installazione
  • Pi-hole ti chiederà di assegnargli un IP fai in modo che sia statico (ti basta assegnare una reservation sul DHCP del tuo modem/router)
  • Comunica che tipo di DNS pubblico vuoi usare vi consiglio Google (8.8.8.8 e 8.8.4.4)
  • Pi-hole ti obbliga a selezionare una lista di blocco di partenza. Non preoccuparti si potrà modificare anche successivamente
  • Seleziona sia IPv4 che IPv6
  • Conferma l’IP della tua macchina e il gateway del tuo modem/router
  • Conferma l’installazione dell’interfaccia amministrativa. Ti sarà richiesto di confermare anche l’installazione di lighttpd.
  • Permetti di effettuare richieste (query) e che vengano loggate (0 – Show everything).

A questo punto l’installazione continuerà automaticamente e si concluderà con una schermata riepilogativa contente anche un dato molto importante la password di amministrazione di Pi-hole. (ti consiglio di fare uno screenshot e salvarlo)

Nella schermata riepilogativa è riportato anche il link di accesso al sistema, esempio http://192.168.X.XX/admin . Se tutto è andata a buon fine ti ritroverai nella GUI di Pi-hole ti basterà fare clic sulla voce Login e inserire la password.

Blocklist

Pi-hole le chiama Blocklist ma sostanzialmente si tratta di una lista composta da una serie di domini di cui è possibile fare a meno, prevalentemente sono domini pubblicitari ma anche script malevoli e quant’altro. La questione Blocklist è sempre un work in progress cioè devi sempre starci dietro per capire quali liste funzionano meglio dipende anche da quando quest’ultime vengano aggiornate. A seguire vi segnalo alcune liste:

Obbiettivo Link
La prima lista è tutta italiana è di Andrea Draghetti. La lista ha l’obbiettivo di proteggerti dal phishing. Qui di segnalo la versione estesa in realtà su phishing.army è presente anche la versione più compatta phishing.army list
Questa lista di Steven Black ha l’obbiettivo di bloccare Awdware, Fraud, Scam, Spam, Tracking e Cryptomining Steven Black
Blocca i siti che tentano emulare graficamente siti istituzionali o bancari social engineer
La lista di malwaredomains ha l’obbiettivo di bloccare tutti i domini che veicolano malware malwearedomains

Ulteri liste note ma non utilizzate da me

https://adaway.org/hosts.txt
https://v.firebog.net/hosts/AdguardDNS.txt
https://filtri-dns.ga/filtri.txt

ADS and Privacy (più aggressive)
https://v.firebog.net/hosts/Easylist.txt
https://raw.githubusercontent.com/anudeepND/blacklist/master/adservers.txt

Malware
https://urlhaus.abuse.ch/downloads/rpz/
https://urlhaus.abuse.ch/downloads/hostfile/
https://infosec.cert-pa.it/analyze/listdomains.txt
https://infosharing.cybersaiyan.it/feeds/CS-PIHOLE

Cryptojacking
https://zerodot1.gitlab.io/CoinBlockerLists/hosts_browser

Whitelist

Dopo aver analizzato le Blocklist è importante impostare al meglio le Whitelist in quanto capita che alcuni domini sicuri possano essere comunque bloccati purtroppo molto dipende anche dai creatori delle blocklist. Le Whitelist servono per autrizzare la corretta visualizzazione di alcuni siti che potrebbero avere delle anomalie o comunque problemi di navigazione. Spesso capita che si dia la colpa a Pi-hole quando in realtà il problema dipende da liste che non vengono più aggiornate. Per ovviare a questo problema ti spiegherò come installare un piccolo script per gestire dinamicamente le Whitelist.

Ph-Whitelist

Per gestire le Whitelist dinamicamente ti basta lanciare, tramite SSH o terminale, questo comando:

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

il comando ha l’obbiettivo di installare un piccolo script bash che aggiornerà costantemente le whitelist della tua installazione di Pi-hole. Esegui il comando per avviare lo script:

chmod +x whitelist.sh

A questo punto di basterà lanciare la tua whitelist: sudo ./whitelist.sh safe e il gioco è fatto. Il comando scaricherà la whitelist.

https://res.cloudinary.com/dcongin7u/image/upload/v1622843362/Cattura-10_fa9d4l.jpg

Per verificare che il tutto sia andato a buon fine puoi recarti nella dashboard spostandoti sotto Whitelist. Per tutti gli altri dettagli/novità trovi tutto sul sito ufficiale del progetto pihole.noads.it

https://res.cloudinary.com/dcongin7u/image/upload/v1622844192/Cattura-10_p6kvb6.jpg

Conclusioni

L’argomento Pi-hole non è del tutto chiuso ci sarebbero tante cose da approfondire ma ho cercato di essere il più conciso possibile per permettere anche ai meno esperti di riuscire a impostare facilmente il software. Per qualsiasi altro dubbio, consiglio o aggiunta di ulteriori dettagli non esitare a scrivere un commento qui sotto. 👇 😀

This is a personal tip!

Quasi mi dimenticato di inserire il tip finale 😀. Nella sezione Advanced DNS settings ti consiglio di obbligare Pi-hole a consultare Google utilizzando il DNSSEC per essere ancora più al sicuro.

https://res.cloudinary.com/dcongin7u/image/upload/v1622893573/Cattura-10_wzdmvt.jpg