Un DNS leak si verifica quando il tuo dispositivo invia le richieste di risoluzione dei nomi di dominio fuori dal tunnel della VPN, di solito al resolver del tuo provider (ISP), così il tuo ISP può ancora vedere quali siti visiti. Un WebRTC leak è un problema affine del browser, in cui una pagina web riesce a scoprire il tuo vero indirizzo IP anche se la VPN o il proxy sono attivi.
Entrambe le perdite sono silenziose: la VPN risulta "connessa" e i siti web vedono l'IP della VPN per il traffico normale. Questa guida spiega perché si verificano, come testarle e come risolverle, insieme al leak IPv6, strettamente collegato.
Cos'è un DNS leak
Prima che il tuo browser possa connettersi a www.example.com, deve chiedere a un resolver DNS l'indirizzo IP del sito. Quella domanda, e la sua risposta, rivelano quale sito stai per visitare. Se non conosci il processo di risoluzione, la nostra guida su come funziona il DNS lo spiega passo per passo.
Una VPN configurata correttamente invia le query DNS attraverso il tunnel a un resolver gestito dal provider della VPN o scelto da te. Quando questo non funziona e le query vanno direttamente al resolver del tuo ISP, hai un DNS leak. Il sito web continua a vedere l'IP della VPN, ma il tuo ISP ha l'elenco di ogni dominio che hai cercato, con data e ora.
Cause comuni dei DNS leak
- Il sistema operativo continua a usare il vecchio resolver. Il client VPN non riesce a sostituire le impostazioni DNS del sistema, oppure il server DNS di un'altra scheda di rete ha priorità più alta.
- Query parallele su Windows. Windows può inviare una query ai server DNS di più interfacce di rete contemporaneamente e usare la risposta più veloce, così il resolver dell'ISP vede la query anche se la vede pure quello della VPN.
- DNS IPv6. La VPN gestisce il DNS IPv4, ma il sistema ha anche un resolver IPv6 fornito dal router, che viene usato fuori dal tunnel.
- Split tunnelling. Le app escluse dalla VPN risolvono i nomi con il resolver normale, per scelta di progetto.
- Impostazioni DNS manuali sul dispositivo o sul router che sovrascrivono quelle impostate dalla VPN.
Come testare un DNS leak
I test dedicati ai DNS leak funzionano facendo cercare al tuo browser diversi sottodomini casuali e univoci di un dominio il cui server autoritativo è controllato da chi gestisce il test. Il server autoritativo registra quali indirizzi IP di resolver hanno chiesto quei nomi. Se uno qualsiasi appartiene al tuo ISP invece che al provider della VPN, hai un leak.
Puoi fare una versione rapida di questo test da terminale. Akamai gestisce un nome speciale che risponde con l'indirizzo IP del resolver che lo ha richiesto:
dig +short whoami.akamai.net
nslookup whoami.akamai.net
Eseguilo con la VPN connessa, poi incolla l'IP restituito nella nostra Ricerca ASN. Se la rete appartiene al tuo ISP, hai un DNS leak. Controlla anche quali resolver il tuo sistema è configurato a usare:
- Windows:
ipconfig /alle guarda "Server DNS" su ogni scheda. - macOS:
scutil --dns - Linux con systemd-resolved:
resolvectl status
Come risolvere un DNS leak
- Attiva l'opzione di protezione dai DNS leak del client VPN, se ce l'ha. La maggior parte dei client attuali forza tutto il DNS nel tunnel e blocca la porta 53 verso gli altri server.
- Rimuovi i server DNS configurati manualmente sulla scheda di rete, oppure impostali sul resolver della VPN.
- Se la VPN non supporta IPv6, disattiva IPv6 sulla scheda oppure attiva la protezione dai leak IPv6 del client.
- Attiva il kill switch, così nulla, DNS compreso, lascia il dispositivo mentre il tunnel si riconnette.
- Ripeti il test dopo ogni modifica e di nuovo dopo esserti riconnesso a un'altra rete Wi-Fi.
Cos'è un WebRTC leak
WebRTC è la tecnologia del browser dietro le videochiamate e i trasferimenti di file peer-to-peer. Per collegare direttamente due browser, deve trovare tutti gli indirizzi a cui ciascuno potrebbe essere raggiungibile. Lo fa tramite ICE (Interactive Connectivity Establishment), che raccoglie un elenco di candidati:
| Tipo di candidato | Da dove arriva | Esempio |
|---|---|---|
| Host | Le interfacce di rete del dispositivo stesso | 192.168.1.23 o un nome mDNS |
| Server reflexive (srflx) | Un server STUN riporta l'IP pubblico e la porta da cui ha visto arrivare la richiesta | 203.0.113.50 |
| Relay | Un server TURN che inoltra i contenuti multimediali quando un percorso diretto non funziona | L'IP del server TURN |
Qualsiasi pagina web può avviare questo processo con poche righe di JavaScript, senza chiedere il permesso, e leggere i candidati. Il leak avviene quando la richiesta STUN lascia il tuo dispositivo fuori dalla VPN o dal proxy. È una situazione frequente con le estensioni proxy del browser e con i proxy SOCKS, che instradano le richieste web ma non il traffico UDP di WebRTC, e con lo split tunnelling. Il candidato server reflexive contiene allora il tuo vero IP pubblico.
Offuscamento mDNS degli indirizzi locali
I candidati host una volta esponevano indirizzi LAN privati come 192.168.1.23, il che aiutava a creare il fingerprint degli utenti. Le versioni attuali di Chrome, Firefox, Safari ed Edge li sostituiscono con nomi casuali come 3f1c2a9e-7b4d-4c1e-9a52-6d8e0f1b2c3a.local, risolti tramite multicast DNS solo sulla rete locale. I browser di solito rivelano i veri indirizzi locali solo dopo che a una pagina è stato concesso l'accesso alla fotocamera o al microfono.
Come testare e risolvere i WebRTC leak
Esegui il nostro Test WebRTC leak con la VPN o il proxy attivi. Elenca tutti i candidati che il tuo browser espone. Se un qualsiasi indirizzo pubblico coincide con quello che hai con la VPN spenta, hai un leak. Per risolverlo:
- Usa una VPN a tunnel completo invece di un proxy solo per il browser. Quando tutto il traffico UDP passa dal tunnel, il server STUN vede l'IP della VPN.
- Firefox: apri
about:confige impostamedia.peerconnection.enabledsufalse. Questo disattiva del tutto WebRTC, quindi le videochiamate nel browser smettono di funzionare. - Browser basati su Chromium: non esiste un'impostazione utente semplice, ma la policy aziendale
WebRtcIPHandling(per esempiodisable_non_proxied_udp) o un'estensione affidabile può limitare le interfacce usate da WebRTC.
Leak IPv6
Molte reti oggi assegnano ai dispositivi sia un indirizzo IPv4 sia uno IPv6. Se la tua VPN crea solo un tunnel IPv4, il sistema operativo ha comunque un percorso IPv6 funzionante attraverso il tuo ISP. I siti che supportano IPv6 lo preferiscono, quindi vedono il tuo vero indirizzo IPv6, univoco a livello globale, che spesso identifica più di un indirizzo IPv4 condiviso dietro NAT.
Testa con la VPN connessa usando il nostro Test IPv6. Devi vedere o nessuna connettività IPv6 oppure un indirizzo IPv6 appartenente al provider della VPN. Un indirizzo dell'intervallo del tuo ISP indica un leak; risolvilo attivando il supporto IPv6 o la protezione dai leak del client, oppure disattivando IPv6 sulla scheda di rete mentre usi la VPN.
Domande frequenti
Il mio ISP può vedere la mia navigazione se ho un DNS leak?
Può vedere i nomi di dominio che cerchi, non le pagine né i contenuti. Il traffico vero e proprio passa comunque dalla VPN, quindi il tuo ISP non può vedere cosa fai su ogni sito.
I DNS leak contano se non uso una VPN?
Il termine vale solo quando ti aspetti che il DNS vada altrove. Senza VPN, di norma viene comunque usato il resolver del tuo ISP. Puoi passare a un servizio DNS cifrato per tenere le tue richieste lontane dal tuo ISP.
Disattivare WebRTC è sicuro?
Sì, non rovina la navigazione normale, ma le videochiamate nel browser, la condivisione dello schermo e alcuni siti di condivisione file smetteranno di funzionare finché non lo riattivi.
Perché il test WebRTC mostra un indirizzo .local?
È la protezione mDNS del browser che funziona come previsto. Il nome casuale .local nasconde al sito web il tuo IP LAN privato.