Un kill switch VPN bloque tout le trafic réseau dès que votre connexion VPN se coupe, pour que votre vraie adresse IP ne fuite jamais brièvement pendant que l’app se reconnecte. Sur Windows et macOS, c’est généralement un simple interrupteur dans les réglages de l’app. Sur Linux, ça dépend beaucoup de l’app ou du client utilisé, et si vous faites tourner OpenVPN ou WireGuard en ligne de commande plutôt qu’avec une app graphique, il faudra peut-être en configurer un manuellement avec iptables ou nftables. Voici comment gérer les deux cas.

Étape 1 : vérifier si votre app VPN en a déjà un

NordVPN, ProtonVPN, Surfshark et Mullvad proposent tous des apps Linux ou des outils en ligne de commande avec une option de kill switch intégrée, même si le libellé exact et son emplacement varient. Cherchez dans le menu des réglages de votre app des termes comme « kill switch », « VPN toujours actif », ou « verrouillage réseau ». Si vous utilisez une app officielle plutôt qu’une connexion OpenVPN ou WireGuard configurée manuellement, c’est presque toujours l’option la plus simple et la plus fiable, puisqu’elle est construite et testée par le fournisseur spécifiquement pour son propre client.

Étape 2 : activer le kill switch intégré

Si votre app propose l’option, activez-la et redémarrez l’app pour vous assurer que le réglage prend effet immédiatement plutôt que seulement pour les connexions futures. Certaines apps distinguent un kill switch standard, qui bloque tout le trafic quand le VPN se coupe, d’un mode « toujours actif » plus strict qui bloque tout accès internet tant que le VPN n’est pas activement connecté, même avant que vous ayez manuellement démarré une session. Pour la plupart des utilisateurs, l’option standard est le meilleur choix par défaut, le mode strict pouvant être gênant si vous utilisez souvent la machine sans le VPN actif.

Envie de comparer tous les VPN côte à côte ? Consultez notre tableau comparatif complet avec les scores sur 18 critères.

Étape 3 : configurer un kill switch iptables manuel

Si vous faites tourner une connexion WireGuard ou OpenVPN nue sans app graphique, ou si le client Linux de votre fournisseur n’inclut pas de kill switch, vous pouvez en construire un avec des règles iptables qui bloquent tout le trafic sortant sauf via l’interface réseau de votre VPN. L’idée centrale est de définir votre politique par défaut pour rejeter tout le trafic, puis d’autoriser explicitement le trafic uniquement via l’interface de votre tunnel VPN (généralement nommée tun0 pour OpenVPN ou wg0 pour WireGuard) et vers l’adresse IP de votre serveur VPN pour la négociation initiale.

Une version de base ressemble à ceci, à exécuter avant de se connecter :

sudo iptables -P OUTPUT DROP
sudo iptables -A OUTPUT -o tun0 -j ACCEPT
sudo iptables -A OUTPUT -d YOUR_VPN_SERVER_IP -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT

Remplacez YOUR_VPN_SERVER_IP par l’adresse IP réelle du serveur auquel vous vous connectez, et ajustez le nom de l’interface selon votre configuration. Cet ensemble de règles bloque par défaut tout le trafic sortant, puis crée des exceptions pour votre tunnel VPN, votre serveur VPN lui-même (nécessaire pour que la connexion s’établisse au départ), et le trafic loopback, dont votre système a besoin pour que ses processus internes fonctionnent correctement.

Étape 4 : utiliser nftables pour une approche plus moderne

nftables est le framework plus récent qui remplace iptables sur la plupart des distributions Linux actuelles, et il gère la même logique avec une syntaxe plus propre. Un jeu de règles comparable en nftables ressemble à ceci :

sudo nft add table inet killswitch
sudo nft add chain inet killswitch output { type filter hook output priority 0 \; policy drop \; }
sudo nft add rule inet killswitch output oifname "wg0" accept
sudo nft add rule inet killswitch output ip daddr YOUR_VPN_SERVER_IP accept
sudo nft add rule inet killswitch output oifname "lo" accept

Quel que soit le framework utilisé, souvenez-vous que ces règles s’appliquent jusqu’à ce que vous les supprimiez ou redémarriez, donc si vous déconnectez le VPN intentionnellement et voulez retrouver un accès internet normal, il faudra réinitialiser le jeu de règles (sudo iptables -F pour iptables, ou supprimer la table avec sudo nft delete table inet killswitch pour nftables) plutôt que simplement fermer l’application VPN.

Étape 5 : vérifier que ça fonctionne vraiment

Cette étape compte plus que la configuration elle-même, un kill switch non testé n’étant qu’une supposition. Avec votre VPN connecté et les règles actives, trouvez le processus VPN et forcez son arrêt pour simuler une coupure inattendue :

sudo pkill -9 openvpn

ou pour WireGuard :

sudo wg-quick down wg0

Essayez ensuite immédiatement de charger n’importe quel site web. Si vos règles de kill switch fonctionnent, la connexion doit échouer complètement plutôt que de basculer silencieusement vers votre connexion normale non protégée. Si une page se charge quand même, vérifiez l’ordre de vos règles et confirmez que la politique par défaut de la chaîne OUTPUT ou nftables est bien réglée sur drop, un mauvais ordre des règles étant la raison la plus courante pour laquelle un kill switch manuel ne bloque en réalité rien.

Rendre les règles persistantes après redémarrage

Les règles iptables ou nftables manuelles ne survivent pas à un redémarrage par défaut. Sur la plupart des distributions, vous pouvez sauvegarder les règles iptables avec iptables-save > /etc/iptables/rules.v4 et les restaurer au démarrage via le paquet iptables-persistent de votre distribution, ou écrire directement votre jeu de règles nftables dans /etc/nftables.conf et activer le service systemd nftables pour qu’il se charge automatiquement. Si vous n’avez besoin du kill switch actif que pendant des sessions spécifiques plutôt que de façon permanente, un simple script shell qui applique les règles avant de se connecter et les retire après déconnexion est souvent plus pratique que de les rendre persistantes à l’échelle du système.

Problèmes courants et solutions

Les requêtes DNS fuitent quand même : vos règles de kill switch ne couvrent peut-être que le trafic sortant sur les ports standards sans gérer explicitement le DNS. Assurez-vous que votre app VPN ou votre config WireGuard/OpenVPN manuelle fait passer le DNS par l’interface du tunnel, et envisagez d’ajouter une règle explicite bloquant le trafic DNS (port 53) en dehors du tunnel.

Le kill switch bloque la négociation initiale du VPN : cela signifie généralement que votre règle autorisant le trafic vers l’IP du serveur VPN a été écrite après la prise d’effet de la politique de rejet par défaut, ou que l’IP du serveur est incorrecte. Vérifiez bien que l’adresse IP correspond au serveur réel auquel vous vous connectez, pas un nom d’hôte, les règles iptables et nftables ayant généralement besoin d’une adresse IP résolue plutôt que d’un nom de domaine.

Les règles ne survivent pas à un redémarrage : comme vu plus haut, c’est le comportement attendu à moins d’avoir explicitement configuré la persistance via les outils de votre distribution.

Sur quelles distributions ça fonctionne

Les commandes iptables et nftables ci-dessus fonctionnent de la même façon sur Debian, Ubuntu, Fedora, Arch et la plupart des autres grandes distributions, ces deux frameworks faisant partie de la pile réseau standard du noyau Linux plutôt que d’être spécifiques à une distribution. La principale différence entre distributions concerne les outils de persistance disponibles par défaut et le nom du paquet, vérifiez donc la documentation de votre distribution pour le nom exact du paquet de persistance si vous voulez que les règles survivent automatiquement à un redémarrage.

Notre verdict

Si votre app VPN dispose d'un kill switch intégré sur Linux, utilisez-le, c'est plus simple et testé par le fournisseur. Si vous faites tourner une configuration WireGuard ou OpenVPN manuelle, un court jeu de règles iptables ou nftables comble le même vide en quelques minutes, et le tester en tuant de force le processus VPN est la seule façon de vraiment confirmer que ça fonctionne. Mullvad et NordVPN incluent tous deux un kill switch intégré fiable dans leurs apps Linux si vous préférez éviter complètement la configuration manuelle.

À lire aussi : Le kill switch VPN expliqué et Meilleur VPN pour Linux en 2026.