Comment Configurer WireGuard sur Ubuntu 22.04

Introduction

WireGuard est un réseau privé virtuel (VPN) léger qui prend en charge les connexions IPv4 et IPv6. Un VPN vous permet de traverser des réseaux non sécurisés comme si vous étiez sur un réseau privé. Cela vous donne la liberté d’accéder à Internet de manière sûre et sécurisée depuis votre smartphone ou votre ordinateur portable lorsque vous êtes connecté à un réseau non sécurisé, comme le WiFi dans un hôtel ou un café.

Le cryptage de WireGuard repose sur des clés publiques et privées pour que les pairs établissent un tunnel chiffré entre eux. Chaque version de WireGuard utilise une suite cryptographique spécifique pour garantir la simplicité, la sécurité et la compatibilité avec les pairs.

En comparaison, d’autres logiciels VPN tels que OpenVPN et IPSec utilisent la sécurité des couches de transport (TLS) et des certificats pour authentifier et établir des tunnels chiffrés entre les systèmes. Différentes versions de TLS incluent la prise en charge de centaines de suites cryptographiques et d’algorithmes différents, et bien que cela permette une grande flexibilité pour prendre en charge différents clients, cela rend également la configuration d’un VPN utilisant TLS plus longue, complexe et sujette aux erreurs.

Dans ce tutoriel, vous configurerez WireGuard sur un serveur Ubuntu 22.04, puis configurerez une autre machine pour se connecter à celui-ci en tant que pair en utilisant à la fois des connexions IPv4 et IPv6 (communément appelée connexion dual stack). Vous apprendrez également à router le trafic Internet du pair à travers le serveur WireGuard dans une configuration de passerelle, en plus d’utiliser le VPN pour un tunnel pair-à-pair chiffré.

Pour les besoins de ce tutoriel, nous configurerons un autre système Ubuntu 22.04 en tant que pair (également appelé client) du serveur WireGuard. Les tutoriels ultérieurs de cette série expliqueront comment installer et exécuter WireGuard sur des systèmes et appareils Windows, macOS, Android et iOS.

Remarque : Si vous envisagez de configurer WireGuard sur un Droplet DigitalOcean, sachez que nous, comme de nombreux fournisseurs d’hébergement, facturons les dépassements de bande passante. Pour cette raison, veuillez être attentif à la quantité de trafic que votre serveur gère. Consultez cette page pour plus d’informations.

Prérequis

Pour suivre ce tutoriel, vous aurez besoin de :

  • Un serveur Ubuntu 22.04 avec un utilisateur sudo non root et un pare-feu activé. Pour configurer cela, vous pouvez suivre notre tutoriel Configuration initiale du serveur avec Ubuntu 22.04. Nous nous référerons à cela comme le Serveur WireGuard tout au long de ce guide.
  • Vous aurez besoin d’une machine cliente que vous utiliserez pour vous connecter à votre serveur WireGuard. Dans ce tutoriel, nous désignerons cette machine sous le nom de Pair WireGuard. Aux fins de ce tutoriel, il est recommandé d’utiliser votre machine locale comme Pair WireGuard, mais vous pouvez utiliser des serveurs distants ou des téléphones mobiles comme clients si vous préférez. Si vous utilisez un système distant, assurez-vous de suivre toutes les sections facultatives plus tard dans ce tutoriel ou vous risquez de vous verrouiller hors du système.
  • Pour utiliser WireGuard avec IPv6, vous devrez également vous assurer que votre serveur est configuré pour prendre en charge ce type de trafic. Si vous souhaitez activer la prise en charge IPv6 avec WireGuard et que vous utilisez un Droplet DigitalOcean, veuillez vous référer à cette page de documentation Comment Activer IPv6 sur les Droplets. Vous pouvez ajouter la prise en charge IPv6 lors de la création d’un Droplet ou ultérieurement en suivant les instructions sur cette page.

Étape 1 — Installation de WireGuard et Génération d’une Paire de Clés

La première étape de ce tutoriel est d’installer WireGuard sur votre serveur. Pour commencer, mettez à jour l’index des packages de votre serveur WireGuard et installez WireGuard en utilisant les commandes suivantes. Vous pouvez être invité à fournir le mot de passe de votre utilisateur sudo si c’est la première fois que vous utilisez sudo dans cette session :

  1. sudo apt update
  2. sudo apt install wireguard

Maintenant que vous avez installé WireGuard, la prochaine étape consiste à générer une paire de clés privée et publique pour le serveur. Vous utiliserez les commandes intégrées wg genkey et wg pubkey pour créer les clés, puis ajouterez la clé privée au fichier de configuration de WireGuard.

Vous devrez également modifier les autorisations sur la clé que vous venez de créer en utilisant la commande chmod, car par défaut, le fichier est lisible par n’importe quel utilisateur sur votre serveur.

Créez la clé privée pour WireGuard et modifiez ses autorisations en utilisant les commandes suivantes :

  1. wg genkey | sudo tee /etc/wireguard/private.key
  2. sudo chmod go= /etc/wireguard/private.key

La commande sudo chmod go=... supprime toutes les autorisations sur le fichier pour les utilisateurs et les groupes autres que l’utilisateur root pour garantir que seul celui-ci peut accéder à la clé privée.

Vous devriez recevoir une seule ligne de sortie encodée en base64, qui est la clé privée. Une copie de la sortie est également stockée dans le fichier /etc/wireguard/private.key pour référence future par la partie tee de la commande. Notez soigneusement la clé privée qui est générée car vous devrez l’ajouter au fichier de configuration de WireGuard plus tard dans cette section.

La prochaine étape consiste à créer la clé publique correspondante, qui est dérivée de la clé privée. Utilisez la commande suivante pour créer le fichier de clé publique :

  1. sudo cat /etc/wireguard/private.key | wg pubkey | sudo tee /etc/wireguard/public.key

Cette commande se compose de trois commandes individuelles qui sont enchaînées ensemble à l’aide de l’opérateur | (pipe).

  • sudo cat /etc/wireguard/private.key : cette commande lit le fichier de clé privée et le renvoie vers le flux de sortie standard.
  • wg pubkey : la deuxième commande prend la sortie de la première commande comme son entrée standard et la traite pour générer une clé publique.
  • sudo tee /etc/wireguard/public.key : la dernière commande prend la sortie de la commande de génération de clé publique et la redirige vers le fichier nommé /etc/wireguard/public.key.

Lorsque vous exécutez la commande, vous recevrez à nouveau une seule ligne de sortie encodée en base64, qui est la clé publique de votre serveur WireGuard. Copiez-la quelque part pour référence, car vous devrez distribuer la clé publique à chaque pair qui se connecte au serveur.

Étape 2 — Choix des adresses IPv4 et IPv6

Dans la section précédente, vous avez installé WireGuard et généré une paire de clés qui sera utilisée pour chiffrer le trafic vers et depuis le serveur. Dans cette section, vous allez créer un fichier de configuration pour le serveur et configurer WireGuard pour démarrer automatiquement lors du redémarrage du serveur. Vous allez également définir des adresses IPv4 et IPv6 privées à utiliser avec votre serveur et vos pairs WireGuard.

Si vous prévoyez d’utiliser à la fois des adresses IPv4 et IPv6, suivez ces deux sections. Sinon, suivez les instructions de la section appropriée en fonction des besoins en réseau de votre VPN.

Étape 2(a) — Choix d’une plage d’adresses IPv4

Si vous utilisez votre serveur WireGuard avec des pairs IPv4, le serveur a besoin d’une plage d’adresses IPv4 privées à utiliser pour les clients et pour son interface de tunnel. Vous pouvez choisir n’importe quelle plage d’adresses IP parmi les blocs d’adresses réservés suivants (si vous souhaitez en savoir plus sur la manière dont ces blocs sont alloués, consultez la spécification RFC 1918):

  • 10.0.0.0 à 10.255.255.255 (préfixe 10/8)
  • 172.16.0.0 à 172.31.255.255 (préfixe 172.16/12)
  • 192.168.0.0 à 192.168.255.255 (préfixe 192.168/16)

Pour les besoins de ce tutoriel, nous utiliserons 10.8.0.0/24 comme bloc d’adresses IP issu de la première plage d’IP réservées. Cette plage permettra jusqu’à 255 connexions de pairs différentes et ne devrait généralement pas avoir d’adresses qui se chevauchent ou entrent en conflit avec d’autres plages d’IP privées. N’hésitez pas à choisir une plage d’adresses qui fonctionne avec votre configuration réseau si cette plage d’exemple n’est pas compatible avec vos réseaux.

Le serveur WireGuard utilisera une seule adresse IP de la plage pour son adresse IPv4 de tunnel privé. Nous utiliserons 10.8.0.1/24 ici, mais toute adresse dans la plage de 10.8.0.1 à 10.8.0.255 peut être utilisée. Notez l’adresse IP que vous choisissez si vous utilisez quelque chose de différent de 10.8.0.1/24. Vous ajouterez cette adresse IPv4 au fichier de configuration que vous définissez dans Étape 3 — Création d’une configuration de serveur WireGuard.

Étape 2(b) — Choix d’une plage IPv6

Si vous utilisez WireGuard avec IPv6, vous devrez générer un préfixe d’adresse unicast IPv6 local unique basé sur l’algorithme de RFC 4193. Les adresses que vous utilisez avec WireGuard seront associées à une interface de tunnel virtuelle. Vous devrez accomplir quelques étapes pour générer un préfixe IPv6 aléatoire et unique dans le bloc fd00::/8 des adresses IPv6 privées réservées.

Selon le RFC, la manière recommandée d’obtenir un préfixe IPv6 unique est de combiner l’heure de la journée avec une valeur d’identification unique provenant d’un système tel qu’un numéro de série ou un identifiant de périphérique. Ces valeurs sont ensuite hachées et tronquées, ce qui donne un ensemble de bits pouvant être utilisés comme adresse unique dans le bloc privé réservé fd00::/8 des adresses IP.

Pour commencer à générer une plage IPv6 pour votre serveur WireGuard, collectez un horodatage de 64 bits en utilisant l’utilitaire date avec la commande suivante :

  1. date +%s%N

Vous recevrez un nombre tel que celui-ci, qui est le nombre de secondes (le %s dans la commande date), et les nanosecondes (le %N) depuis 1970-01-01 00:00:00 UTC combinés ensemble :

Output
1650301699497770167

Enregistrez la valeur quelque part pour une utilisation ultérieure dans cette section. Ensuite, copiez la valeur machine-id pour votre serveur à partir du fichier /var/lib/dbus/machine-id. Cet identifiant est unique pour votre système et ne devrait pas changer tant que le serveur existe.

  1. cat /var/lib/dbus/machine-id

Vous recevrez une sortie comme celle-ci :

/var/lib/dbus/machine-id
610cef4946ed46da8f71dba9d66c67fb

Maintenant, vous devez combiner l’horodatage avec le machine-id et hacher la valeur résultante en utilisant l’algorithme SHA-1. La commande utilisera le format suivant :

printf <timestamp><machine-id> | sha1sum

Exécutez la commande en substituant vos valeurs d’horodatage et d’identité de machine :

  1. printf 1650301699497770167610cef4946ed46da8f71dba9d66c67fb | sha1sum

Vous recevrez une valeur de hachage comme celle-ci :

Output
442adea1488d96388dae9ab816045b24609a6c18 -

Remarquez que la sortie de la commande sha1sum est en hexadécimal, donc la sortie utilise deux caractères pour représenter un seul octet de données. Par exemple, 4f et 26 dans la sortie de l’exemple sont les deux premiers octets des données hachées.

L’algorithme dans le RFC ne nécessite que les 40 bits les moins significatifs (trailing), ou 5 octets, de la sortie hachée. Utilisez la commande cut pour imprimer les 5 derniers octets encodés en hexadécimal depuis le hachage :

  1. printf 442adea1488d96388dae9ab816045b24609a6c18 | cut -c 31-

L’argument -c indique à la commande cut de sélectionner uniquement un ensemble spécifié de caractères. L’argument 31- indique à cut d’imprimer tous les caractères à partir de la position 31 jusqu’à la fin de la ligne d’entrée.

Vous devriez recevoir une sortie comme suit:

Output
24609a6c18

Dans cette sortie d’exemple, l’ensemble d’octets est : 24 60 9a 6c 18.

Maintenant, vous pouvez construire votre préfixe de réseau IPv6 unique en ajoutant les 5 octets que vous avez générés avec le préfixe fd, en séparant chaque 2 octets avec un : deux-points pour plus de lisibilité. Étant donné que chaque sous-réseau dans votre préfixe unique peut contenir un total de 18 446 744 073 709 551 616 adresses IPv6 possibles, vous pouvez limiter le sous-réseau à une taille standard de /64 pour plus de simplicité.

En utilisant les octets précédemment générés avec la taille de sous-réseau /64, le préfixe résultant sera le suivant:

Unique Local IPv6 Address Prefix
fd24:609a:6c18::/64

Cette plage fd24:609a:6c18::/64 est ce que vous utiliserez pour attribuer des adresses IP individuelles à vos interfaces de tunnel WireGuard sur le serveur et les pairs. Pour attribuer une adresse IP au serveur, ajoutez un 1 après les caractères :: finaux. L’adresse résultante sera fd24:609a:6c18::1/64. Les pairs peuvent utiliser n’importe quelle adresse IP dans la plage, mais généralement vous augmenterez la valeur de un chaque fois que vous ajoutez un pair par exemple fd24:609a:6c18::2/64. Notez l’adresse IP et procédez à la configuration du serveur WireGuard dans la prochaine section de ce tutoriel.

Étape 3 — Création d’une configuration de serveur WireGuard

Avant de créer la configuration de votre serveur WireGuard, vous aurez besoin des éléments suivants :

  1. Assurez-vous d’avoir la clé privée disponible depuis l’étape 1 — Installation de WireGuard et génération d’une paire de clés.

  2. Si vous utilisez WireGuard avec IPv4, vous aurez besoin de l’adresse IP que vous avez choisie pour le serveur dans l’étape 2(a) — Choix d’une plage IPv4, qui dans cet exemple est 10.8.0.1/24.

  3. Si vous utilisez WireGuard avec IPv6, vous aurez besoin de l’adresse IP du serveur que vous avez générée dans l’étape 2(b) — Choix d’une plage IPv6. Dans cet exemple, l’IP est fd24:609a:6c18::1/64.

Une fois que vous avez la clé privée requise et les adresses IP, créez un nouveau fichier de configuration en utilisant nano ou votre éditeur préféré en exécutant la commande suivante :

  1. sudo nano /etc/wireguard/wg0.conf

Ajoutez les lignes suivantes au fichier, en remplaçant votre clé privée à la place de la valeur base64_encoded_private_key_goes_here surlignée, et les adresses IP sur la ligne Address. Vous pouvez également modifier la ligne ListenPort si vous souhaitez que WireGuard soit disponible sur un port différent :

/etc/wireguard/wg0.conf
[Interface] PrivateKey = base64_encoded_private_key_goes_here Address = 10.8.0.1/24, fd24:609a:6c18::1/64 ListenPort = 51820 SaveConfig = true

La ligne SaveConfig assure que lorsqu’une interface WireGuard est arrêtée, les modifications seront enregistrées dans le fichier de configuration.

Enregistrez et fermez le fichier /etc/wireguard/wg0.conf. Si vous utilisez nano, vous pouvez le faire avec CTRL+X, puis Y et ENTER pour confirmer. Vous avez maintenant une configuration initiale du serveur que vous pouvez modifier en fonction de la façon dont vous prévoyez d’utiliser votre serveur VPN WireGuard.

Étape 4 — Ajustement de la configuration réseau du serveur WireGuard

Si vous utilisez WireGuard pour connecter un pair au serveur WireGuard afin d’accéder uniquement aux services sur le serveur, alors vous n’avez pas besoin de compléter cette section. Si vous souhaitez router le trafic Internet de votre pair WireGuard via le serveur WireGuard, vous devrez configurer le transfert IP en suivant cette section du tutoriel.

Pour configurer le transfert, ouvrez le fichier /etc/sysctl.conf en utilisant nano ou votre éditeur préféré:

  1. sudo nano /etc/sysctl.conf

Si vous utilisez IPv4 avec WireGuard, ajoutez la ligne suivante en bas du fichier:

/etc/sysctl.conf
net.ipv4.ip_forward=1

Si vous utilisez IPv6 avec WireGuard, ajoutez cette ligne en bas du fichier:

/etc/sysctl.conf
net.ipv6.conf.all.forwarding=1

Si vous utilisez à la fois IPv4 et IPv6, assurez-vous d’inclure les deux lignes. Enregistrez et fermez le fichier lorsque vous avez terminé.

Pour lire le fichier et charger les nouvelles valeurs pour votre session terminal actuelle, exécutez:

  1. sudo sysctl -p
Output
net.ipv6.conf.all.forwarding = 1 net.ipv4.ip_forward = 1

Maintenant, votre serveur WireGuard pourra transférer le trafic entrant depuis le périphérique virtuel Ethernet VPN vers d’autres sur le serveur, et de là vers Internet public. En utilisant cette configuration, vous pourrez router tout le trafic web de votre pair WireGuard via l’adresse IP de votre serveur, et l’adresse IP publique de votre client sera efficacement masquée.

Cependant, avant que le trafic puisse être correctement routé via votre serveur, vous devrez configurer quelques règles de pare-feu. Ces règles garantiront que le trafic vers et depuis votre serveur WireGuard et vos pairs s’écoule correctement.

Étape 5 — Configuration du pare-feu du serveur WireGuard

Dans cette section, vous allez modifier la configuration du serveur WireGuard pour ajouter des règles de pare-feu qui garantiront que le trafic vers et depuis le serveur et les clients est routé correctement. Comme pour la section précédente, sautez cette étape si vous n’utilisez votre VPN WireGuard que pour une connexion machine à machine pour accéder à des ressources qui sont restreintes à votre VPN.

Pour autoriser le trafic du VPN WireGuard à travers le pare-feu du serveur, vous devrez activer le masquerading, qui est un concept iptables qui fournit une traduction dynamique des adresses réseau (NAT) pour router correctement les connexions des clients.

Trouvez d’abord l’interface réseau publique de votre serveur WireGuard en utilisant la sous-commande ip route:

  1. ip route list default

L’interface publique est la chaîne trouvée dans la sortie de cette commande qui suit le mot « dev ». Par exemple, ce résultat montre l’interface nommée eth0, qui est surlignée ci-dessous:

Output
default via 203.0.113.1 dev eth0 proto static

Notez le nom de votre appareil car vous le ajouterez aux règles iptables à l’étape suivante.

Pour ajouter des règles de pare-feu à votre serveur WireGuard, ouvrez à nouveau le fichier /etc/wireguard/wg0.conf avec nano ou votre éditeur préféré.

  1. sudo nano /etc/wireguard/wg0.conf

En bas du fichier après la ligne SaveConfig = true, collez les lignes suivantes:

/etc/wireguard/wg0.conf
. . . 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

Les lignes PostUp s’exécuteront lorsque le serveur WireGuard démarrera le tunnel VPN virtuel. Dans l’exemple ici, il ajoutera trois règles ufw et iptables :

  • ufw route allow in on wg0 out on eth0 – Cette règle autorisera la transmission du trafic IPv4 et IPv6 entrant sur l’interface VPN wg0 vers l’interface réseau eth0 sur le serveur. Elle fonctionne en conjonction avec les valeurs sysctl net.ipv4.ip_forward et net.ipv6.conf.all.forwarding que vous avez configurées dans la section précédente.
  • iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE – Cette règle configure le masquage et réécrit le trafic IPv4 entrant sur l’interface VPN wg0 pour qu’il semble provenir directement de l’adresse IPv4 publique du serveur WireGuard.
  • ip6tables -t nat -I POSTROUTING -o eth0 -j MASQUERADE – Cette règle configure le masquage et réécrit le trafic IPv6 entrant sur l’interface VPN wg0 pour qu’il semble provenir directement de l’adresse IPv6 publique du serveur WireGuard.

Les règles PreDown s’exécutent lorsque le serveur WireGuard arrête le tunnel VPN virtuel. Ces règles sont l’inverse des règles PostUp et fonctionnent pour annuler les règles de transfert et de masquage pour l’interface VPN lorsque le VPN est arrêté.

Dans les deux cas, modifiez la configuration pour inclure ou exclure les règles IPv4 et IPv6 appropriées pour votre VPN. Par exemple, si vous n’utilisez que IPv4, vous pouvez exclure les lignes avec les commandes ip6tables.

Inversement, si vous n’utilisez que IPv6, alors modifiez la configuration pour inclure uniquement les commandes ip6tables. Les lignes ufw doivent exister pour toute combinaison de réseaux IPv4 et IPv6. Enregistrez et fermez le fichier lorsque vous avez terminé.

La dernière étape de la configuration du pare-feu sur votre serveur WireGuard est de permettre le trafic vers et depuis le port UDP de WireGuard lui-même. Si vous n’avez pas modifié le port dans le fichier /etc/wireguard/wg0.conf du serveur, le port que vous ouvrirez est 51820. Si vous avez choisi un port différent lors de la modification de la configuration, assurez-vous de le substituer dans la commande UFW suivante.

Si vous avez oublié d’ouvrir le port SSH en suivant le tutoriel préalable, ajoutez-le également ici:

  1. sudo ufw allow 51820/udp
  2. sudo ufw allow OpenSSH

Note: Si vous utilisez un pare-feu différent ou si vous avez personnalisé votre configuration UFW, vous devrez peut-être ajouter des règles de pare-feu supplémentaires. Par exemple, si vous décidez de faire passer tout votre trafic réseau via la connexion VPN, vous devrez vous assurer que le trafic sur le port 53 est autorisé pour les demandes DNS, et les ports comme 80 et 443 pour le trafic HTTP et HTTPS respectivement. S’il existe d’autres protocoles que vous utilisez via le VPN, vous devrez également ajouter des règles pour eux.

Après avoir ajouté ces règles, désactivez et réactivez UFW pour le redémarrer et charger les modifications de tous les fichiers que vous avez modifiés:

  1. sudo ufw disable
  2. sudo ufw enable

Vous pouvez confirmer que les règles sont en place en exécutant la commande ufw status. Exécutez-la, et vous devriez recevoir une sortie comme celle-ci:

  1. sudo ufw status
Output
Status: active To Action From -- ------ ---- 51280/udp ALLOW Anywhere 22/tcp ALLOW Anywhere 51280/udp (v6) ALLOW Anywhere (v6) 22/tcp (v6) ALLOW Anywhere (v6)

Votre serveur WireGuard est désormais configuré pour gérer correctement le trafic VPN, y compris le transfert et le masquage pour les pairs. Avec les règles pare-feu en place, vous pouvez démarrer le service WireGuard lui-même pour écouter les connexions des pairs.

Étape 6 — Démarrage du serveur WireGuard

WireGuard peut être configuré pour s’exécuter en tant que service systemd en utilisant son script intégré wg-quick. Bien que vous puissiez utiliser manuellement la commande wg pour créer le tunnel chaque fois que vous souhaitez utiliser le VPN, le faire est un processus manuel qui devient répétitif et sujet aux erreurs. Au lieu de cela, vous pouvez utiliser systemctl pour gérer le tunnel avec l’aide du script wg-quick.

L’utilisation d’un service systemd signifie que vous pouvez configurer WireGuard pour démarrer au démarrage afin de pouvoir vous connecter à votre VPN à tout moment tant que le serveur est en cours d’exécution. Pour ce faire, activez le service wg-quick pour le tunnel wg0 que vous avez défini en l’ajoutant à systemctl:

  1. sudo systemctl enable [email protected]

Remarquez que la commande spécifie le nom du tunnel wg0 en tant que partie du nom du service. Ce nom correspond au fichier de configuration /etc/wireguard/wg0.conf. Cette approche de nommage signifie que vous pouvez créer autant de tunnels VPN distincts que vous le souhaitez en utilisant votre serveur.

Par exemple, vous pourriez avoir un dispositif tunnel nommé prod et son fichier de configuration serait /etc/wireguard/prod.conf. Chaque configuration de tunnel peut contenir différents paramètres IPv4, IPv6 et de pare-feu client. De cette façon, vous pouvez prendre en charge plusieurs connexions de pairs différentes, chacune avec leurs propres adresses IP et règles de routage uniques.

Maintenant, démarrez le service :

  1. sudo systemctl start [email protected]

Vérifiez que le service WireGuard est actif avec la commande suivante. Vous devriez voir actif (en cours d'exécution) dans la sortie :

  1. sudo systemctl status [email protected]
Output
[email protected] - WireGuard via wg-quick(8) for wg0 Loaded: loaded (/lib/systemd/system/[email protected]; enabled; vendor preset: enabled) Active: active (exited) since Mon 2022-04-18 17:22:13 UTC; 2s ago Docs: man:wg-quick(8) man:wg(8) https://www.wireguard.com/ https://www.wireguard.com/quickstart/ https://git.zx2c4.com/wireguard-tools/about/src/man/wg-quick.8 https://git.zx2c4.com/wireguard-tools/about/src/man/wg.8 Process: 98834 ExecStart=/usr/bin/wg-quick up wg0 (code=exited, status=0/SUCCESS) Main PID: 98834 (code=exited, status=0/SUCCESS) CPU: 193ms Apr 18 17:22:13 thats-my-jam wg-quick[98834]: [#] wg setconf wg0 /dev/fd/63 Apr 18 17:22:13 thats-my-jam wg-quick[98834]: [#] ip -4 address add 10.8.0.1/24 dev wg0 Apr 18 17:22:13 thats-my-jam wg-quick[98834]: [#] ip -6 address add fd24:609a:6c18::1/64 dev wg0 Apr 18 17:22:13 thats-my-jam wg-quick[98834]: [#] ip link set mtu 1420 up dev wg0 Apr 18 17:22:13 thats-my-jam wg-quick[98834]: [#] ufw route allow in on wg0 out on ens3 Apr 18 17:22:13 thats-my-jam wg-quick[98890]: Rule added Apr 18 17:22:13 thats-my-jam wg-quick[98890]: Rule added (v6) Apr 18 17:22:13 thats-my-jam wg-quick[98834]: [#] iptables -t nat -I POSTROUTING -o ens3 -j MASQUERADE Apr 18 17:22:13 thats-my-jam wg-quick[98834]: [#] ip6tables -t nat -I POSTROUTING -o ens3 -j MASQUERADE Apr 18 17:22:13 thats-my-jam systemd[1]: Finished WireGuard via wg-quick(8) for wg0.

La sortie montre les commandes ip utilisées pour créer le dispositif virtuel wg0 et lui attribuer les adresses IPv4 et IPv6 que vous avez ajoutées au fichier de configuration. Vous pouvez utiliser ces règles pour dépanner le tunnel, ou avec la commande wg elle-même si vous souhaitez essayer de configurer manuellement l’interface VPN.

Avec le serveur configuré et en cours d’exécution, la prochaine étape consiste à configurer votre machine cliente en tant que pair WireGuard et à vous connecter au serveur WireGuard.

Étape 7 — Configuration d’un pair WireGuard

La configuration d’un pair WireGuard est similaire à la configuration du serveur WireGuard. Une fois que vous avez installé le logiciel client, vous générez une paire de clés publique et privée, choisissez une ou plusieurs adresses IP pour le pair, définissez un fichier de configuration pour le pair, puis démarrez le tunnel en utilisant le script wg-quick.

Vous pouvez ajouter autant de pairs que vous le souhaitez à votre VPN en générant une paire de clés et une configuration en suivant les étapes suivantes. Si vous ajoutez plusieurs pairs au VPN, assurez-vous de suivre leurs adresses IP privées pour éviter les collisions.

Pour configurer le Peer WireGuard, assurez-vous d’avoir le paquet WireGuard installé en utilisant les commandes apt suivantes. Sur le pair WireGuard, exécutez :

  1. sudo apt update
  2. sudo apt install wireguard

Création de la paire de clés du pair WireGuard

Ensuite, vous devrez générer la paire de clés sur le pair en utilisant les mêmes étapes que celles utilisées sur le serveur. À partir de votre machine locale ou du serveur distant qui servira de pair, procédez à la création de la clé privée du pair en utilisant les commandes suivantes :

  1. wg genkey | sudo tee /etc/wireguard/private.key
  2. sudo chmod go= /etc/wireguard/private.key

Vous recevrez à nouveau une ligne unique de sortie encodée en base64, qui est la clé privée. Une copie de la sortie est également stockée dans le fichier /etc/wireguard/private.key. Notez attentivement la clé privée qui est générée, car vous devrez l’ajouter au fichier de configuration de WireGuard plus tard dans cette section.

Ensuite, utilisez la commande suivante pour créer le fichier de clé publique :

  1. sudo cat /etc/wireguard/private.key | wg pubkey | sudo tee /etc/wireguard/public.key

Vous recevrez à nouveau une ligne unique de sortie encodée en base64, qui est la clé publique de votre pair WireGuard. Copiez-la quelque part pour référence, car vous devrez distribuer la clé publique au serveur WireGuard afin d’établir une connexion chiffrée.

Création du fichier de configuration du pair WireGuard

Maintenant que vous avez une paire de clés, vous pouvez créer un fichier de configuration pour le pair contenant toutes les informations dont il a besoin pour établir une connexion avec le serveur WireGuard.

Vous aurez besoin de quelques éléments d’information pour le fichier de configuration :

  • La clé privée encodée en base64 que vous avez générée sur le pair.

  • Les plages d’adresses IPv4 et IPv6 que vous avez définies sur le serveur WireGuard.

  • La clé publique encodée en base64 du serveur WireGuard.

  • L’adresse IP publique et le numéro de port du serveur WireGuard. Habituellement, il s’agira de l’adresse IPv4, mais si votre serveur a une adresse IPv6 et que votre machine cliente a une connexion IPv6 à Internet, vous pouvez utiliser cela au lieu d’IPv4.

Avec toutes ces informations en main, ouvrez un nouveau fichier /etc/wireguard/wg0.conf sur la machine Peer de WireGuard en utilisant nano ou votre éditeur préféré :

  1. sudo nano /etc/wireguard/wg0.conf

Ajoutez les lignes suivantes au fichier, en substituant les données diverses dans les sections surlignées selon les besoins :

/etc/wireguard/wg0.conf
[Interface] PrivateKey = base64_encoded_peer_private_key_goes_here Address = 10.8.0.2/24 Address = fd24:609a:6c18::2/64 [Peer] PublicKey = U9uE2kb/nrrzsEU58GD3pKFU3TLYDMCbetIsnV8eeFE= AllowedIPs = 10.8.0.0/24, fd24:609a:6c18::/64 Endpoint = 203.0.113.1:51820

Remarquez comment la première ligne Address utilise une adresse IPv4 du sous-réseau 10.8.0.0/24 que vous avez choisie précédemment. Cette adresse IP peut être n’importe quoi dans le sous-réseau tant qu’elle est différente de celle du serveur. Incrémenter les adresses de 1 à chaque fois que vous ajoutez un pair est généralement le moyen le plus facile d’attribuer des adresses IP.

De même, remarquez comment la deuxième ligne Address utilise une adresse IPv6 du sous-réseau que vous avez généré précédemment, et incrémente l’adresse du serveur de un. Encore une fois, n’importe quelle adresse dans la plage est valide si vous décidez d’utiliser une adresse différente.

L’autre partie notable du fichier est la dernière ligne AllowedIPs. Ces deux plages IPv4 et IPv6 indiquent au pair d’envoyer du trafic uniquement via le VPN si le système de destination a une adresse IP dans l’une ou l’autre plage. En utilisant la directive AllowedIPs, vous pouvez restreindre le VPN sur le pair pour qu’il se connecte uniquement à d’autres pairs et services sur le VPN, ou vous pouvez configurer le paramètre pour faire passer tout le trafic via le VPN et utiliser le serveur WireGuard comme passerelle.

Si vous n’utilisez que IPv4, alors excluez la plage fd24:609a:6c18::/64 (y compris la virgule , finale). De même, si vous n’utilisez que IPv6, incluez uniquement le préfixe fd24:609a:6c18::/64 et laissez de côté la plage IPv4 10.8.0.0/24.

Dans les deux cas, si vous souhaitez envoyer tout le trafic de vos pairs via le VPN et utiliser le serveur WireGuard comme passerelle pour tout le trafic, vous pouvez utiliser 0.0.0.0/0, qui représente l’ensemble de l’espace d’adressage IPv4, et ::/0 pour l’ensemble de l’espace d’adressage IPv6.

(Optionnel) Configuration d’un Pair pour Rooter Tout le Trafic Via le Tunnel

Si vous avez choisi de router tout le trafic du pair via le tunnel en utilisant les routes 0.0.0.0/0 ou ::/0 et que le pair est un système distant, alors vous devrez suivre les étapes de cette section. Si votre pair est un système local, il est préférable de sauter cette section.

Pour les pairs distants auxquels vous accédez via SSH ou un autre protocole en utilisant une adresse IP publique, vous devrez ajouter des règles supplémentaires au fichier wg0.conf du pair. Ces règles garantiront que vous pouvez toujours vous connecter au système depuis l’extérieur du tunnel lorsqu’il est connecté. Sinon, lorsque le tunnel est établi, tout le trafic qui serait normalement géré sur l’interface réseau publique ne sera pas routé correctement pour contourner l’interface de tunnel wg0, ce qui rendra le système distant inaccessible.

Tout d’abord, vous devrez déterminer l’adresse IP que le système utilise comme passerelle par défaut. Exécutez la commande ip route suivante :

  1. ip route list table main default

Vous recevrez une sortie similaire à ce qui suit :

Output
default via 203.0.113.1 dev eth0 proto static

Notez l’adresse IP en surbrillance de la passerelle 203.0.113.1 pour une utilisation ultérieure, et du périphérique eth0. Le nom de votre périphérique peut être différent. Si tel est le cas, remplacez-le par eth0 dans les commandes suivantes.

Ensuite, trouvez l’adresse IP publique du système en examinant le périphérique avec la commande ip address show:

  1. ip -brief address show eth0

Vous recevrez une sortie semblable à ce qui suit:

Output
eth0 UP 203.0.113.5/20 10.20.30.40/16 2604:a880:400:d1::3d3:6001/64 fe80::68d5:beff:feff:974c/64

Dans cet exemple de sortie, l’adresse IP en surbrillance 203.0.113.5 (sans le suffixe /20) est l’adresse publique qui est attribuée au périphérique eth0 que vous devrez ajouter à la configuration de WireGuard.

Maintenant, ouvrez le fichier /etc/wireguard/wg0.conf du pair WireGuard avec nano ou votre éditeur préféré.

  1. sudo nano /etc/wireguard/wg0.conf

Avant la ligne [Peer], ajoutez les 4 lignes suivantes:

PostUp = ip rule add table 200 from 203.0.113.5
PostUp = ip route add table 200 default via 203.0.113.1
PreDown = ip rule delete table 200 from 203.0.113.5
PreDown = ip route delete table 200 default via 203.0.113.1

[Peer]
. . .

Ces lignes créeront une règle de routage personnalisée et ajouteront une route personnalisée pour s’assurer que le trafic public vers le système utilise la passerelle par défaut.

  • PostUp = ip rule add table 200 from 203.0.113.5 – Cette commande crée une règle qui vérifie toutes les entrées de routage dans la table numérotée 200 lorsque l’adresse IP correspond à l’adresse publique du système 203.0.113.5.
  • PostUp = ip route add table 200 default via 203.0.113.1 – Cette commande garantit que tout le trafic traité par la table 200 utilisera la passerelle 203.0.113.1 pour le routage, au lieu de l’interface WireGuard.

Les lignes PreDown suppriment la règle personnalisée et la route lorsque le tunnel est arrêté.

Remarque : Le numéro de table 200 est arbitraire lors de la construction de ces règles. Vous pouvez utiliser une valeur entre 2 et 252, ou vous pouvez utiliser un nom personnalisé en ajoutant une étiquette au fichier /etc/iproute2/rt_tables et en faisant référence au nom plutôt qu’à la valeur numérique.

Pour plus d’informations sur le fonctionnement des tables de routage sous Linux, consultez la section Tables de Routage du Guide de l’Administration Réseau de Couche IP avec Linux.

Si vous routez tout le trafic des pairs via le VPN, assurez-vous d’avoir configuré les bonnes règles sysctl et iptables sur le serveur WireGuard dans l’Étape 4 — Ajustement de la Configuration Réseau du Serveur WireGuard et l’Étape 5 — Configuration du Pare-feu du Serveur WireGuard.

(Optionnel) Configuration des Résolveurs DNS du Pair WireGuard

Si vous utilisez le serveur WireGuard en tant que passerelle VPN pour tout le trafic de vos pairs, vous devrez ajouter une ligne à la section [Interface] qui spécifie les résolveurs DNS. Si vous n’ajoutez pas ce paramètre, vos requêtes DNS pourraient ne pas être sécurisées par le VPN, ou elles pourraient être révélées à votre fournisseur de services Internet ou à d’autres tiers.

Si vous n’utilisez WireGuard que pour accéder à des ressources sur le réseau VPN ou dans une configuration pair à pair, vous pouvez ignorer cette section.

Pour ajouter des résolveurs DNS à la configuration de votre pair, déterminez d’abord quels serveurs DNS votre serveur WireGuard utilise. Exécutez la commande suivante sur le serveur WireGuard, en remplaçant le nom de votre périphérique Ethernet par eth0 s’il est différent de cet exemple:

  1. resolvectl dns eth0

Vous devriez recevoir une sortie comme celle-ci:

Output
Link 2 (eth0): 67.207.67.2 67.207.67.3 2001:4860:4860::8844 2001:4860:4860::8888

Les adresses IP qui sont affichées sont les résolveurs DNS que le serveur utilise. Vous pouvez choisir d’utiliser l’un ou l’autre, ou seulement IPv4 ou IPv6 en fonction de vos besoins. Notez les résolveurs que vous utiliserez.

Ensuite, vous devrez ajouter vos résolveurs choisis au fichier de configuration du pair WireGuard. De retour sur le pair WireGuard, ouvrez le fichier /etc/wireguard/wg0.conf à l’aide de nano ou de votre éditeur préféré:

  1. sudo nano /etc/wireguard/wg0.conf

Avant la ligne [Peer], ajoutez ce qui suit:

DNS = 67.207.67.2 2001:4860:4860::8844

[Peer]
. . .

Encore une fois, selon vos préférences ou vos besoins en matière d’IPv4 et d’IPv6, vous pouvez modifier la liste en conséquence.

Une fois que vous êtes connecté au VPN à l’étape suivante, vous pouvez vérifier que vous envoyez des requêtes DNS via le VPN en utilisant un site comme DNS leak test.com.

Vous pouvez également vérifier que votre pair utilise les résolveurs configurés avec la commande resolvectl dns comme vous l’avez exécuté sur le serveur. Vous devriez recevoir une sortie similaire à ce qui suit, montrant les résolveurs DNS que vous avez configurés pour le tunnel VPN :

Output
Global: 67.207.67.2 67.207.67.3 . . .

Avec tous ces paramètres de résolveur DNS en place, vous êtes maintenant prêt à ajouter la clé publique du pair au serveur, puis à démarrer le tunnel WireGuard sur le pair.

Étape 8 — Ajout de la clé publique du pair au serveur WireGuard

Avant de connecter le pair au serveur, il est important d’ajouter la clé publique du pair au serveur WireGuard. Cette étape garantit que vous pourrez vous connecter et router le trafic via le VPN. Sans cette étape, le serveur WireGuard ne permettra pas au pair d’envoyer ou de recevoir du trafic via le tunnel.

Assurez-vous d’avoir une copie de la clé publique encodée en base64 pour le pair WireGuard en exécutant :

  1. sudo cat /etc/wireguard/public.key
Output
PeURxj4Q75RaVhBKkRTpNsBPiPSGb5oQijgJsTa29hg=

Ensuite, connectez-vous au serveur WireGuard et exécutez la commande suivante :

  1. sudo wg set wg0 peer PeURxj4Q75RaVhBKkRTpNsBPiPSGb5oQijgJsTa29hg= allowed-ips 10.8.0.2,fd24:609a:6c18::2

Notez que la partie allowed-ips de la commande prend une liste d’adresses IPv4 et IPv6 séparées par des virgules. Vous pouvez spécifier des adresses IP individuelles si vous souhaitez restreindre l’adresse IP qu’un pair peut s’attribuer, ou une plage comme dans l’exemple si vos pairs peuvent utiliser n’importe quelle adresse IP dans la plage VPN. Notez également que deux pairs ne peuvent pas avoir le même paramètre allowed-ips.

Si vous souhaitez mettre à jour les allowed-ips pour un pair existant, vous pouvez exécuter à nouveau la même commande, mais changer les adresses IP. Plusieurs adresses IP sont prises en charge. Par exemple, pour modifier le pair WireGuard que vous venez d’ajouter pour ajouter une adresse IP comme 10.8.0.100 aux adresses IP existantes 10.8.0.2 et fd24:609a:6c18::2, vous exécuteriez ce qui suit :

  1. sudo wg set wg0 peer PeURxj4Q75RaVhBKkRTpNsBPiPSGb5oQijgJsTa29hg= allowed-ips 10.8.0.2,10.8.0.100,fd24:609a:6c18::2

Une fois que vous avez exécuté la commande pour ajouter le pair, vérifiez l’état du tunnel sur le serveur en utilisant la commande wg :

  1. sudo wg
Output
interface: wg0 public key: U9uE2kb/nrrzsEU58GD3pKFU3TLYDMCbetIsnV8eeFE= private key: (hidden) listening port: 51820 peer: PeURxj4Q75RaVhBKkRTpNsBPiPSGb5oQijgJsTa29hg= allowed ips: 10.8.0.2/32, fd24:609a:6c18::/128

Remarquez comment la ligne peer montre la clé publique du pair WireGuard et les adresses IP, ou plages d’adresses, qu’il est autorisé à utiliser pour s’attribuer une adresse IP.

Maintenant que vous avez défini les paramètres de connexion du pair sur le serveur, la prochaine étape consiste à démarrer le tunnel sur le pair.

Étape 9 — Connexion du pair WireGuard au tunnel

Maintenant que votre serveur et votre pair sont tous deux configurés pour prendre en charge votre choix d’IPv4, d’IPv6, de transfert de paquets et de résolution DNS, il est temps de connecter le pair au tunnel VPN.

Étant donné que vous ne voulez peut-être activer le VPN que pour certains cas d’utilisation, nous utiliserons la commande wg-quick pour établir la connexion manuellement. Si vous souhaitez automatiser le démarrage du tunnel comme vous l’avez fait sur le serveur, suivez les étapes de la section Étape 6 — Démarrage du serveur WireGuard au lieu d’utiliser la commande wq-quick.

Si vous routez tout le trafic via le VPN et avez configuré le transfert DNS, vous devrez installer l’utilitaire resolvconf sur le pair WireGuard avant de démarrer le tunnel. Exécutez la commande suivante pour configurer cela:

  1. sudo apt install resolvconf

Pour démarrer le tunnel, exécutez ce qui suit sur le pair WireGuard:

  1. sudo wg-quick up wg0

Vous recevrez une sortie comme suit:

Output
[#] ip link add wg0 type wireguard [#] wg setconf wg0 /dev/fd/63 [#] ip -4 address add 10.8.0.2/24 dev wg0 [#] ip -6 address add fd24:609a:6c18::2/64 dev wg0 [#] ip link set mtu 1420 up dev wg0 [#] resolvconf -a tun.wg0 -m 0 -x

Remarquez les adresses IPv4 et IPv6 mises en évidence que vous avez attribuées au pair.

Si vous avez défini les AllowedIPs sur le pair sur 0.0.0.0/0 et ::/0 (ou pour utiliser d’autres plages que celles que vous avez choisies pour le VPN), alors votre sortie ressemblera à ce qui suit:

Output
[#] ip link add wg0 type wireguard [#] wg setconf wg0 /dev/fd/63 [#] ip -4 address add 10.8.0.2/24 dev wg0 [#] ip -6 address add fd24:609a:6c18::2/64 dev wg0 [#] ip link set mtu 1420 up dev wg0 [#] resolvconf -a tun.wg0 -m 0 -x [#] wg set wg0 fwmark 51820 [#] ip -6 route add ::/0 dev wg0 table 51820 [#] ip -6 rule add not fwmark 51820 table 51820 [#] ip -6 rule add table main suppress_prefixlength 0 [#] ip6tables-restore -n [#] ip -4 route add 0.0.0.0/0 dev wg0 table 51820 [#] ip -4 rule add not fwmark 51820 table 51820 [#] ip -4 rule add table main suppress_prefixlength 0 [#] sysctl -q net.ipv4.conf.all.src_valid_mark=1 [#] iptables-restore -n

Dans cet exemple, remarquez les routes mises en évidence que la commande a ajoutées, qui correspondent aux AllowedIPs dans la configuration du pair.

Vous pouvez vérifier l’état du tunnel sur le pair en utilisant la commande wg:

  1. sudo wg
Output
interface: wg0 public key: PeURxj4Q75RaVhBKkRTpNsBPiPSGb5oQijgJsTa29hg= private key: (hidden) listening port: 49338 fwmark: 0xca6c peer: U9uE2kb/nrrzsEU58GD3pKFU3TLYDMCbetIsnV8eeFE= endpoint: 203.0.113.1:51820 allowed ips: 10.8.0.0/24, fd24:609a:6c18::/64 latest handshake: 1 second ago transfer: 6.50 KiB received, 15.41 KiB sent

Vous pouvez également vérifier à nouveau l’état sur le serveur, et vous recevrez une sortie similaire.

Vérifiez si votre pair utilise le VPN en utilisant les commandes ip route et ip -6 route. Si vous utilisez le VPN comme passerelle pour tout votre trafic Internet, vérifiez quelle interface sera utilisée pour le trafic destiné aux résolveurs DNS de CloudFlare, 1.1.1.1 et 2606:4700:4700::1111.

Si vous utilisez uniquement WireGuard pour accéder à des ressources sur le VPN, remplacez une adresse IPv4 ou IPv6 valide comme celle de la passerelle dans ces commandes. Par exemple 10.8.0.1 ou fd24:609a:6c18::1.

  1. ip route get 1.1.1.1
Output
1.1.1.1 dev wg0 table 51820 src 10.8.0.2 uid 1000 cache

Remarquez le périphérique wg0 utilisé et l’adresse IPv4 10.8.0.2 que vous avez attribuée au pair. De même, si vous utilisez IPv6, exécutez ce qui suit :

  1. ip -6 route get 2606:4700:4700::1111
Output
2606:4700:4700::1111 from :: dev wg0 table 51820 src fd24:609a:6c18::2 metric 1024 pref medium

Encore une fois, notez l’interface wg0, et l’adresse IPv6 fd24:609a:6c18::2 que vous avez attribuée au pair.

Si votre pair dispose d’un navigateur installé, vous pouvez également visiter ipleak.net et ipv6-test.com pour confirmer que votre pair route son trafic via le VPN.

Lorsque vous êtes prêt à vous déconnecter du VPN sur le pair, utilisez la commande wg-quick:

  1. sudo wg-quick down wg0

Vous recevrez une sortie comme celle-ci, indiquant que le tunnel VPN est fermé:

Output
[#] ip link delete dev wg0 [#] resolvconf -d tun.wg0 -f

Si vous avez défini les AllowedIPs sur le pair à 0.0.0.0/0 et ::/0 (ou pour utiliser des plages autres que celles que vous avez choisies pour le VPN), alors votre sortie ressemblera à ce qui suit:

Output
[#] ip rule delete table 200 from 203.0.113.5 [#] ip route delete table 200 default via 203.0.113.1 [#] ip -4 rule delete table 51820 [#] ip -4 rule delete table main suppress_prefixlength 0 [#] ip -6 rule delete table 51820 [#] ip -6 rule delete table main suppress_prefixlength 0 [#] ip link delete dev wg0 [#] resolvconf -d tun.wg0 -f [#] iptables-restore -n [#] ip6tables-restore -n

Pour reconnecter au VPN, exécutez à nouveau la commande wg-quick up wg0 sur le pair. Si vous souhaitez supprimer complètement la configuration d’un pair du serveur WireGuard, vous pouvez exécuter la commande suivante, en veillant à substituer la clé publique correcte du pair que vous souhaitez supprimer :

  1. sudo wg set wg0 peer PeURxj4Q75RaVhBKkRTpNsBPiPSGb5oQijgJsTa29hg= remove

En général, vous aurez seulement besoin de supprimer une configuration de pair si le pair n’existe plus, ou si ses clés de chiffrement sont compromises ou modifiées. Sinon, il est préférable de laisser la configuration en place afin que le pair puisse se reconnecter au VPN sans nécessiter l’ajout de sa clé et des allowed-ips à chaque fois.

Conclusion

Dans ce tutoriel, vous avez installé le paquet et les outils WireGuard sur les systèmes Ubuntu 22.04 du serveur et du client. Vous avez configuré des règles de pare-feu pour WireGuard et configuré les paramètres du noyau pour autoriser le transfert de paquets en utilisant la commande sysctl sur le serveur. Vous avez appris comment générer des clés de chiffrement WireGuard privées et publiques, et comment configurer le serveur et le pair (ou les pairs) pour se connecter les uns aux autres.

Si votre réseau utilise IPv6, vous avez également appris comment générer une plage d’adresses locales uniques à utiliser avec les connexions de pairs. Enfin, vous avez appris comment limiter le trafic devant passer par le VPN en restreignant les préfixes réseau que le pair peut utiliser, ainsi que comment utiliser le serveur WireGuard comme passerelle VPN pour gérer tout le trafic Internet des pairs.

Si vous souhaitez en savoir plus sur WireGuard, y compris comment configurer des tunnels plus avancés, ou utiliser WireGuard avec des conteneurs, visitez la documentation officielle de WireGuard.

Source:
https://www.digitalocean.com/community/tutorials/how-to-set-up-wireguard-on-ubuntu-22-04