VPN sur Linux : configurer OpenVPN et WireGuard en ligne de commande
utilisation

VPN sur Linux : configurer OpenVPN et WireGuard en ligne de commande

4 min de lecture

Linux est le système d’exploitation qui offre le plus de flexibilité pour configurer un VPN. Pas de boîte noire, pas d’interface qui cache ce qui se passe vraiment — vous contrôlez tout. La contrepartie, c’est que la configuration demande un peu plus d’implication qu’un simple clic sur “Se connecter”.

Voici comment configurer un VPN sur Linux, avec OpenVPN et WireGuard, aussi bien en ligne de commande qu’avec Network Manager pour ceux qui préfèrent une interface graphique.

OpenVPN sur Linux

Installation

Sur les distributions basées sur Debian/Ubuntu :

sudo apt update
sudo apt install openvpn

Sur Fedora/RHEL :

sudo dnf install openvpn

Sur Arch Linux :

sudo pacman -S openvpn

Connexion avec un fichier .ovpn

Votre fournisseur VPN vous fournit un fichier de configuration .ovpn. Téléchargez-le, puis lancez :

sudo openvpn --config /chemin/vers/votre-serveur.ovpn

Si le fichier nécessite des identifiants, OpenVPN vous les demandera interactivement. Pour les automatiser, créez un fichier auth.txt avec votre nom d’utilisateur sur la première ligne et votre mot de passe sur la seconde, puis ajoutez dans votre .ovpn :

auth-user-pass /chemin/vers/auth.txt

Lancer OpenVPN comme service systemd

Pour que le VPN se reconnecte automatiquement au démarrage :

# Copiez votre fichier de config
sudo cp votre-serveur.ovpn /etc/openvpn/client/votre-serveur.conf

# Activez et démarrez le service
sudo systemctl enable openvpn-client@votre-serveur
sudo systemctl start openvpn-client@votre-serveur

# Vérifiez l'état
sudo systemctl status openvpn-client@votre-serveur

Vérifier la connexion

# Vérifier que l'interface tun0 existe
ip addr show tun0

# Vérifier que le trafic passe par le VPN
curl ifconfig.me

WireGuard sur Linux

WireGuard est intégré dans le noyau Linux depuis la version 5.6. Sur la plupart des distributions modernes, vous n’avez besoin que des outils en espace utilisateur.

Installation

# Debian/Ubuntu
sudo apt install wireguard wireguard-tools

# Fedora
sudo dnf install wireguard-tools

# Arch Linux
sudo pacman -S wireguard-tools

Générer une paire de clés

Si vous configurez votre propre serveur WireGuard :

wg genkey | tee privatekey | wg pubkey > publickey
cat privatekey
cat publickey

Créer le fichier de configuration client

Créez /etc/wireguard/wg0.conf :

[Interface]
PrivateKey = VOTRE_CLE_PRIVEE
Address = 10.0.0.2/24
DNS = 1.1.1.1

[Peer]
PublicKey = CLE_PUBLIQUE_SERVEUR
Endpoint = adresse-serveur:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25

La plupart des fournisseurs VPN proposent ce fichier directement depuis leur interface. Téléchargez-le et placez-le dans /etc/wireguard/.

Activer le tunnel

# Activer manuellement
sudo wg-quick up wg0

# Désactiver
sudo wg-quick down wg0

# Voir l'état du tunnel
sudo wg show

# Démarrage automatique
sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0

Configurer un VPN via Network Manager (interface graphique)

Si vous utilisez GNOME, KDE ou une autre interface graphique avec Network Manager, vous pouvez configurer le VPN sans toucher au terminal.

OpenVPN via Network Manager

  1. Installez le plugin :
sudo apt install network-manager-openvpn-gnome
# ou
sudo apt install network-manager-openvpn
  1. Allez dans Paramètres > Réseau > VPN > +
  2. Choisissez Importer depuis un fichier
  3. Sélectionnez votre fichier .ovpn

Network Manager importera automatiquement toute la configuration, y compris les certificats.

WireGuard via Network Manager

Depuis NetworkManager 1.16, WireGuard est supporté nativement. Avec GNOME :

  1. Allez dans Paramètres > Réseau > VPN > +
  2. Choisissez WireGuard
  3. Remplissez les champs depuis les informations de votre profil WireGuard

Alternativement, via la ligne de commande avec nmcli :

nmcli connection import type wireguard file /etc/wireguard/wg0.conf

Vérifier l’absence de fuites DNS

Même avec un VPN actif, des fuites DNS peuvent trahir votre localisation. Pour les éviter sous Linux :

Avec systemd-resolved

Assurez-vous que vos requêtes DNS passent par le tunnel VPN. Dans votre configuration WireGuard, spécifiez un serveur DNS :

[Interface]
DNS = 10.0.0.1  # DNS du fournisseur VPN

Vérifiez ensuite :

resolvectl status

Test de fuite DNS

# Via ligne de commande
dig +short myip.opendns.com @resolver1.opendns.com

# Comparez avec votre vraie IP
curl ifconfig.me

Si les deux retournent la même IP (celle du serveur VPN), tout est bon.

Un kill switch manuel sous Linux

Un kill switch coupe Internet si le VPN tombe. Voici une implémentation simple avec iptables pour WireGuard :

# Autoriser seulement le trafic via l'interface wg0
# (à adapter selon votre interface réseau principale)
iptables -I OUTPUT ! -o wg0 -m mark ! --mark $(wg show wg0 fwmark) -m addrtype ! --dst-type LOCAL -j REJECT

Pour une solution plus complète et persistante, consultez les guides iptables spécifiques à votre distribution. Certains fournisseurs comme ProtonVPN intègrent ce kill switch dans leur application Linux officielle.

Linux vous donne le contrôle total. Prenez le temps de comprendre ce que vous configurez, et vous aurez une solution VPN robuste et transparente.

Vous cherchez le meilleur rapport qualité-prix ?

Consultez nos comparatifs détaillés pour faire le bon choix.

Julien Moreau

Écrit par

Julien Moreau

Ingénieur en cybersécurité avec 12 ans d'expérience dans la protection des données personnelles. Ancien consultant en sécurité réseau, Julien teste et analyse les VPN avec une approche technique rigoureuse.