Une fuite DNS se produit lorsque votre appareil envoie des requêtes de résolution de noms de domaine en dehors du tunnel de votre VPN, généralement vers le résolveur de votre FAI, qui peut donc encore voir les sites que vous visitez. Une fuite WebRTC est un problème voisin, propre au navigateur, où une page web peut découvrir votre vraie adresse IP alors que votre VPN ou proxy est actif.
Ces deux fuites sont silencieuses : le VPN affiche « connecté » et les sites voient l'IP du VPN pour le trafic normal. Ce guide explique pourquoi chacune se produit, comment la tester et la corriger, ainsi que la fuite IPv6, qui leur est étroitement liée.
Qu'est-ce qu'une fuite DNS ?
Avant que votre navigateur puisse se connecter à www.example.com, il doit demander à un résolveur DNS l'adresse IP du site. Cette question, et sa réponse, révèlent le site que vous êtes sur le point de visiter. Si vous découvrez le processus de résolution, notre guide sur le fonctionnement du DNS le détaille étape par étape.
Un VPN correctement configuré envoie les requêtes DNS dans le tunnel vers un résolveur exploité par le fournisseur du VPN ou que vous avez choisi. Quand cela échoue et que les requêtes vont directement au résolveur de votre FAI, vous avez une fuite DNS. Le site voit toujours l'IP du VPN, mais votre FAI dispose de la liste de tous les domaines que vous avez recherchés, avec l'heure.
Causes courantes des fuites DNS
- Le système continue d'utiliser l'ancien résolveur. Le client VPN ne remplace pas les paramètres DNS du système, ou le serveur DNS d'une autre carte réseau a une priorité plus élevée.
- Requêtes parallèles sous Windows. Windows peut envoyer une requête aux serveurs DNS de plusieurs interfaces réseau à la fois et utiliser la réponse la plus rapide : le résolveur du FAI voit alors la requête même si celui du VPN la voit aussi.
- DNS IPv6. Le VPN gère le DNS IPv4, mais le système dispose aussi d'un résolveur IPv6 fourni par le routeur, utilisé en dehors du tunnel.
- Tunnel fractionné (split tunnelling). Les applications exclues du VPN résolvent les noms avec le résolveur habituel, par conception.
- Paramètres DNS manuels sur l'appareil ou le routeur qui écrasent ceux définis par le VPN.
Comment tester une fuite DNS
Les tests de fuite DNS dédiés font effectuer à votre navigateur la résolution de plusieurs sous-domaines aléatoires et uniques d'un domaine dont le serveur faisant autorité est contrôlé par le testeur. Ce serveur enregistre les adresses IP des résolveurs qui ont demandé ces noms. Si l'une d'elles appartient à votre FAI plutôt qu'au fournisseur de votre VPN, vous avez une fuite.
Vous pouvez faire une version rapide de ce test depuis un terminal. Akamai exploite un nom spécial qui répond avec l'adresse IP du résolveur qui l'a demandé :
dig +short whoami.akamai.net
nslookup whoami.akamai.net
Lancez-le avec le VPN connecté, puis collez l'IP obtenue dans notre Recherche d'ASN. Si le réseau appartient à votre FAI, votre DNS fuit. Vérifiez aussi quels résolveurs votre système est configuré pour utiliser :
- Windows :
ipconfig /allet regardez « Serveurs DNS » sur chaque carte. - macOS :
scutil --dns - Linux avec systemd-resolved :
resolvectl status
Comment corriger une fuite DNS
- Activez l'option de protection contre les fuites DNS du client VPN s'il en propose une. La plupart des clients actuels forcent tout le DNS à passer par le tunnel et bloquent le port 53 vers les autres serveurs.
- Supprimez les serveurs DNS configurés manuellement sur la carte réseau, ou réglez-les sur le résolveur du VPN.
- Si le VPN ne prend pas en charge IPv6, désactivez IPv6 sur la carte réseau ou activez la protection contre les fuites IPv6 du client.
- Activez le kill switch pour que rien, DNS compris, ne sorte de l'appareil pendant la reconnexion du tunnel.
- Retestez après chaque modification, et de nouveau après vous être reconnecté à un autre réseau Wi-Fi.
Qu'est-ce qu'une fuite WebRTC ?
WebRTC est la technologie de navigateur derrière les appels vidéo et les transferts de fichiers en pair à pair. Pour connecter directement deux navigateurs, elle doit trouver toutes les adresses auxquelles chacun peut être joint. Elle le fait via ICE (Interactive Connectivity Establishment), qui rassemble une liste de candidats :
| Type de candidat | Origine | Exemple |
|---|---|---|
| Host | Les interfaces réseau de l'appareil lui-même | 192.168.1.23 ou un nom mDNS |
| Server reflexive (srflx) | Un serveur STUN indique l'IP publique et le port d'où il a vu venir la requête | 203.0.113.50 |
| Relay | Un serveur TURN qui relaie les flux multimédias quand le chemin direct échoue | L'IP du serveur TURN |
N'importe quelle page web peut lancer ce processus avec quelques lignes de JavaScript, sans demander l'autorisation, et lire les candidats. La fuite se produit lorsque la requête STUN quitte votre appareil en dehors du VPN ou du proxy. C'est fréquent avec les extensions de proxy de navigateur et les proxys SOCKS, qui font passer les requêtes web mais pas le trafic UDP de WebRTC, ainsi qu'avec le tunnel fractionné. Le candidat server reflexive contient alors votre vraie IP publique.
Masquage des adresses locales par mDNS
Les candidats host exposaient autrefois des adresses privées du réseau local comme 192.168.1.23, ce qui facilitait l'identification des utilisateurs. Les versions actuelles de Chrome, Firefox, Safari et Edge les remplacent par des noms aléatoires du type 3f1c2a9e-7b4d-4c1e-9a52-6d8e0f1b2c3a.local, résolus par DNS multicast uniquement sur le réseau local. Les navigateurs ne révèlent généralement les vraies adresses locales qu'après qu'une page a obtenu l'accès à la caméra ou au microphone.
Comment tester et corriger les fuites WebRTC
Lancez notre Test de fuite WebRTC avec votre VPN ou proxy actif. Il liste tous les candidats exposés par votre navigateur. Si une adresse publique correspond à celle que vous avez quand le VPN est coupé, vous avez une fuite. Pour la corriger :
- Utilisez un VPN en tunnel complet plutôt qu'un proxy limité au navigateur. Quand tout le trafic UDP passe par le tunnel, le serveur STUN voit l'IP du VPN.
- Firefox : ouvrez
about:configet réglezmedia.peerconnection.enabledsurfalse. Cela désactive entièrement WebRTC : les appels vidéo dans le navigateur cessent alors de fonctionner. - Navigateurs basés sur Chromium : il n'existe pas de réglage utilisateur simple, mais la politique d'entreprise
WebRtcIPHandling(par exempledisable_non_proxied_udp) ou une extension réputée peut restreindre les interfaces que WebRTC utilise.
Les fuites IPv6
De nombreux réseaux attribuent désormais aux appareils une adresse IPv4 et une adresse IPv6. Si votre VPN ne crée qu'un tunnel IPv4, le système d'exploitation conserve une route IPv6 fonctionnelle via votre FAI. Les sites compatibles IPv6 la privilégient : ils voient donc votre vraie adresse IPv6, unique au niveau mondial, souvent plus identifiante qu'une adresse IPv4 partagée derrière un NAT.
Testez avec le VPN connecté grâce à notre Test IPv6. Vous devez voir soit aucune connectivité IPv6, soit une adresse IPv6 appartenant au fournisseur du VPN. Une adresse issue de la plage de votre propre FAI signifie une fuite ; corrigez-la en activant la prise en charge d'IPv6 ou la protection contre les fuites du client, ou en désactivant IPv6 sur la carte réseau pendant l'utilisation du VPN.
Questions fréquentes
Mon FAI peut-il voir ma navigation si j'ai une fuite DNS ?
Il peut voir les noms de domaine que vous recherchez, pas les pages ni leur contenu. Le trafic lui-même passe toujours par le VPN : votre FAI ne peut donc pas voir ce que vous faites sur chaque site.
Les fuites DNS comptent-elles si je n'utilise pas de VPN ?
Le terme ne s'applique que lorsque vous vous attendez à ce que le DNS aille ailleurs. Sans VPN, le résolveur de votre FAI est de toute façon utilisé normalement. Vous pouvez passer à un service DNS chiffré pour que vos requêtes échappent à votre FAI.
Désactiver WebRTC est-il sans risque ?
Oui, cela ne perturbe pas la navigation normale, mais les appels vidéo dans le navigateur, le partage d'écran et certains sites de partage de fichiers cesseront de fonctionner jusqu'à ce que vous le réactiviez.
Pourquoi le test WebRTC affiche-t-il une adresse .local ?
C'est la protection mDNS du navigateur qui fonctionne comme prévu. Le nom .local aléatoire masque votre IP privée du réseau local au site web.