Comment créer une passerelle VPN Mozilla sur Ubuntu Linux
- Mise à jour le 18 oct. 2025
Je possède une licence pour Mozilla VPN, car je trouve que c’est une excellente façon de soutenir la fondation, et c'est une très bonne solution VPN. Mais je dois avouer que je suis un peu frustré !
En effet, Mozilla VPN prend officiellement en charge Windows 10/11, macOS, Android, iOS, Ubuntu et partiellement Debian. Mais que faire si vous utilisez Arch Linux ou une autre distribution non prise en charge ?
Ce guide vous montre comment créer une passerelle VPN avec Ubuntu pour rediriger le trafic de n’importe quelle machine Linux de votre réseau à travers Mozilla VPN. Cette solution est non seulement plus flexible, mais aussi plus pratique que d’installer le client VPN sur chaque appareil.
Ce que vous allez apprendre :
- Installer et configurer Mozilla VPN sur Ubuntu
- Activer le routage IPv4 et IPv6
- Créer des règles NAT de masquage
- Rediriger le trafic depuis des distributions Linux non supportées
- Configurer un routage basé sur les ports pour certains protocoles
Architecture réseau de la passerelle VPN
Ce tutoriel explique comment configurer une machine Ubuntu en tant que routeur de passerelle VPN. Cette configuration permet à n’importe quel appareil de votre réseau — comme un poste Arch Linux — d’acheminer son trafic via la connexion Mozilla VPN.
Configurer Ubuntu comme passerelle VPN
Installer Mozilla VPN sur Ubuntu
Suivez ces étapes pour installer Mozilla VPN depuis le dépôt APT officiel de Mozilla pour Linux. Utiliser le dépôt officiel garantit les mises à jour automatiques et la vérification correcte des paquets.
Ajouter le dépôt APT de Mozilla
- Créez le répertoire APT keyrings :
user@ubuntu:~$ sudo install -d -m 0755 /etc/apt/keyrings
- Importez la clé de signature du dépôt APT de Mozilla :
user@ubuntu:~$ wget -q https://packages.mozilla.org/apt/repo-signing-key.gpg -O- | sudo tee /etc/apt/keyrings/packages.mozilla.org.asc > /dev/null
- Vérifiez que l’empreinte correspond à
35BAA0B33E9EB396F59CA838C0BA5CE6DC6315A3pour confirmer l’authenticité :
user@ubuntu:~$ gpg -n -q --import --import-options import-show /etc/apt/keyrings/packages.mozilla.org.asc | awk '/pub/{getline; gsub(/^ +| +$/,""); if($0 == "35BAA0B33E9EB396F59CA838C0BA5CE6DC6315A3") print "\nL’empreinte correspond ("$0").\n"; else print "\nÉchec de la vérification : l’empreinte ("$0") ne correspond pas à celle attendue.\n"}'
- Ajoutez le dépôt Mozilla APT à votre liste de sources :
user@ubuntu:~$ echo "deb [signed-by=/etc/apt/keyrings/packages.mozilla.org.asc] https://packages.mozilla.org/apt mozilla main" | sudo tee -a /etc/apt/sources.list.d/mozilla.list > /dev/null
Installer le paquet Mozilla VPN
- Mettez à jour la liste des paquets et installez Mozilla VPN :
user@ubuntu:~$ sudo apt update
user@ubuntu:~$ sudo apt install mozillavpn
Exporter la configuration de Mozilla VPN pour WireGuard
Lancer Mozilla VPN depuis l’interface graphique :
Cliquez sur l’interrupteur pour activer la connexion VPN. Vous pouvez choisir l’emplacement du serveur (par exemple : Tokyo) avant de vous connecter.
Enregistrer la configuration VPN actuelle dans un fichier WireGuard :
Utilisez la commande mozillavpn wgconf pour exporter votre configuration VPN. Cela crée un fichier wireguard.conf utilisable avec les outils standard de WireGuard :
user@ubuntu:~$ mozillavpn wgconf > wireguard.conf
Désactiver Mozilla VPN depuis l’interface graphique :
Une fois la configuration exportée, désactivez le client Mozilla VPN en cliquant à nouveau sur l’interrupteur. Nous allons ensuite utiliser directement WireGuard à la place de l’application graphique.
Démarrer le VPN avec WireGuard :
Chargez le fichier de configuration exporté avec la commande wg-quick :
user@ubuntu:~$ sudo wg-quick up ./wireguard.conf
Activer le routage IP sur Ubuntu
Pour transformer votre serveur Ubuntu en passerelle VPN, vous devez activer le routage IP (IP forwarding). Ce paramètre du noyau permet au serveur de transférer les paquets entre les interfaces réseau — une étape essentielle pour faire passer le trafic des clients à travers le tunnel Mozilla VPN.
Activer le routage IPv4
- Méthode temporaire (active jusqu’au redémarrage) :
user@ubuntu:~$ echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
- Méthode persistante (conservée après redémarrage). Éditez le fichier
/etc/sysctl.confet ajoutez ou décommentez la ligne suivante :
net.ipv4.ip_forward=1
- Appliquez les modifications de configuration :
user@ubuntu:~$ sudo sysctl -p
Activer le routage IPv6
- Méthode temporaire (active jusqu’au redémarrage) :
user@ubuntu:~$ echo 1 | sudo tee /proc/sys/net/ipv6/conf/all/forwarding
- Méthode persistante (conservée après redémarrage). Éditez le fichier
/etc/sysctl.confet ajoutez ou décommentez la ligne suivante :
net.ipv6.conf.all.forwarding=1
- Appliquez les modifications de configuration :
user@ubuntu:~$ sudo sysctl -p
Configurer les règles de masquage NAT
Configurez le masquage NAT (Network Address Translation) afin de permettre aux clients d’acheminer leur trafic via la passerelle VPN. Ce mécanisme traduit les adresses IP internes en l’adresse externe utilisée par le VPN.
Masquage IPv4
- Ajoutez la règle iptables NAT :
user@ubuntu:~$ sudo iptables -t nat -A POSTROUTING -o wireguard -j MASQUERADE
Masquage IPv6
- Ajoutez la règle ip6tables NAT :
user@ubuntu:~$ sudo ip6tables -t nat -A POSTROUTING -o wireguard -j MASQUERADE
La configuration de la passerelle VPN Ubuntu est maintenant terminée. Le serveur peut désormais rediriger le trafic des clients à travers le tunnel Mozilla VPN. Dans la section suivante, nous allons configurer une machine Arch Linux pour utiliser cette passerelle comme accès Internet.
Configurer un client Arch Linux pour utiliser la passerelle VPN
Maintenant que la passerelle VPN Ubuntu est opérationnelle, vous pouvez configurer vos appareils clients afin qu’ils redirigent leur trafic à travers celle-ci. Cette section présente trois stratégies de routage différentes pour les clients Arch Linux :
- Rediriger tout le trafic — Acheminer l’intégralité du trafic Internet via la passerelle VPN
- Rediriger certains hôtes — Ne faire passer que le trafic vers certaines adresses IP par le VPN
- Routage basé sur les ports (PBR) — Acheminer le trafic selon les protocoles (HTTP, HTTPS, etc.) via le VPN
Choisissez la méthode qui correspond le mieux à vos besoins. La première option est la plus simple, tandis que le routage basé sur les ports offre la plus grande flexibilité.
Rediriger tout le trafic via la passerelle VPN
C’est la méthode de configuration la plus simple. En modifiant la passerelle par défaut sur votre client Arch Linux, tout le trafic Internet sera automatiquement acheminé à travers la passerelle VPN Ubuntu.
Configurer la route par défaut IPv4
- Supprimez la route par défaut actuelle :
root@arch:~# route del default
- Ajoutez la passerelle VPN comme route par défaut (remplacez
192.168.1.1par l’adresse IP de votre passerelle Ubuntu etens160par le nom de votre interface réseau) :
root@arch:~# route add default via 192.168.1.1 dev ens160
Configurer la route par défaut IPv6
- Depuis la passerelle VPN Ubuntu, notez l’adresse IPv6 locale de lien :
user@ubuntu:~$ ip -6 addr sh
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
inet6 2001:db8::/64 scope global dynamic mngtmpaddr
valid_lft 86187sec preferred_lft 14187sec
inet6 fe80::aaff:874a:dead:bee5/64 scope link
valid_lft forever preferred_lft forever
- Depuis le client Arch Linux, supprimez la route par défaut IPv6 actuelle :
root@arch:~# ip -6 route del default
- Ajoutez la passerelle VPN comme route par défaut IPv6 (remplacez
fe80::aaff:874a:dead:bee5par l’adresse locale de lien de votre passerelle Ubuntu etens160par le nom de votre interface) :
root@arch:~# ip -6 route add default via fe80::aaff:874a:dead:bee5 dev ens160 metric 1
Rediriger certains hôtes via la passerelle VPN
Plutôt que de faire passer tout le trafic par le VPN, vous pouvez configurer des routes statiques vers des adresses IP ou des réseaux spécifiques. Cette méthode permet d’utiliser sélectivement le VPN pour certaines destinations tout en conservant un accès Internet direct pour le reste.
Routage IPv4 basé sur les hôtes
- Faites passer une adresse IP unique par la passerelle VPN — par exemple, pour rediriger le trafic destiné au DNS de Google (
8.8.8.8) via le VPN :
root@arch:~# ip route add 8.8.8.8 via 192.168.1.1 dev ens160
- Faites passer un réseau entier via la passerelle VPN :
root@arch:~# ip route add 10.0.0.0/8 via 192.168.1.1 dev ens160
- Faites passer plusieurs hôtes spécifiques par la passerelle VPN :
root@arch:~# ip route add 1.1.1.1 via 192.168.1.1 dev ens160
root@arch:~# ip route add 8.8.4.4 via 192.168.1.1 dev ens160
Routage IPv6 basé sur les hôtes
- Faites passer une adresse IPv6 spécifique via la passerelle VPN :
root@arch:~# ip -6 route add 2001:0db8::1 via fe80::aaff:874a:dead:bee5 dev ens160
Vérifier et gérer les routes
- Afficher la table de routage :
root@arch:~# ip route show
- Supprimer une route statique :
root@arch:~# ip route del 8.8.8.8
Routage basé sur les ports (PBR)
PBR (Port-Based Routing) consiste à marquer certains paquets réseau qui doivent être acheminés via la passerelle VPN. Seuls les paquets portant la marque 0x80 utiliseront la route VPN. Cette méthode permet d’envoyer des hôtes ou des protocoles spécifiques — comme le trafic HTTP ou HTTPS — à travers le tunnel Mozilla VPN, tout en laissant le reste du trafic passer par le réseau classique.
Table de routage VPN
- Créez une table de routage dédiée au VPN :
root@arch:~# echo "200 vpn" >> /etc/iproute2/rt_tables
- Associez la marque de paquet 0x80 à la table vpn :
root@arch:~# ip rule add fwmark 0x80 table vpn
- Ajoutez votre passerelle VPN Ubuntu comme route par défaut dans la table vpn :
root@arch:~# ip route add default via 192.168.1.1 dev ens160 table vpn
- Vérifiez la table de routage VPN :
root@arch:~# ip route list table vpn
default via 192.168.1.1 dev ens160
Routage de protocoles spécifiques avec des règles nftables
Dans cet exemple, nous allons marquer les paquets sortants HTTP et HTTPS afin qu’ils soient routés via la passerelle VPN. L’utilisation de nftables permet de marquer les paquets de manière flexible selon les ports, les adresses ou les protocoles — une approche puissante pour les configurations avancées de routage Linux avec Mozilla VPN.
- Créez une nouvelle chaîne MANGLE nftables :
root@arch:~# nft add chain ip filter MANGLE { type route hook output priority -150\; policy accept \; }
- Marquez tous les paquets HTTP et HTTPS à l’exception de ceux destinés au réseau local (192.168.1.0/24) :
root@arch:~# nft add rule ip filter MANGLE tcp dport { 80, 443 } ip daddr \!= { 192.168.1.0/24 } meta mark set 0x80 counter
- Pour marquer tous les paquets TCP sortants à la place :
root@arch:~# nft add rule ip filter MANGLE tcp sport \>= 1024 ip daddr \!= { 192.168.1.0/24 } meta mark set 0x80 counter
- Pour marquer tous les paquets UDP sortants :
root@arch:~# nft add rule ip filter MANGLE udp sport \>= 1024 ip daddr \!= { 192.168.1.0/24 } meta mark set 0x80 counter
Vérifier votre connexion VPN
Maintenant que tout est configuré, vérifions que votre trafic passe bien par la passerelle VPN Mozilla. Le moyen le plus simple de le confirmer consiste à vérifier votre adresse IP publique (adresse WAN). Si votre VPN fonctionne correctement, votre adresse IP doit correspondre à la localisation du serveur VPN que vous avez sélectionné.
IPv4
- Récupérez votre adresse IPv4 publique actuelle :
root@arch:~# curl ipinfo.io/ip
IPv6
- Récupérez votre adresse IPv6 publique actuelle :
root@arch:~# telnet -6 ipv6.telnetmyip.com
Vérifier les adresses IP avec l’extension Firefox STIP
J’ai développé une extension Firefox légère appelée STIP 🥰, qui vous permet d’afficher instantanément vos adresses IP publiques IPv4 et IPv6 directement depuis le navigateur. Vous pouvez la télécharger gratuitement 🤗 depuis le site officiel des modules complémentaires de Mozilla :
Télécharger l’extension STIP sur Mozilla Add-ons
L’application a parlé : nous sommes bien à Tokyo ! (Ou du moins, notre connexion internet.)