Guide de configuration de WireGuard sur un serveur SoftEther VPN

SoftEther est une solution VPN sophistiquée et multi-protocoles qui prend en charge de nombreux protocoles VPN, dont WireGuard, OpenVPN, L2TP/IPsec, SSTP et bien d’autres. Dans ce guide, nous allons nous concentrer sur la configuration du protocole WireGuard sur un serveur SoftEther VPN à l’aide de l’outil vpncmd, actuellement la seule méthode prise en charge pour configurer WireGuard sur SoftEther.

Remarque : Ce guide s’adresse aux utilisateurs avancés qui maîtrisent les interfaces en ligne de commande et la configuration manuelle de serveurs.

Prérequis

Avant de commencer, assurez-vous :

  • De disposer d’un serveur SoftEther VPN opérationnel et à jour, installé sur une machine Linux. Dans ce guide, nous utilisons la SoftEther Version 5.02 Build 5185 sur Ubuntu.
  • Que votre serveur fonctionne en mode standalone (c’est-à-dire qu’il n’est ni contrôleur de cluster ni membre d’un cluster), car les connexions WireGuard ne peuvent être établies que sur un serveur autonome.
  • Que vous ayez un accès administrateur au serveur SoftEther et que l’outil vpncmd soit installé localement ou à distance.
  • Que vous disposiez d’un hub virtuel correctement configuré qui sera utilisé pour la connexion des clients WireGuard.

Étape 1 : Configurer le port UDP pour WireGuard

Vérifiez que vous disposez des privilèges administrateur sur le serveur VPN avant de configurer la connexion WireGuard. Lancez l’outil vpncmd, sélectionnez l’option #1 et connectez-vous en tant qu’Administrateur :

./vpncmd

Pour vérifier si votre serveur SoftEther écoute sur un port UDP, exécutez la commande suivante :

PortsUDPGet

Si aucun port UDP n’est actif, ajoutez-en un grâce à la commande ci-dessous. Vous pouvez choisir n’importe quel numéro de port, pourvu qu’il ne soit pas déjà occupé sur votre serveur Linux :

PortsUDPSet 51820

Remarque : Vous pouvez indiquer plusieurs ports en les séparant par des virgules. Assurez-vous que ces ports ne sont pas bloqués par le pare-feu ou iptables de votre serveur.

Étape 2 : Définir la passerelle et le sous-réseau pour WireGuard

WireGuard ne prend pas en charge DHCP (qui repose sur des diffusions réseau, inopérantes dans un tunnel VPN point à point). Chaque pair doit donc recevoir une adresse IP fixe (statique) afin d’assurer une bonne gestion du chiffrement et du routage. Passez sur votre hub virtuel et configurez l’adresse de passerelle et le masque de sous-réseau que les clients WireGuard utiliseront avec leur IP statique :

Hub myhub
SetStaticNetwork /GATEWAY=192.168.1.1 /SUBNET=255.255.255.0

Remplacez 192.168.1.1 et 255.255.255.0 par l’adresse IP de la passerelle et le masque de sous-réseau adaptés. Utilisez les mêmes valeurs que celles fournies aux clients connectés par le serveur DHCP du hub. Vérifiez que la configuration statique du hub est correcte en lançant :

OptionsGet myhub

Étape 3 : Activer le protocole WireGuard

Bien que WireGuard soit généralement activé par défaut, vérifiez son activation en utilisant la commande suivante :

ProtoOptionsSet wireguard /NAME=enabled /VALUE=true

Étape 4 : Générer et attribuer les clés utilisateur

WireGuard s’appuie sur des paires de clés X25519 pour la communication sécurisée. Vous pouvez générer ces clés avec l’outil vpncmd ou via un outil externe. Dans l’exemple ci-dessous, nous utilisons vpncmd pour les générer.

Quittez vpncmd puis relancez-le, en sélectionnant l’option #3 pour passer en mode Tools. Exécutez ensuite la commande suivante pour générer une paire de clés :

GenX25519

L’outil génère alors une Private Key et une Public Key. Copiez et conservez-les précieusement. Si vous avez plusieurs hubs ou utilisateurs requérant un accès WireGuard, générez autant de paires de clés que nécessaire.

Après avoir généré les clés, reconnectez-vous à vpncmd en administrateur et assignez la Public X25519 key de chaque utilisateur au hub correspondant :

WgkAdd "WFPFO/s8UXD6HNH+2P2UjfbkUP8BFITa7TXKculvDUk=" /HUB=myhub /USER=myuser

Remplacez WFPFO/s…ulvDUk=, myhub et myuser par votre clé publique, le nom de hub et le nom d’utilisateur. Assurez-vous que cet utilisateur existe sur le hub spécifié.

Vous pouvez vérifier que les clés WireGuard ont bien été ajoutées via :

WgkEnum

Étape 5 : Créer un fichier de configuration client WireGuard

Ci-dessous figure un exemple de fichier de configuration. Copiez-collez son contenu dans un éditeur de texte et remplacez chaque valeur par la vôtre, comme indiqué par la suite :

[Interface]
PrivateKey = WFPFO/s8UXD6HNH+2P2UjfbkUP8BFITa7TXKculvDUk=
Address = 192.168.1.15/32
DNS = 9.9.9.9,149.112.112.112

[Peer]
PublicKey = pbnWflgIl4CUqYkgZKrtQg/jMAyytyS/AufEt4OAq3Y=
PresharedKey = s/8eDb4r6BUtAMZEY8a+VC4Qs4HYzUJVqD8YzSNFzuk=
AllowedIPs = 0.0.0.0/0
Endpoint = 150.151.152.153:51820
PersistentKeepalive = 21

[Interface]

  • PrivateKey : Indiquez la private key X25519 générée à l’Étape 4.
  • Address : Assignez une adresse IP statique sur votre hub pour cet utilisateur. Veillez à ce qu’elle se trouve dans le réseau et le sous-réseau statiques définis à l’Étape 2. WireGuard exige que l’adresse se termine par /32 pour désigner une seule machine.
    Remarque : Si votre hub virtuel est géré par un serveur DHCP, mieux vaut réserver un bloc IP statique dédié aux connexions WireGuard pour éviter tout conflit d’adresses.
  • DNS : Spécifiez les serveurs DNS utilisés par votre réseau. Dans cet exemple, ce sont les serveurs Quad9.

[Peer]

  • PublicKey : Indiquez la public key de votre serveur. Commencez par récupérer la private key du serveur via :
    ProtoOptionsGet wireguard
    Copiez la private key puis exécutez, en mode Tools de vpncmd :
    GetPublicX25519 YourServerPrivateKey
    Remplacez YourServerPrivateKey par la private key réelle de votre serveur.
  • PresharedKey : Récupérez la preshared key en exécutant :
    ProtoOptionsGet wireguard
  • AllowedIPs : En définissant AllowedIPs = 0.0.0.0/0, tout le trafic IPv4 est routé via le tunnel VPN, faisant du pair VPN la passerelle par défaut.
  • Endpoint : Remplacez 150.151.152.153:51820 par l’adresse IP de votre serveur et le port UDP configuré (Étape 1).
  • PersistentKeepalive : Une valeur de 21 signifie que le client enverra un keepalive toutes les 21 secondes, afin de maintenir la connexion active, surtout si le pair se trouve derrière un NAT ou un pare-feu.

Après avoir configuré le port UDP, la passerelle, le sous-réseau, activé WireGuard, généré et attribué les clés, ainsi que créé un fichier de configuration client, vous devriez être en mesure d’établir une connexion sécurisée à votre hub virtuel SoftEther via WireGuard. Une fois connecté, vous pouvez vérifier que votre trafic passe bien par le tunnel WireGuard vers votre serveur SoftEther.

FAQ

SoftEther VPN est une solution VPN gratuite et open source compatible avec plusieurs protocoles (SSL-VPN, L2TP/IPsec, OpenVPN, SSTP, WireGuard). Grâce à sa conception efficace et son chiffrement robuste, il offre des performances élevées et un accès à distance fiable pour les particuliers et les entreprises.
WireGuard est un protocole VPN moderne, performant et offrant un chiffrement puissant. SoftEther permet de configurer des connexions WireGuard via l’outil vpncmd, mais uniquement sur des serveurs autonomes (standalone).
Exécutez vpncmd en mode administrateur, vérifiez les ports UDP avec ‘PortsUDPGet’, puis réservez un port (par ex. ‘PortsUDPSet 51820’) pour autoriser les connexions WireGuard.
Parce que WireGuard ne gère pas DHCP (qui repose sur des diffusions réseau), chaque client doit recevoir une adresse IP fixe. L’utilisation de /32 garantit un routage précis et sécurisé.
Passez en mode Tools de vpncmd et exécutez ‘GenX25519’ pour générer des paires de clés X25519, puis assignez la public key au hub avec ‘WgkAdd’.
Récupérez d’abord la private key du serveur via ‘ProtoOptionsGet wireguard’, puis générez la public key correspondante avec ‘GetPublicX25519’ en mode Tools de vpncmd.
Vérifiez que le port UDP est correctement configuré, que les adresses IP statiques correspondent aux paramètres de votre hub SoftEther, que les clés sont générées/attribuées correctement et que le serveur est en mode standalone.
Évitez une mauvaise configuration du port UDP, l’oubli de la configuration IP statique nécessaire à WireGuard, l’utilisation de paires de clés incorrectes et le fonctionnement du serveur en mode cluster au lieu du mode autonome.