Ultima modifica:
Oggi siamo lieti di parlarvi di Pi-Hole (https://pi-hole.net/), un software che possiamo installare su qualunque piattaforma a base GNU/Linux, da installare nella rete di casa e in grado di bloccare script traccianti e pubblicità, senza l'uso di plugin su browser e garantendo anche un certo anonimato basilare.
I vantaggi nell'avere un Pi-Hole casalingo stanno nel controllo della risoluzione dei domini e nella possibilità di bloccare le pubblicità non solo su un'ampia gamma di dispositivi (computer, smartphone, smartTV e quant'altro) ma anche su applicazioni che non siano browser (giochi, video etc...).
[TITOLO]Che cos'è Pi-Hole[/TITOLO]
Pi-Hole è un insieme di software che si può installare all'interno di qualunque computer e/o dispositivo, scritto per i sistemi operativi GNU/Linux e spesso installato all'interno del Raspberry Pi.
L'uso del Raspberry Pi permette a chiunque di avere Pi-Hole in casa senza spendere cifre astronomiche. Inoltre è molto piccolo, si può nascondere dietro il proprio router di casa, consuma pochissimo (al massimo 1€ al mese di corrente) e si può utilizzare anche come DHCP Server (di cui parleremo più avanti).
Pi-Hole è un progetto che mira quindi a bloccare le pubblicità, spesso invadenti, della rete. Come sappiamo inoltre, molti aggregatori pubblicitari fanno ampio uso del tracking (attraverso i famosi cookie di terzi o di terze parti) e possono esporre la nostra privacy, specie se il portale (ma anche un'app) eroga la pubblicità senza fornire adeguato consenso (in base alle ultime normative su Privacy e Cookie).
[TITOLO]Come funziona Pi-Hole[/TITOLO]
Pi-Hole è per prima cosa un DNS server: il DNS si occupa di risolvere una richiesta a un dominio (ad es: inforge.net) nel relativo indirizzo IP (ad es: 1.2.3.4).
Si definisce quindi un DNS sinkhole, ovvero un DNS che restituisce risultati vuoti o falsi quando un dispositivo (computer, tablet, smartphone etc...) cerca di instaurare una connessione a un dominio presente in una blacklist, una lista nera di domini che sappiamo essere i responsabili dell'erogazione pubblicitaria.
Le blacklist vengono scaricate e aggiornate costantemente: non dobbiamo così preoccuparci di inserire manualmente i domini; potremo comunque manipolare quali consentire e quali bloccare tramite l'interfaccia web di Pi-Hole.
Questo sistema permettte di evitare l'uso degli Adblock: quest'ultimi, oltre a non essere installabili su qualunque dispositivo, caricano inutilmente la macchina su cui girano. Difatti spesso tendono a funzionare attraverso clientscript nella pagina web, cercando nomi di file, domini o dimensioni delle div, operazioni che si rendono inutili in un sistema ove il Pi-Hole blocca sul nascere tali richieste.
[TITOLO]Come si crea un Pi-Hole[/TITOLO]
La procedura della creazione di un Pi-Hole è molto ben documentata sul sito ufficiale, tuttavia se dovessero esserci problemi con la lingua inglese è possibile seguire questa guida, sperando che risolva anche dei dubbi legati non solo all'installazione ma anche all'uso.
[SOTTOTITOLO]Ingredienti di un Pi-Hole[/SOTTOTITOLO]
Per cucinare un gustoso Pi-Hole noi abbiamo preferito il Raspberry Pi 4 (attualmente l'ultima versione). Sono necessari:
In questa fase installeremo Raspbian, il sistema operativo basato su Debian per Raspberry, all'interno del Raspberry.
Grazie al protocollo SSH è possibile collegarsi al Raspberry direttamente dalla rete.
Per poter abilitare SSH su Raspbian inseriamo dobbiamo creare un file ssh all'interno della partizione /boot, in questo modo:
Con molta probabilità il vostro Router assegnerà al Raspberry il primo IP disponibile. Un router casalingo, infatti, ha abilitato il server DHCP: questo significa che assegna automaticamente un IP locale nella rete.
Il problema è che, se dovesse cadere ad es. la corrente, il router potrebbe decide di cambiare l'IP del Raspberry, costringendoci ogni volta a riconfigurare il DNS nel router o nei vari dispositivi.
Possiamo impostare un IP Statico direttamente nel router (Metodo #1) oppure, dal Raspberry, impostarlo modificando i parametri di connessione (Metodo #2).
[SOTTOTITOLO3]Metodo #1: impostare un IP statico da Router[/SOTTOTITOLO3]
Questo è il metodo più semplice se si conosce il proprio Router e/o la propria rete. La modifica si effettua solitamente dalla tabella IP dei dispositivi connessi, quindi se ne modifica direttamente da lì l'IP.
Purtroppo non tutti i router permettono di fare ciò: consigliamo di documentarsi sul manuale tecnico del proprio Router e verificare che sia presente tale funzione.
Di seguito annotiamo come solitamente si otteniene l'accesso al pannello del proprio Router, da cui è possibile effettuare l'operazione.
Su Windows
Per convenizione, imposteremo il seguente indirizzo IP: 192.168.188.250
Importante: le prime tre sequenze devono essere le stesse del gateway.
Ecco come dovrebbe essere:
Gateway: 192.168.188.1
IP: 192.168.188.250
oppure
Gateway: 192.168.1.1
IP: 192.168.1.250
e così via.
Importante (2): nella lista IP non troverete (come da screen) la voce "pihole" ma "raspberrypi". Una volta collegati al Raspberry potremo modificare l'hostname del nostro Pi-Hole come preferiamo.
Nel caso del mio Fritz!Box 7590, l'operazione è sotto la voce Rete domestica -> Rete, quindi si modifica l'IP come si preferisce.
Una volta impostato l'IP, riavviare il Raspberry.
[SOTTOTITOLO2]Metodo #2: impostare un IP statico da Raspberry[/SOTTOTITOLO2]
Questa pratica è indicata per chi ha destrezza con GNU/Linux e non può/vuole modificare l'IP da Router.
Per fare ciò è necessario interfacciarsi con la linea di comando del Raspberry: in ogni caso, la procedura qui descritta può risultare leggermente ostica se non si conosce il mondo GNU/Linux.
Se si conosce l'IP del Raspberry
Se siamo riusciti ad entrare nel Router ma non ci è permesso modificare gli IP possiamo comunque collegarci ad esso tramite SSH.
In questo caso consigliamo di procurarsi tastiera e cavo monitor, quindi eseguire i passaggi precedentemente indicati a partire dal punto 2.
In alternativa
Se siamo fortunati possiamo provare a connetterci direttamente al nome del Raspberry con il comando ssh pi@raspberrypi:
Ci siamo! Ora non ci resta che avviare l'installazione di Pi-Hole, connettendoci ad SSH con il comando:
e lanciando lo script auto-installante:
Qualora ci fossero problemi è possibile seguire metodi alternativi di installazione.
Seguirà quindi l'installazione del programma, attendiamo fino a che non viene mostrato il Wizard (screen successiva).
È il momento di configurare il Pi-Hole. Si tenga presente che alcune voci potranno cambiare nel tempo, se avete dubbi non esitate a chiedere aiuto
Il Pi-Hole è ora funzionante in rete ma dobbiamo ancora dire al nostro Router "ehi, ora fai risolvere tutti i domini al Pi-Hole invece che al mio ISP/DNS esterno". La procedura può passare da Router o da Client.
[SOTTOTITOLO3]Metodo #1: modificare DNS del Router[/SOTTOTITOLO3]
Se avete già avuto accesso al Router non dovreste avere troppe difficoltà con questo passaggio. La procedura varia da modello a modello di Router, quindi consigliamo sempre di leggere la documentazione ufficiale del produttore.
Se non ci è consentito, per vari motivi, cambiare i DNS del router, potremmo sempre cambiare quelli del dispositivo in uso!
Ogni Sistema Operativo ha la propria procedura per il cambio dei DNS: consigliamo la lettura della guida di Google oppure una breve ricerca in rete, ricordandoci di specificare (al posto dei DNS di Google che saranno 8.8.8.8) l'indirizzo IP del Pi-Hole (quindi nel mio caso 192.168.188.250 o comunque 192.168.*.250).
Finalmente il nostro Pi-Hole è operativo! Per verificarne il funzionamento apriamo un browser e accediamo alla Web Page (nel mio caso http://192.168.188.250/admin).
Se richiesto, inseriamo la password ottenuta in precedenza (e non perdiamola o dovremmo resettarla!) e ci troveremo di fronte alla Dashboard del Pi-Hole, da cui potremo effettuare tutte le modifiche e il monitoring che vogliamo.
Il tuo Pi-Hole ora inizierà a filtrare tutte le richieste a domini traccianti e pubblicitari, ma non è tutto!
Ecco cos'altro devi sapere sul tuo nuovo Pi-Hole:
I vantaggi nell'avere un Pi-Hole casalingo stanno nel controllo della risoluzione dei domini e nella possibilità di bloccare le pubblicità non solo su un'ampia gamma di dispositivi (computer, smartphone, smartTV e quant'altro) ma anche su applicazioni che non siano browser (giochi, video etc...).
[TITOLO]Che cos'è Pi-Hole[/TITOLO]
Pi-Hole è un insieme di software che si può installare all'interno di qualunque computer e/o dispositivo, scritto per i sistemi operativi GNU/Linux e spesso installato all'interno del Raspberry Pi.
L'uso del Raspberry Pi permette a chiunque di avere Pi-Hole in casa senza spendere cifre astronomiche. Inoltre è molto piccolo, si può nascondere dietro il proprio router di casa, consuma pochissimo (al massimo 1€ al mese di corrente) e si può utilizzare anche come DHCP Server (di cui parleremo più avanti).
Pi-Hole è un progetto che mira quindi a bloccare le pubblicità, spesso invadenti, della rete. Come sappiamo inoltre, molti aggregatori pubblicitari fanno ampio uso del tracking (attraverso i famosi cookie di terzi o di terze parti) e possono esporre la nostra privacy, specie se il portale (ma anche un'app) eroga la pubblicità senza fornire adeguato consenso (in base alle ultime normative su Privacy e Cookie).
[TITOLO]Come funziona Pi-Hole[/TITOLO]
Pi-Hole è per prima cosa un DNS server: il DNS si occupa di risolvere una richiesta a un dominio (ad es: inforge.net) nel relativo indirizzo IP (ad es: 1.2.3.4).
Si definisce quindi un DNS sinkhole, ovvero un DNS che restituisce risultati vuoti o falsi quando un dispositivo (computer, tablet, smartphone etc...) cerca di instaurare una connessione a un dominio presente in una blacklist, una lista nera di domini che sappiamo essere i responsabili dell'erogazione pubblicitaria.
Le blacklist vengono scaricate e aggiornate costantemente: non dobbiamo così preoccuparci di inserire manualmente i domini; potremo comunque manipolare quali consentire e quali bloccare tramite l'interfaccia web di Pi-Hole.
Questo sistema permettte di evitare l'uso degli Adblock: quest'ultimi, oltre a non essere installabili su qualunque dispositivo, caricano inutilmente la macchina su cui girano. Difatti spesso tendono a funzionare attraverso clientscript nella pagina web, cercando nomi di file, domini o dimensioni delle div, operazioni che si rendono inutili in un sistema ove il Pi-Hole blocca sul nascere tali richieste.
[TITOLO]Come si crea un Pi-Hole[/TITOLO]
La procedura della creazione di un Pi-Hole è molto ben documentata sul sito ufficiale, tuttavia se dovessero esserci problemi con la lingua inglese è possibile seguire questa guida, sperando che risolva anche dei dubbi legati non solo all'installazione ma anche all'uso.
[SOTTOTITOLO]Ingredienti di un Pi-Hole[/SOTTOTITOLO]
Per cucinare un gustoso Pi-Hole noi abbiamo preferito il Raspberry Pi 4 (attualmente l'ultima versione). Sono necessari:
- Raspberry Pi 4: va bene anche una versione minore come Pi 3, 2 e Zero - richiede connettività Ethernet, sconsigliata Wi-Fi.
- Alimentatore USB-C: necessario per alimentare il Raspberry Pi 4, da almeno 5V e 3A. Un amperaggio minore potrebbe rendere instabile il Raspberry Pi.
- Cavo Ethernet: almeno CAT6 e CAT 5E* per evitare colli di bottiglia in rete. Sconsigliati cavi di rete non siglati*.
- Micro SD: da almeno 8GB. Consigliata velocità SDHC.
- (Opzionale) Case Raspberry Pi 4: si consiglia l'uso di un case con ventola per non avere una scheda elettronica "nuda".
- (Opzionale) Tastiera e Cavo HDMI-microHDMI: qualora abbiate difficoltà a collegarvi in SSH. In questa guida, comunque, seguiremo la procedura da SSH che non richiede mouse, tastiera e monitor.
- Raspberry Pi 4 Kit: se avete da tempo intenzione di acquistare un Raspberry Pi 4 (o se non avete familiarità con il vostro router) consigliamo un kit che comprenda i vari adattatori, SD e alimentatore. Bisognerà sempre procurarsi un cavo Ethernet di qualità.
* Controlliamo sul cavo che sia stampato CAT6 o CAT5E. Se non è scritto nulla, probabilmente è un cavo 5 o inferiore.
Step 1
Installare Raspbian
In questa fase installeremo Raspbian, il sistema operativo basato su Debian per Raspberry, all'interno del Raspberry.
- Andiamo sulla pagina di download ufficiale di Raspbian e scarichiamo l'immagine Raspbian Buster Lite. Non fa differenza se Torrent o Direct. Preferiremo la versione Lite in quanto non avremo bisogno dell'interfaccia grafica, è più leggera (e quindi più stabile).
- Estraiamo il file .zip scaricato, dovremo usare il file .img al suo interno.
- Scarichiamo balenaEtcher e flashiamo la microSD; per farlo, selezioniamo il file .img di Raspbian, la chiavetta e clicchiamo su Flash!
Step 2
Abilitiamo SSH
Grazie al protocollo SSH è possibile collegarsi al Raspberry direttamente dalla rete.
Per poter abilitare SSH su Raspbian inseriamo dobbiamo creare un file ssh all'interno della partizione /boot, in questo modo:
- Inseriamo (o reinseriamo) la microSD nel computer
- Apriamo la partizione /boot
- Al suo interno creiamo un file chiamato ssh senza contenuto (con Crea file o un blocco note)
- Estriamo la microSD e inseriamola nel Raspberry
- Connettiamo il Raspberry, prima al nostro Router e poi all'alimentazione, quindi attendiamo un paio di minuti per li first boot
Step 3
Impostare IP Statico del Raspberry
Con molta probabilità il vostro Router assegnerà al Raspberry il primo IP disponibile. Un router casalingo, infatti, ha abilitato il server DHCP: questo significa che assegna automaticamente un IP locale nella rete.
Il problema è che, se dovesse cadere ad es. la corrente, il router potrebbe decide di cambiare l'IP del Raspberry, costringendoci ogni volta a riconfigurare il DNS nel router o nei vari dispositivi.
Possiamo impostare un IP Statico direttamente nel router (Metodo #1) oppure, dal Raspberry, impostarlo modificando i parametri di connessione (Metodo #2).
[SOTTOTITOLO3]Metodo #1: impostare un IP statico da Router[/SOTTOTITOLO3]
Questo è il metodo più semplice se si conosce il proprio Router e/o la propria rete. La modifica si effettua solitamente dalla tabella IP dei dispositivi connessi, quindi se ne modifica direttamente da lì l'IP.
Purtroppo non tutti i router permettono di fare ciò: consigliamo di documentarsi sul manuale tecnico del proprio Router e verificare che sia presente tale funzione.
Di seguito annotiamo come solitamente si otteniene l'accesso al pannello del proprio Router, da cui è possibile effettuare l'operazione.
Su Windows
- Aprire il prompt dei comandi e digitare:
ipconfig
- Annotarsi l'indirizzo IP del Gateway (solitamente è 192.168.0.1 oppure 192.168.1.1 oppure 192.168.1.254).
- Da browser aprire l'indirizzo IP con protocollo http (ad es. se l'indirizzo è 192.168.0.1 allora bisognerà navigare su http://192.168.0.1)
- Aprire il terminale e lanciare il comando netstat -nr | grep default:
> netstat -nr | grep default default 192.168.188.1 UGSc en0
- Copiare l'indirizzo del Gateway (nell'esempio è 192.168.188.1)
- Da browser aprire l'indirizzo IP con protocollo http (ad es. se l'indirizzo è 192.168.0.1 allora bisognerà navigare su http://192.168.0.1)
- Aprire il terminale e lanciare il comando ip route:
> ip route default via 192.168.188.1 dev eth0 proto dhcp src 192.168.188.240 metric 202 192.168.188.0/24 dev eth0 proto dhcp scope link src 192.168.188.240 metric 202
- Copiare l'indirizzo del Gateway (nell'esempio è 192.168.188.1)
- Da browser aprire l'indirizzo IP con protocollo http (ad es. se l'indirizzo è 192.168.0.1 allora bisognerà navigare su http://192.168.0.1)
Per convenizione, imposteremo il seguente indirizzo IP: 192.168.188.250
Importante: le prime tre sequenze devono essere le stesse del gateway.
Ecco come dovrebbe essere:
Gateway: 192.168.188.1
IP: 192.168.188.250
oppure
Gateway: 192.168.1.1
IP: 192.168.1.250
e così via.
Importante (2): nella lista IP non troverete (come da screen) la voce "pihole" ma "raspberrypi". Una volta collegati al Raspberry potremo modificare l'hostname del nostro Pi-Hole come preferiamo.
Nel caso del mio Fritz!Box 7590, l'operazione è sotto la voce Rete domestica -> Rete, quindi si modifica l'IP come si preferisce.
Una volta impostato l'IP, riavviare il Raspberry.
[SOTTOTITOLO2]Metodo #2: impostare un IP statico da Raspberry[/SOTTOTITOLO2]
Questa pratica è indicata per chi ha destrezza con GNU/Linux e non può/vuole modificare l'IP da Router.
Per fare ciò è necessario interfacciarsi con la linea di comando del Raspberry: in ogni caso, la procedura qui descritta può risultare leggermente ostica se non si conosce il mondo GNU/Linux.
Se si conosce l'IP del Raspberry
Se siamo riusciti ad entrare nel Router ma non ci è permesso modificare gli IP possiamo comunque collegarci ad esso tramite SSH.
- Apriamo il Terminale (su macOS/Linux) o Powershell (su Windows) e lanciamo:
> ssh [email protected]
dove 192.168.188.250 sarà sostituito con l'IP del Raspberry. - Quando richiesto inserire la password: raspberry
- Modificare il file dhcpcd.conf lanciando il comando:
> sudo nano /etc/dhcpcd.conf
- Togliere i # per decommentare le voci di configurazioine statica e compilarli con i dati in nostro possesso (ricordiamoci di modificare l'IP del Raspberry e del Gateway con quelli in nostro possesso)
- Chiudiamo il programma con la combinazione CTRL+X, tasto Y e INVIO.
- Riavviamo il Raspberry e verifichiamo se dal nostro PC riusciamo a comunicarci:
> ping 192.168.188.250 [*]PING 192.168.188.250 (192.168.188.250) 56(84) bytes of data. 64 bytes from 192.168.188.250: icmp_seq=1 ttl=64 time=0.955 ms 64 bytes from 192.168.188.250: icmp_seq=2 ttl=64 time=0.304 ms
dove 192.168.188.250 sarà sostituito con il nuovo indirizzo IP.
In questo caso consigliamo di procurarsi tastiera e cavo monitor, quindi eseguire i passaggi precedentemente indicati a partire dal punto 2.
In alternativa
Se siamo fortunati possiamo provare a connetterci direttamente al nome del Raspberry con il comando ssh pi@raspberrypi:
> ssh pi@raspberrypi
Step 4
Installare Pi-Hole
Ci siamo! Ora non ci resta che avviare l'installazione di Pi-Hole, connettendoci ad SSH con il comando:
> ssh pi@IPRASPBERRY
e lanciando lo script auto-installante:
> curl -sSL [URL]https://install.pi-hole.net[/URL] | bash
Qualora ci fossero problemi è possibile seguire metodi alternativi di installazione.
Seguirà quindi l'installazione del programma, attendiamo fino a che non viene mostrato il Wizard (screen successiva).
Step 5
Prima configurazione del Pi-Hole
È il momento di configurare il Pi-Hole. Si tenga presente che alcune voci potranno cambiare nel tempo, se avete dubbi non esitate a chiedere aiuto
- Il Wizard si presenterà in questo modo. Bisognerà confermare diverse voci e fare brevi configurazioni, che vi segnaleremo. Clicchiamo OK
- Qualora fossero presenti più interfacce Ethernet, ci verrà anche chiesto su quale vogliamo attivare il Pi-Hole. Eventualmente, se stiamo usando la prima Ethernet disponibile useremo eth0.
- Quando richiesto, scegliamo da dove prendere la lista dei DNS. Personalmente ho scelto Quad9 che permette anche una sicurezza intelligente contro siti di phishing o su cui sono presenti malware, ma si possono usare OpenDNS, Comodo, Google DNS e così via. I DNS potranno poi essere anche modificati in un successivo momento.
- Ci verrà chiesto quale indirizzo IP usare. Se abbiamo seguito questa guida, lasciamo quello presente.
- Ci verrà chiesto se vogliamo usare la Web Interface e i Log. Scegliamo Yes.
- Ci verrà chiesto se vogliamo usare il Pi-Hole come DNS Server; a meno che non vogliamo sostituirlo al Router, scegliamo No.
- La configurazione sarà ora completa. Prendiamo nota della password e riavviamo con sudo reboot.
> sudo reboot
Step 6
Riconfigurare i DNS in uso
Il Pi-Hole è ora funzionante in rete ma dobbiamo ancora dire al nostro Router "ehi, ora fai risolvere tutti i domini al Pi-Hole invece che al mio ISP/DNS esterno". La procedura può passare da Router o da Client.
[SOTTOTITOLO3]Metodo #1: modificare DNS del Router[/SOTTOTITOLO3]
Se avete già avuto accesso al Router non dovreste avere troppe difficoltà con questo passaggio. La procedura varia da modello a modello di Router, quindi consigliamo sempre di leggere la documentazione ufficiale del produttore.
- Accediamo al Web Panel del Router (nel mio caso http://192.168.188.1 ma potrebbe essere anche http://192.168.1.1, http://192.168.0.1, http://192.168.1.254 e così via)
- Sotto la voce Internet oppure DSL modificare il campo DNS Server (spesso ce n'è più di uno, basterà indicare il primo).
- Salviamo le modifiche e riavviamo il Router.
Se non ci è consentito, per vari motivi, cambiare i DNS del router, potremmo sempre cambiare quelli del dispositivo in uso!
Ogni Sistema Operativo ha la propria procedura per il cambio dei DNS: consigliamo la lettura della guida di Google oppure una breve ricerca in rete, ricordandoci di specificare (al posto dei DNS di Google che saranno 8.8.8.8) l'indirizzo IP del Pi-Hole (quindi nel mio caso 192.168.188.250 o comunque 192.168.*.250).
Step 7
Colleghiamoci a Pi-Hole
Finalmente il nostro Pi-Hole è operativo! Per verificarne il funzionamento apriamo un browser e accediamo alla Web Page (nel mio caso http://192.168.188.250/admin).
Se richiesto, inseriamo la password ottenuta in precedenza (e non perdiamola o dovremmo resettarla!) e ci troveremo di fronte alla Dashboard del Pi-Hole, da cui potremo effettuare tutte le modifiche e il monitoring che vogliamo.
Step 8
"Mastering" del Pi-Hole
Il tuo Pi-Hole ora inizierà a filtrare tutte le richieste a domini traccianti e pubblicitari, ma non è tutto!
Ecco cos'altro devi sapere sul tuo nuovo Pi-Hole:
- Puoi aggiornarlo connettendoti da ssh e lanciando il comando pihole -up:
> pihole -up
- Puoi usare i DNS-Over-HTTPS di Cloudflare. È tutto spiegato nelle FAQ.
- Puoi usarlo come DHCP Server. Per farlo segui la guida ufficiale o visita le impostazioni del web panel.
- Dal pannello puoi decidere su Whitelistare o Blacklistare un dominio. Può essere se decidi di bloccare o consentire un dominio specifico.
- Le Gravity sono liste dei domini blacklistati. Puoi decidere di aggiornarli (sotto la voce Settings) o di crearne di tue e aggiungerle.
- Per effettuare dei test puoi decidere di disabilitare temporaneamente o permanentemente il Pi-Hole. La funzione è presente sotto la voce Disable.