VPN Wireguard · 16 min read · Oct 05, 2025

Comment installer Wireguard VPN sur Debian 11

Wireguard est un protocole VPN gratuit et open-source, alternatif à IPSec, IKEv2 et OpenVPN. Wireguard est conçu pour les systèmes d’exploitation Linux et Unix. Il fonctionne dans l’espace noyau Linux, ce qui rend Wireguard plus rapide et plus fiable. Wireguard est utilisé pour créer des connexions de tunnel sécurisées entre deux ordinateurs ou plus.

Wireguard vise à remplacer les protocoles VPN tels qu’IPSec, IKEv2 et OpenVPN. Wireguard est plus léger, plus rapide, facile à configurer et plus efficace. Et en même temps, Wireguard n’a pas sacrifié l’aspect sécurité du protocole VPN. Wireguard prend en charge une cryptographie moderne à la pointe de la technologie comme le cadre de protocole Noise, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF et des constructions sécurisées et fiables.

Comparé à d’autres protocoles VPN tels qu’OpenVPN, IPSec et IKEv2, Wireguard est un nouveau protocole VPN. Wireguard a été publié en 2015 par Jason A. Donenfeld comme un protocole VPN alternatif, il a été intégré au noyau Linux v5.6 par Linus Torvalds en 2020, et la même année, il a également été porté sur FreeBSD 13.

Dans ce tutoriel, vous allez installer et configurer un serveur VPN via Wireguard sur des serveurs Debian 11. Vous allez configurer un serveur VPN Wireguard avec un serveur Debian 11, puis configurer une machine cliente pour se connecter au serveur VPN Wireguard.

En ce qui concerne la machine cliente, vous pouvez utiliser n’importe quelle distribution Linux, mais cet exemple utilise une machine Debian.

Prérequis

Pour commencer ce tutoriel, vous devez avoir les exigences suivantes :

  • Un serveur Debian 11 - Cet exemple utilise un serveur Debian avec le nom d’hôte ‘ wireguard-server ‘ et une adresse IP statique externe ‘ SERVER-IP ‘.
  • Une machine Linux qui sera utilisée comme client - Vous pouvez utiliser n’importe quelle distribution Linux, mais cet exemple utilise une machine Debian avec le nom d’hôte ‘client1’.
  • Un utilisateur non-root avec des privilèges sudo/root d’administrateur.

Si toutes ces exigences sont prêtes, commençons.

Installation de Wireguard

Avant d’installer Wireguard, exécutez la commande apt ci-dessous pour mettre à jour et rafraîchir votre index de paquets Debian.

sudo apt update

Une fois les dépôts Debian mis à jour, exécutez la commande apt ci-dessous pour installer le paquet Wireguard sur votre serveur Debian. Cela installera également le paquet wireguard-tools qui sera utilisé pour gérer votre installation de serveur Wireguard.

sudo apt install wireguard

Lorsque vous êtes invité à confirmer, saisissez y pour confirmer et appuyez sur ENTRÉE pour continuer. Maintenant, l’installation devrait commencer.

installer wireguard

Avec Wireguard installé sur votre serveur, vous êtes prêt à générer une paire de clés publique et privée pour le serveur et le client Wireguard.

Génération de la paire de clés publique/privée

Dans cette étape, vous allez générer une paire de clés publique et privée pour le serveur Wireguard et la machine cliente. Cela peut être fait via la ligne de commande ‘wg’ fournie par le paquet wireguard-tools.

La paire de clés pour le serveur sera utilisée par le serveur Wireguard, et la machine cliente utilisera la paire de clés pour le client. Si vous avez plusieurs machines clientes, vous pouvez générer plusieurs paires de clés pour vos clients.

Génération de la paire de clés pour le serveur Wireguard

Exécutez la commande ‘ wg genkey ‘ ci-dessous pour générer la clé privée pour le serveur Wireguard. Ensuite, changez la permission de la clé privée à ‘ 0400 ‘, ce qui désactivera l’accès en lecture et en écriture pour le groupe et les autres.

Dans cet exemple, vous allez générer la clé privée ‘/etc/wireguard/server.key’.

wg genkey | sudo tee /etc/wireguard/server.key  
sudo chmod 0400 /etc/wireguard/server.key

Vous recevrez ensuite une sortie de clé aléatoire en base64 sur votre écran de terminal.

Ensuite, exécutez la commande ci-dessous ‘ wg pubkey ‘ pour générer la nouvelle clé publique du serveur dans ‘ /etc/wireguard/server.pub ‘. La clé publique du serveur est dérivée de la clé privée du serveur ‘ /etc/wireguard/server.key ‘.

sudo cat /etc/wireguard/server.key | wg pubkey | sudo tee /etc/wireguard/server.pub

Vous recevrez ensuite une sortie d’une clé publique aléatoire en base64 sur votre terminal.

générer la paire de clés du serveur

Maintenant que vous avez généré des paires de clés publique et privée pour le serveur Wireguard. La clé privée est située à ‘/etc/wireguard/server.key’, et la clé publique est située à ‘/etc/wireguard/server.pub ‘.

Exécutez la commande ci-dessous pour afficher et vérifier la paire de clés générée pour le serveur Wireguard.

cat /etc/wireguard/server.key  
cat /etc/wireguard/server.pub

Génération de la paire de clés pour le client

Pour la paire de clés du client, vous pouvez la générer sur n’importe quelle machine (serveur Wireguard ou client) avec les wireguard-tools installés. Dans cette étape, vous allez générer une paire de clés cliente depuis le serveur Wireguard.

Le processus de génération d’une paire de clés pour le serveur et le client est le même, en utilisant la commande ‘ wg genkey ‘ pour générer la clé privée et en utilisant ‘ wg pubkey ‘ pour générer la clé publique, qui est dérivée de la clé privée.

Maintenant, exécutez la commande ci-dessous pour créer un nouveau répertoire ‘ /etc/wireguard/clients ‘. Ce répertoire sera utilisé pour stocker la paire de clés du client.

mkdir -p /etc/wireguard/clients

Exécutez la commande ‘wg genkey’ ci-dessous pour générer la clé privée du client dans ‘ /etc/wireguard/clients/client1.key ‘. Ensuite, générez la clé publique du client via la commande ‘ wg pubkey ‘ dans ‘/etc/wireguard/clients/client1.pub ‘.

wg genkey | tee /etc/wireguard/clients/client1.key  
cat /etc/wireguard/clients/client1.key | wg pubkey | tee /etc/wireguard/clients/client1.pub

générer la paire de clés du client

Maintenant que la paire de clés du client est générée, la clé publique est située à ‘/etc/wireguard/clients/client1.pub’ et la clé privée est ‘ /etc/wireguard/clients/client1.key ‘. Exécutez la commande ci-dessous pour afficher et vérifier la paire de clés générée.

cat /etc/wireguard/clients/client1.key  
cat /etc/wireguard/clients/client1.pub

vérifier la paire de clés du client

Configurer le serveur Wireguard

Vous allez créer un nouveau fichier de configuration pour le serveur Wireguard dans cette étape. Mais avant cela, vous devez décider quels sous-réseaux vous allez utiliser pour le serveur VPN Wireguard. Vous pouvez également décider d’activer ou de désactiver IPv6 pour votre serveur VPN Wireguard.

Dans cet exemple, le serveur VPN Wireguard aura des adresses IP avec le sous-réseau ‘10.8.0.2/24’ et désactiver l’IPv6 pour le VPN Wireguard.

Créez un nouveau fichier de configuration Wireguard ‘/etc/wireguard/wg0.conf ‘ en utilisant la commande de l’éditeur nano ci-dessous.

sudo nano /etc/wireguard/wg0.conf

Tout d’abord, ajoutez les lignes suivantes au fichier pour définir les détails du serveur Wireguard. Et assurez-vous de changer la ‘ PrivateKey ‘ avec la clé privée du serveur Wireguard ‘ server.key ‘. Avec cela, l’interface du serveur Wireguard fonctionnera sur l’adresse IP ‘ 10.8.0.1 ‘, ouvrira le port UDP 51820 qui est disponible pour les clients pour se connecter, et le paramètre SaveConfig garantira que toutes les modifications seront enregistrées dans le fichier de configuration, même lorsque l’interface Wireguard est désactivée.

[Interface]  
# Clé privée du serveur Wireguard - server.key  
PrivateKey = SIybp8GHtKIPtHPBOQFP1kbQg4UCLCMyNIfCLBQR2EA=  
  
# L'interface Wireguard fonctionnera à 10.8.0.1  
Address = 10.8.0.1/24  
  
# Les clients se connecteront au port UDP 51820  
ListenPort = 51820  
  
# Assurez-vous que toutes les modifications seront enregistrées dans le fichier de configuration Wireguard  
SaveConfig = true

Ensuite, ajoutez les lignes ci-dessous pour définir la connexion du pair client. Changez le paramètre ‘ PublicKey ‘ avec la clé publique du client ‘ client1.pub ‘. Et le paramètre ‘ AllowedIPs ‘ spécifiera quels clients Wireguard sont autorisés à accéder à ce pair. Dans cet exemple, seuls les clients avec l’IP ‘ 10.8.0.2 ‘ seront autorisés à accéder à cette connexion pair. Mais vous pouvez également autoriser la plage de sous-réseaux tels que ‘ 10.8.0.0/24 ‘.

[Peer]  
# Clé publique du client Wireguard - client1.pub  
PublicKey = ENokvIsS2euXrmM4OVFHPmTdCZ4wfEIR/UHuGCW64lw=  
  
# adresses IP VPN des clients que vous autorisez à se connecter  
# possible de spécifier le sous-réseau ⇒ [10.8.0.0/24]  
AllowedIPs = 10.8.0.2/24

Enregistrez le fichier et quittez l’éditeur lorsque vous avez terminé.

Avec le fichier de configuration du serveur Wireguard créé et la connexion du pair client ajoutée, vous allez ensuite configurer le transfert de port sur le serveur Wireguard et configurer le pare-feu pour établir le routage du trafic.

Activer le transfert de port via /etc/sysctl.conf

Dans cette étape, vous allez activer le transfert de port sur le serveur Wireguard via le fichier /etc/sysctl.conf’. Vous pouvez activer le transfert de port pour IPv4 et IPv6 sur le serveur Wireguard.

Pour commencer, ouvrez le fichier de configuration ‘/etc/sysctl.conf ‘ en utilisant la commande de l’éditeur nano ci-dessous.

sudo nano /etc/sysctl.conf

Ajoutez les lignes suivantes au fichier. Cela activera le transfert de port sur votre serveur Wireguard. Vous pouvez utiliser les deux pour IPv4 et IPv6, ou vous pouvez utiliser IPv4 si vous avez désactivé IPv6 sur votre serveur Wireguard.

# Transfert de port pour IPv4  
net.ipv4.ip_forward=1  
  
# Transfert de port pour IPv6  
net.ipv6.conf.all.forwarding=1

Enregistrez le fichier et quittez l’éditeur lorsque vous avez terminé.

Ensuite, exécutez l’utilitaire de commande sysctl ci-dessous pour appliquer les modifications.

sudo sysctl -p

Vous recevrez une sortie comme ceci - Le transfert de port devrait être activé immédiatement.

activer le transfert de port

Avec le transfert de port activé sur le serveur Wireguard, vous allez ensuite configurer le pare-feu qui dirigera le trafic des clients Wireguard vers l’interface réseau spécifique.

Configurer le pare-feu pour le serveur Wireguard

Dans cette étape, vous allez configurer le pare-feu qui sera utilisé pour le serveur Wireguard afin de diriger les connexions des clients vers l’interface réseau appropriée qui sera utilisée pour accéder à Internet. Cela permettra également aux clients Wireguard d’accéder à Internet via l’interface spécifique sur le serveur Wireguard.

Tout d’abord, exécutez la commande apt ci-dessous pour installer le paquet de pare-feu ufw sur votre serveur Debian.

sudo apt install ufw

Saisissez y lorsque vous y êtes invité et appuyez sur ENTRÉE pour continuer.

installer ufw

Après l’installation de ufw, exécutez la commande ci-dessous pour ouvrir le service SSH et activer le pare-feu ufw.

sudo ufw allow OpenSSH  
sudo ufw enable

Lorsque vous êtes invité à confirmer l’activation du pare-feu ufw, saisissez y et appuyez sur ENTRÉE. Le pare-feu ufw devrait maintenant être en cours d’exécution sur votre système et il est également activé.

démarrer activer ufw

Vérifiez maintenant l’état du pare-feu ufw via la commande ci-dessous. Vous devriez recevoir une sortie telle que ‘ Status: active ‘, ce qui signifie que le statut du pare-feu ufw est en cours d’exécution.

sudo ufw status

Avec le pare-feu ufw en cours d’exécution, vous allez ensuite le configurer pour diriger les connexions des clients Wireguard vers l’interface réseau spécifique.

Exécutez maintenant la commande ci-dessous pour vérifier l’interface de la table de routage par défaut sur le serveur Wireguard. La plupart du temps, cela détectera une interface qui est utilisée pour accéder à Internet ou où l’adresse IP publique est disponible au-dessus.

ip route list default

Vous recevrez une sortie comme ceci - Cet exemple montre que l’interface eth0 est la table de routage par défaut pour le serveur Wireguard. Et c’est l’interface qui est utilisée pour accéder à Internet. Vous pouvez avoir un nom d’interface différent.

Ensuite, ouvrez le fichier de configuration du serveur Wireguard ‘ /etc/wireguard/wg0.conf ‘ en utilisant la commande de l’éditeur nano ci-dessous.

sudo nano /etc/wireguard/wg0.conf

Ajoutez les lignes suivantes à la section ‘ [Interface] ‘.

[Interface]  
...  
....  
PostUp = ufw route allow in on wg0 out on eth0  
PostUp = iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE  
PostUp = ip6tables -t nat -I POSTROUTING -o eth0 -j MASQUERADE  
PreDown = ufw route delete allow in on wg0 out on eth0  
PreDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE  
PreDown = ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

Enregistrez le fichier et quittez l’éditeur lorsque vous avez terminé.

  • Le paramètre ‘ PostUp ‘ sera exécuté chaque fois que le serveur Wireguard démarre le tunnel VPN.
  • Le paramètre ‘ PreDown ‘ sera exécuté chaque fois que le serveur Wireguard arrête le tunnel VPN.
  • La commande ‘ ufw route allow in on wg0 out on eth0 ‘ permet le transfert du trafic entrant sur l’interface wg0 vers l’interface Internet eth0.
  • La commande ‘iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE’ activera le masquage et réécrit le trafic IPv4 de l’interface wg0 pour le faire apparaître comme une connexion directe depuis le serveur Wireguard.
  • La commande ‘ ip6tables -t nat -I POSTROUTING -o eth0 -j MASQUERADE ‘ activera le masquage et réécrit le trafic IPv6 de l’interface wg0 pour le faire apparaître comme une connexion directe depuis le serveur Wireguard.

Exécutez maintenant la commande ufw ci-dessous pour ouvrir le port UDP 51820 où les clients se connecteront.

sudo ufw allow 51820/udp

Enfin, exécutez la commande ci-dessous pour recharger le pare-feu ufw et appliquer les modifications. Ensuite, vérifiez la liste des règles ufw via la commande ci-dessous.

sudo ufw reload  
sudo ufw status

Vous recevrez une sortie comme cette capture d’écran - Le port UDP 51820 que le serveur Wireguard utilisera pour les connexions des clients a été ajouté au pare-feu ufw.

configurer le pare-feu ufw

Maintenant, vous avez activé le transfert de port et configuré le pare-feu sur le serveur Wireguard. Vous êtes maintenant prêt à démarrer le serveur Wireguard.

Démarrer le serveur Wireguard

Dans cette étape, vous allez démarrer et activer le serveur Wireguard. Vous allez également vérifier le serveur Wireguard et vérifier l’interface wg0 qui sera créée par le service Wireguard.

Exécutez l’utilitaire de commande systemctl ci-dessous pour démarrer et activer le service Wireguard. Le service ‘ [email protected] ‘ créera et activera l’interface Wireguard ‘ wg0 ‘ sur votre serveur Wireguard.

sudo systemctl start [email protected]  
sudo systemctl enable [email protected]

Vérifiez maintenant le service Wireguard via la commande ci-dessous.

sudo systemctl status [email protected]

Vous recevrez une sortie similaire à la capture d’écran suivante - Le service Wireguard ‘ [email protected] ‘ est en cours d’exécution et il est activé. Cela signifie également que l’interface ‘ wg0 ‘ est créée et en cours d’exécution.

démarrer activer vérifier le serveur wireguard

Exécutez la commande ci-dessous pour vérifier l’interface ‘wg0’ sur votre serveur Wireguard.

ip a show wg0

Vous devriez recevoir une sortie comme ceci - L’interface Wireguard wg0 obtient une adresse IP ‘ 10.8.0.1 ‘, comme décrit dans le fichier de configuration Wireguard ‘ /etc/wireguard/wg0.conf ‘.

vérifier l'interface wg0

De plus, vous pouvez également démarrer et arrêter Wireguard via la commande ‘ wg-quick k’ comme ci-dessous. La commande ‘ wg-quick up ‘ démarrera le serveur Wireguard, et la commande ‘wg-quick down ‘ arrêtera le serveur Wireguard.

sudo wg-quick up /etc/wireguard/wg0.conf  
sudo wg-quick down /etc/wireguard/wg0.conf

Avec le serveur Wireguard en cours d’exécution, vous allez ensuite configurer la machine cliente et la connecter au serveur Wireguard.

Configurer la machine cliente et se connecter au serveur Wireguard

Dans cette étape, vous allez configurer la machine cliente en installant les wireguard-tools, en créant une nouvelle configuration Wireguard pour le client, en vous connectant au serveur VPN Wireguard, et enfin en vérifiant la connexion et en vous assurant que la machine cliente peut atteindre Internet et le réseau VPN local.

Installez le paquet ‘ wireguard-tools ‘ sur la machine cliente. Cela utilise Debian comme client, donc la commande APT sera utilisée.

sudo apt install wireguard-tools

L’installation devrait commencer automatiquement.

installer le client wireguard

Après l’installation des wireguard-tools, créez un nouveau fichier de configuration ‘ /etc/wireguard/wg-client1.conf ‘ en utilisant la commande de l’éditeur nano ci-dessous.

sudo nano /etc/wireguard/wg-client1.conf

Ajoutez les lignes suivantes au fichier.

[Interface]  
# Définir l'adresse IP pour le client - doit correspondre à wg0 sur le serveur Wireguard  
Address = 10.8.0.2/24  
  
# serveur DNS spécifique  
DNS = 1.1.1.1  
  
# Clé privée pour le client - client1.key  
PrivateKey = KPI59QH0jwc9wkUsW5Byci9ojXhz1322QXK52fQCE3E=  
  
[Peer]  
# Clé publique du serveur Wireguard - server.pub  
PublicKey = Qt6oRLtlfAR490lTNb2K8TlbpwADV1j8NX7D5HY38EM=  
  
# Autoriser tout le trafic à être routé via le VPN Wireguard  
AllowedIPs = 0.0.0.0/0  
  
# Adresse IP publique du serveur Wireguard  
Endpoint = SERVER-IP:51820  
  
# Envoi de Keepalive toutes les 25 secondes  
PersistentKeepalive = 25

Enregistrez et fermez le fichier lorsque vous avez terminé.

Dans la section ‘ [Interface] ‘, vous devez définir ce qui suit :

  • L’adresse IP du client doit correspondre au sous-réseau du serveur Wireguard. Le client Wireguard obtiendra l’adresse IP ‘10.8.0.2’ dans cet exemple.
  • Spécifiez le serveur DNS pour le client.
  • Changez le paramètre ‘ PrivateKey ‘ avec la clé privée du client que vous avez générée, ‘ client1.key ‘.

Dans la section ‘ [Peer]’ , vous devez ajouter ce qui suit :

  • La clé publique du serveur Wireguard ‘ server.pub ‘ au paramètre PublicKey.
  • Spécifiez ‘ AllowedIPs ‘ pour restreindre l’accès sur le pair VPN, vous pouvez spécifier des sous-réseaux de réseaux ou simplement mettre 0.0.0.0/0 pour acheminer tout le trafic via le VPN.
  • Spécifiez le paramètre Endpoint avec l’adresse IP publique du serveur Wireguard ou utilisez un nom de domaine.

Après la création de la configuration du client, exécutez la commande ci-dessous pour démarrer Wireguard sur la machine cliente.

wg-quick up wg-client1

Vous devriez recevoir une sortie similaire à cette capture d’écran - La nouvelle interface Wireguard ‘ wg-client1 ‘ sera créée et la machine cliente devrait être connectée au serveur Wireguard qui fonctionne sur ‘ SERVER-IP:51820 ‘.

configurer le client wireguard

Exécutez la commande ci-dessous pour vérifier l’interface Wireguard ‘ wg-client1 ‘.

ip a show wg-client1

Vous devriez recevoir une sortie comme ceci - L’interface wg-client1 est active avec une adresse IP ‘ 10.8.0.2 ‘, qui fait partie du sous-réseau du serveur Wireguard ‘ 10.8.0.0/24’.

vérifier l'interface cliente wireguard

Vous pouvez également vérifier la connexion Wireguard via la commande ‘ wg show ‘.

Exécutez la commande ‘ wg show’ sur la machine cliente et vous devriez recevoir une sortie comme ceci.

wg show

Si vous êtes connecté au bon serveur Wireguard, vous devriez voir l’adresse IP du serveur Wireguard dans la section ‘ endpoint ‘ et voir la clé publique du serveur Wireguard ‘ server.pub ‘.

wg show client

Maintenant, passez au serveur Wireguard et exécutez la commande ‘ wg show ‘.

wg show

Vous devriez recevoir une sortie similaire à ceci - Dans la section endpoint, vous verrez l’adresse IP publique du client, et dans la section pair, vous verrez la clé publique du client ‘client1.pub ‘.

wg show serveur wireguard

Enfin, exécutez la commande ci-dessous pour vous assurer que la machine cliente peut accéder à Internet ou accéder au réseau interne du sous-réseau du VPN Wireguard.

ping -c5 10.8.0.1  
ping -c5 1.1.1.1  
ping -c5 duckduckgo.com

Voici la sortie que vous devriez recevoir :

La machine cliente peut se connecter au serveur Wireguard avec une adresse IP ‘10.8.0.1 ‘.

ping vers le serveur wireguard

La machine cliente peut accéder à Internet. Tout le trafic est acheminé via l’adresse IP publique du serveur Wireguard.

ping vers internet

Maintenant, si vous souhaitez arrêter le Wireguard sur la machine cliente, vous pouvez exécuter la commande ‘ wg-quick down ‘ ci-dessous.

wg-quick down wg-client1

Vous recevrez une sortie comme ceci. De plus, l’interface wg-client1 disparaîtra de la machine cliente.

ping avec domaine

Maintenant, vous avez configuré le VPN Wireguard sur la machine cliente. Vous avez également vérifié la connexion entre la machine cliente et le serveur Wireguard.

Conclusion

Dans ce tutoriel, vous avez installé et configuré Wireguard VPN sur un serveur Debian 11. Vous avez également configuré une machine Debian et vous êtes connecté avec succès au serveur VPN Wireguard.

En détail, vous avez installé le paquet VPN Wireguard, généré une paire de clés publique et privée pour le serveur et le client, configuré le pare-feu UFW pour acheminer le trafic VPN vers l’interface réseau spécifique, et activé le transfert de port via le fichier /etc/sysctl.conf.

Avec cela en tête, vous pouvez maintenant ajouter plus de clients à votre serveur VPN Wireguard en générant une autre paire de clés pour le client, en définissant la connexion pair sur le serveur Wireguard, puis en créant un nouveau fichier de configuration Wireguard que la machine cliente utilisera. Pour en savoir plus sur Wireguard, visitez la documentation officielle de Wireguard.

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.