Guide

Come usare Pi-hole e la VPN Mullvad su un Raspberry Pi

Come usare Pi-hole e la VPN Mullvad su un Raspberry Pi
Indice dei contenuti

Introduzione

Temi che il tuo provider Internet possa spiarti e leggere tutto il traffico della rete domestica? Sei stanco di vedere annunci ovunque? Oppure non ti piace l'idea che un'azienda qualsiasi possa vedere e tracciare ogni movimento del mouse e ogni pressione dei tasti mentre navighi?

Se queste sono alcune delle tue preoccupazioni, sei nel posto giusto. In questa guida pratica configureremo un blocco di annunci e tracker per tutta la rete, una sorta di scudo digitale tra te, il provider e le aziende di analisi.

Useremo Pi-hole (un sistema di filtraggio DNS molto popolare) per bloccare annunci e tracker e la VPN Mullvad (un provider molto attento alla privacy) per nascondere il traffico Web al provider.

Cosa serve

Raspberry Pi

L'elemento principale è il Raspberry Pi, un piccolo computer molto conosciuto che permette di provare progetti a casa senza un server costoso. CPU ARM e RAM sono più che sufficienti per il nostro scudo di rete.

Panoramica del Raspberry Pi

Useremo Raspberry Pi OS, precisamente la versione Lite senza interfaccia grafica. Consiglio il modello da 4 o 8 GB, anche se la configurazione ne utilizzerà molto meno. Servono inoltre conoscenze di base del terminale e delle connessioni SSH.

Mullvad

Per il progetto serve un account Mullvad. È un provider VPN popolare e attento alla privacy: non richiede nemmeno un indirizzo e-mail, perché assegna un numero casuale di account. Non serve neppure una password.

Panoramica della VPN Mullvad

Mullvad applica una rigida politica no-log e non conserva cronologia del traffico, richieste DNS, orari di connessione, indirizzi IP o consumo di banda. È un'ottima scelta per tenere il traffico lontano dal provider. Ho scelto Mullvad anche per il suo impegno verso la libertà di espressione e un Internet aperto.

1. Preparare il Raspberry Pi

Questa guida non tratta l'installazione del sistema operativo: passeremo direttamente alla configurazione di rete. Online sono disponibili molte guide dettagliate. Iniziamo configurando l'indirizzo IP del Pi.

2. Impostare un IP statico

Per usare il Raspberry Pi come server DNS (Pi-hole) e gateway (Mullvad), serve un IP statico. L'indirizzo assegnato dal DHCP può cambiare e rendere il Pi irraggiungibile agli altri dispositivi. Useremo NetworkManager per fissarlo.

Elencare le interfacce di rete

Terminale
nmcli con show

Elenco delle connessioni NetworkManager

Nel mio caso la connessione si chiama netplan-eth0 e il dispositivo eth0.

Configurare con l'interfaccia testuale

Puoi usare l'interfaccia semplice o la riga di comando. Per aprire l'interfaccia:

Terminale
sudo nmtui

Oppure dalla riga di comando

Questo metodo è più rapido. Sostituisci nomi e indirizzi con quelli della tua rete.

Terminale
sudo nmcli con mod netplan-eth0 ipv4.addresses "192.168.21.82/24" ipv4.gateway "192.168.21.1" ipv4.dns "192.168.21.1,1.1.1.1" ipv4.method manual

Applicare le modifiche

Terminale
sudo nmcli device reapply eth0

Verificare l'interfaccia

Controlla che indirizzo, gateway e DNS corrispondano ai valori impostati.

Terminale
nmcli device show eth0

Dettagli dell'interfaccia NetworkManager

Il Raspberry Pi ora ha un IP statico. Se sei collegato via SSH, la connessione potrebbe interrompersi: riconnettiti usando il nuovo indirizzo.

3. Installare Pi-hole

Aggiornare prima il sistema

Installa gli ultimi aggiornamenti e riavvia il Pi:

Terminale
sudo apt update && sudo apt full-upgrade -ysudo reboot

Aggiornamento del sistema Raspberry Pi

Installare Pi-hole

Usa l'installer ufficiale in un solo passaggio. Puoi esaminare lo script prima di eseguirlo.

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

Schermata iniziale dell'installer Pi-hole

Conferma l'IP statico e premi Continue.

Selezione dell'interfaccia nell'installer Pi-hole

Per ora scegli Cloudflare come DNS upstream; lo cambieremo quando Mullvad funzionerà.

Selezione del DNS upstream di Pi-hole

Conferma la lista StevenBlack Unified Hosts, un ottimo punto di partenza per bloccare domini pubblicitari e di tracciamento.

Installazione di Pi-hole completata

L'installazione è terminata. Annota il link e la password del pannello: http://<pi-ip>/admin oppure http://pi.hole/admin.

Accesso all'interfaccia Web di Pi-hole

Impostare una nuova password

Cambia la password generata dalla riga di comando e non riutilizzarne mai una di un altro servizio.

Terminale
sudo pihole setpassword

Dashboard di Pi-hole

Ora abbiamo un blocco di annunci e tracker per tutta la rete. Per saperne di più consulta la documentazione ufficiale.

4. Configurare il DNS della rete

Pi-hole filtra solo le richieste che riceve. Configura il DHCP del router per distribuire l'IP del Raspberry Pi come DNS principale, poi rinnova i lease o riconnetti i client. Se il router non lo permette, configura manualmente ogni dispositivo. Anche il Pi può usare Pi-hole tramite /etc/dhcpcd.conf o NetworkManager; una configurazione errata può interrompere la connettività.

5. Installare WireGuard e Mullvad

Quando Pi-hole funziona, installa WireGuard. WireGuard crea un tunnel VPN cifrato, leggero e veloce. Mullvad fornisce il file di configurazione; WireGuard lo legge, stabilisce la connessione e instrada il traffico, mentre Pi-hole filtra il DNS.

Installare WireGuard

Terminale
sudo apt install wireguard wireguard-tools resolvconf -y

Installazione di WireGuard

Configurare WireGuard

Scarica dal tuo account Mullvad una configurazione WireGuard per Linux, scegli un server e salvala come mullvad.conf in /etc/wireguard.

Terminale
sudo chmod 600 /etc/wireguard/mullvad.conf

Avviare e verificare il tunnel

Terminale
sudo wg-quick up mullvad
Terminale
sudo wg showcurl https://am.i.mullvad.net/connected

Dovresti vedere "You are connected to Mullvad". Abilita quindi l'avvio automatico:

Terminale
sudo systemctl enable wg-quick@mullvad

Servizio WireGuard abilitato

Per fermare il tunnel durante la diagnosi:

Terminale
sudo wg-quick down mullvad

Instradare il traffico attraverso Mullvad

Per gli altri dispositivi, il Pi deve inoltrare e mascherare il traffico. Supponiamo che:

  • L'interfaccia LAN è eth0.
  • L'interfaccia WireGuard Mullvad è mullvad, perché il file si chiama mullvad.conf.
  • L'indirizzo LAN del Raspberry Pi è 192.168.21.82.

Sostituisci i valori di esempio con i tuoi. Verifica le interfacce con:

Terminale
ip link show

Se si chiama wg0, sostituisci mullvad con wg0.

Abilitare il forwarding IPv4

Terminale
sudo sysctl net.ipv4.ip_forward

Forwarding IPv4 disabilitato

Il valore deve essere 1. Se è 0, abilitalo:

Terminale
sudo sysctl -w net.ipv4.ip_forward=1

Rendi permanente l'impostazione:

Terminale
echo 'net.ipv4.ip_forward=1' | sudo tee /etc/sysctl.d/99-router.confsudo sysctl --system
Terminale
sudo sysctl net.ipv4.ip_forward

Forwarding IPv4 abilitato

Consentire il forwarding e aggiungere il NAT

Terminale
sudo iptables -A FORWARD -i eth0 -o mullvad -j ACCEPTsudo iptables -A FORWARD -i mullvad -o eth0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
Terminale
sudo iptables -t nat -A POSTROUTING -o mullvad -j MASQUERADE

Installa il servizio per rendere persistenti le regole:

Terminale
sudo apt install iptables-persistent -y

Configurazione firewall IPv4 salvata

Configurazione firewall IPv6 salvata

Terminale
sudo netfilter-persistent save

Regole firewall persistenti

Configurare i dispositivi di rete

Imposta questi valori su ogni dispositivo:

  • Un indirizzo IP nella stessa LAN del Raspberry Pi.
  • L'indirizzo IP del Raspberry Pi come gateway predefinito.
  • L'indirizzo IP del Raspberry Pi come server DNS.

Testare il percorso per fasi

Terminale
ping 192.168.21.82

Poi prova il DNS Cloudflare 1.1.1.1:

Terminale
ping 1.1.1.1

Infine prova la risoluzione DNS:

Terminale
nslookup example.com

In caso di problemi:

  • Se fallisce il primo test, controlla rete e gateway del PC.
  • Se il primo riesce ma 1.1.1.1 fallisce, controlla forwarding IPv4, NAT e firewall Mullvad.
  • Se l'IP pubblico funziona ma il DNS no, verifica che Pi-hole ascolti sulla LAN e che il PC lo usi come DNS.
Terminale
sudo wg show

Controllo del traffico Mullvad

I contatori dovrebbero aumentare. Controlla l'indirizzo pubblico dal PC:

Terminale
curl https://am.i.mullvad.net/connected

Output del comando di connessione Mullvad

6. Verificare la sicurezza

Apri il controllo della connessione Mullvad e verifica IP di uscita e resolver DNS.

Controllo della connessione Mullvad

Capire il risultato

  • Se l'IP di uscita appartiene a un server Mullvad, come **it-mil-wg-001** a Milano, il traffico passa correttamente da Mullvad.
  • Se i resolver sono indirizzi Cloudflare come **172.70.x.x**, **1.1.1.1** o l'indirizzo IPv6 corrispondente, Pi-hole sta inoltrando le richieste a Cloudflare.

Di solito Using Mullvad VPN e No WebRTC leaks sono verdi, mentre No DNS leaks è rosso perché Cloudflare non è gestito da Mullvad.

Rendere verde il controllo DNS

Sostituisci il DNS upstream di Pi-hole con un resolver Mullvad:

  • 1
    DNS interno Mullvad: 10.64.0.1. Funziona solo con il tunnel WireGuard attivo.
  • 2
    DNS pubblico Mullvad senza filtraggio: 194.242.2.2. Funziona anche se il tunnel cade brevemente.
  • 3
    DNS pubblico Mullvad con blocco di annunci, tracker e malware: 194.242.2.4.
  • 4
    DNS pubblico Mullvad con solo blocco degli annunci: 194.242.2.3.

Nel dashboard di Pi-hole:

  • 1
    Apri l'interfaccia di amministrazione Pi-hole.
  • 2
    Vai su Settings, poi DNS.
  • 3
    In Upstream DNS Servers deseleziona Cloudflare e gli altri provider.
  • 4
    Seleziona Custom e inserisci un indirizzo DNS Mullvad. Se necessario puoi aggiungere resolver IPv4 e IPv6.
  • 5
    Fai clic su Save in fondo alla pagina.

Impostazioni DNS di Pi-hole

Attendi alcuni secondi e ripeti il controllo su mullvad.net/check. No DNS leaks dovrebbe apparire verde.

Se il controllo mostra ancora una perdita DNS

La causa più comune è il browser, che usa il proprio DNS over HTTPS e ignora le impostazioni di Pi-hole. Disabilita il DNS sicuro.

Firefox

  • 1
    Apri Settings, poi Privacy & Security.
  • 2
    Scorri fino a DNS over HTTPS.
  • 3
    Seleziona Off.
  • 4
    Riavvia Firefox ed esegui di nuovo il controllo Mullvad.

Chrome

  • 1
    Apri chrome://settings/security.
  • 2
    In Use secure DNS disattiva l'impostazione.
  • 3
    Riavvia Chrome ed esegui di nuovo il controllo Mullvad.

Edge

  • 1
    Apri edge://settings/privacy.
  • 2
    Trova Use secure DNS e disattivalo.
  • 3
    Riavvia Edge ed esegui di nuovo il controllo Mullvad.

Se il risultato non cambia, prova una finestra privata o un browser diverso per capire se la perdita dipende dal browser.

Conclusione

Il Raspberry Pi ora funziona come blocco di annunci e tracker per tutta la rete e instrada il traffico attraverso la VPN Mullvad. Mantieni aggiornati Raspberry Pi OS, Pi-hole, WireGuard e la configurazione Mullvad per ricevere le ultime patch e conservare un funzionamento affidabile.

Per oggi è tutto. Spero che la guida ti sia piaciuta e ci vediamo presto!

Domande frequenti

Trova risposte rapide alle domande piu comuni su questo argomento.

A cosa serve usare Pi-hole con Mullvad su un Raspberry Pi?

Pi-hole blocca annunci e tracker a livello DNS, mentre Mullvad instrada il traffico Internet attraverso un tunnel VPN cifrato. Insieme offrono filtraggio DNS per tutta la rete e protezione VPN ai dispositivi che usano il Raspberry Pi come server DNS e gateway.

Un Raspberry Pi può eseguire Pi-hole e Mullvad WireGuard contemporaneamente?

Sì. Può eseguire Pi-hole come server DNS della rete e WireGuard come client VPN Mullvad. Con forwarding IPv4 e NAT configurati, può anche instradare nel tunnel il traffico degli altri dispositivi.

Perché il Raspberry Pi ha bisogno di un indirizzo IP statico?

Ha bisogno di un indirizzo stabile affinché gli altri dispositivi possano trovarlo sempre come server DNS e gateway. Un indirizzo DHCP variabile potrebbe interrompere il filtraggio DNS e impedire di raggiungere il gateway VPN.

Come instrado il traffico della rete domestica attraverso Mullvad?

Abilita il forwarding IPv4, consenti il forwarding tra le interfacce LAN e WireGuard, aggiungi una regola di masquerade per l'interfaccia VPN e configura ogni dispositivo per usare il Pi come gateway e server DNS.

Quale server DNS Mullvad devo usare con Pi-hole?

Usa il DNS interno Mullvad 10.64.0.1 quando il tunnel WireGuard è attivo. Per il DNS pubblico Mullvad usa 194.242.2.2 senza filtraggio, 194.242.2.4 con blocco di annunci e tracker oppure 194.242.2.3 solo con blocco degli annunci.

Perché il controllo della connessione Mullvad mostra una perdita DNS con Cloudflare?

Cloudflare non è gestito da Mullvad, quindi il controllo può segnalare una perdita anche quando il tunnel funziona correttamente. Per visualizzare No DNS leaks, configura Pi-hole con un resolver DNS Mullvad anziché Cloudflare.

Come posso risolvere una perdita DNS causata dal browser?

Disabilita DNS over HTTPS o il DNS sicuro nel browser, poi esegui di nuovo il controllo Mullvad. Se il risultato non cambia, prova una finestra privata o un altro browser per capire se il browser sta aggirando Pi-hole.

Bruma

Autore

Bruma

Pubblicato:
Aggiornato: