Comment configurer Wireguard VPN sur Linux

Wireguard est un puissant démon de réseau privé virtuel (VPN) open source qui peut fonctionner à la fois sur des appareils de bureau et mobiles. Il fournit une alternative rapide et légère aux solutions VPN traditionnelles telles que IPsec et OpenVPN. Ici, nous vous montrons comment installer Wireguard et créer une configuration VPN simple en utilisant trois machines Linux.
Table des matières
- Pourquoi utiliser Wireguard comme solution VPN ?
- Obtention de Wireguard
- Configuration du serveur Wireguard
- Configuration et connexion du client Wireguard
- Ajout d’un deuxième client au serveur
- Test du réseau Wireguard
Pourquoi utiliser Wireguard comme solution VPN ?
L’un des principaux arguments de vente de Wireguard est qu’il s’agit d’un démon VPN rapide et léger. Contrairement aux solutions traditionnelles, Wireguard n’ajoute pas beaucoup de surcharge à votre réseau. Cela se traduit par une latence plus faible et un taux de débit global élevé à travers vos nœuds.

Une autre caractéristique clé de Wireguard est qu’il s’agit d’un module à l’intérieur du noyau Linux. Cela lui permet de fonctionner sans utiliser de ressources système supplémentaires de votre ordinateur, ce qui en fait un choix idéal pour le déploiement sur des appareils bas de gamme et SOC.

Enfin, Wireguard profite également des normes cryptographiques modernes et des pratiques de développement. Il a également subi plusieurs vérifications formelles, qui confirment la correction du code de Wireguard, les garanties de sécurité et sa capacité à résister aux attaques.
En passant : vous n’êtes toujours pas convaincu par Wireguard ? Découvrez comment Wireguard se compare à OpenVPN.
Obtention de Wireguard
La première étape pour configurer Wireguard sur Linux est de télécharger ses outils principaux depuis le dépôt de votre distribution. Cela vous permet de contrôler le module noyau Wireguard intégré à l’aide de commandes en espace utilisateur.
Pour installer les outils principaux sur Ubuntu et Debian, exécutez la commande suivante :
sudo apt install wireguard wireguard-toolsSur Fedora, vous pouvez utiliser le gestionnaire de paquets dnf :
sudo dnf install wireguard-toolsPour Arch Linux, vous pouvez exécuter pacman pour obtenir les outils principaux de Wireguard :
sudo pacman -S wireguard-toolsConfirmez que vous avez correctement installé les outils Wireguard en chargeant son écran d’aide :
wg -h
Configuration du serveur Wireguard
Hypothèse : Cet article suppose que vous installez le serveur Wireguard sur un système Linux avec une adresse IPv4 accessible publiquement. Les instructions fonctionneront toujours sur un serveur derrière un NAT, mais il ne trouvera pas de nœuds en dehors de son sous-réseau.
Avec l’ensemble d’outils principaux de Wireguard sur vos machines Linux, vous pouvez maintenant configurer le nœud serveur de votre VPN. Cela servira de passerelle Internet pour vos nœuds clients dans le réseau.
Commencez par naviguer vers votre répertoire de configuration Wireguard et définissez ses permissions par défaut sur “root uniquement :”
cd/etc/wireguard
sudoumask 077Remarque : certains systèmes peuvent vous empêcher d’entrer dans le dossier “/etc/wireguard” en tant qu’utilisateur ordinaire. Pour résoudre cela, passez à l’utilisateur root en utilisant sudo -s.
Générez la clé publique et privée pour votre serveur Wireguard :
sudosh-c'wg genkey | tee /etc/wireguard/server-private-key | wg pubkey > /etc/wireguard/server-public-key'Créez le fichier de configuration de votre serveur en utilisant votre éditeur de texte préféré :
sudonano/etc/wireguard/wg0.confCollez le bloc de code suivant dans votre fichier de configuration serveur :
[Interface]
PrivateKey= COLLEZ-VOTRE-CLÉ-PRIVÉE-SERVEUR-Ici
Address= 10.0.0.1/32
ListenPort= 60101
PostUp= iptables -t nat -I POSTROUTING -o INTERFACE-RÉSEAU-Ici -j MASQUERADE
PostDown= iptables -t nat -D POSTROUTING -o INTERFACE-RÉSEAU-Ici -j MASQUERADEOuvrez une nouvelle session de terminal, puis imprimez la clé privée de votre serveur Wireguard :
sudocat/etc/wireguard/server-private-keyCopiez la clé privée de votre serveur dans votre presse-papiers.

Remplacez la valeur de la variable PrivateKey par la clé de votre presse-papiers.

Trouvez l’interface réseau qui a accès à Internet en utilisant la commande ip :
ip route get 8.8.8.8Définissez la valeur du drapeau -o sur les variables PostUp et PostDown sur l’interface avec accès Internet, puis enregistrez votre fichier de configuration.

Ouvrez le fichier “/etc/sysctl.conf” du serveur en utilisant votre éditeur de texte préféré :
sudonano/etc/sysctl.confFaites défiler jusqu’à la ligne contenant net.ipv4.ip_forward=1, puis retirez le signe dièse (#) devant.

Rechargez votre nouvelle configuration sysctl en exécutant : sudo sysctl -p.
FYI : Wireguard n’est pas la seule solution VPN que vous pouvez exécuter sur Linux. Découvrez comment créer votre propre VPN en utilisant OpenVPN.
Configuration et connexion du client Wireguard
À ce stade, vous avez maintenant un serveur Wireguard correctement configuré sans pairs. Pour l’utiliser, vous devez configurer et connecter votre premier client Wireguard.
Naviguez vers le répertoire de configuration Wireguard de votre système client et définissez ses permissions par défaut :
cd/etc/wireguard
sudoumask 077Générez la paire de clés Wireguard de votre client en utilisant la commande suivante :
sudosh-c'wg genkey | tee /etc/wireguard/client1-private-key | wg pubkey > /etc/wireguard/client1-public-key'Créez le fichier de configuration Wireguard du client en utilisant votre éditeur de texte préféré :
sudonano/etc/wireguard/wg0.confCollez le bloc de code suivant dans votre fichier de configuration client :
[Interface]
PrivateKey= COLLEZ-VOTRE-CLÉ-PRIVÉE-CLIENT1-Ici
Address= 10.0.0.2/32
ListenPort= 60101
[Peer]
PublicKey= COLLEZ-VOTRE-CLÉ-PUBLIQUE-SERVEUR-Ici
AllowedIPs= 0.0.0.0/0
Endpoint= COLLEZ-VOTRE-ADRESSE-IP-SERVEUR-Ici:60101
PersistentKeepalive= 25Remplacez la variable PrivateKey par la clé privée de votre client.

Ouvrez la session de terminal de votre serveur Wireguard, puis imprimez sa clé publique :
sudocat/etc/wireguard/server-public-keyDéfinissez la valeur de la variable PublicKey sur la clé publique de votre serveur.

Changez la variable Endpoint pour l’adresse IP de votre serveur Wireguard.

Enregistrez votre fichier de configuration, puis utilisez la commande wg-quick pour démarrer le client Wireguard :
sudo wg-quick up wg0
Remarque : cette commande désactivera la connectivité réseau de votre client jusqu’à ce que vous démarriez votre serveur Wireguard. Pour revenir à votre réseau d’origine, exécutez sudo wg-quick down wg0.
Lien entre le serveur Wireguard et le client
Allez à la session de terminal de votre serveur Wireguard, puis ouvrez son fichier de configuration :
sudonano/etc/wireguard/wg0.confCollez le bloc de code suivant après la section [Interface] :
[Peer]
PublicKey= COLLEZ-VOTRE-CLÉ-PUBLIQUE-CLIENT1-Ici
AllowedIPs= 10.0.0.2/32
PersistentKeepalive= 25Définissez la variable PublicKey sur la clé publique de votre client Wireguard.
![Un terminal montrant l'emplacement du bloc [Peer] et mettant en évidence la clé publique du client.](https://www.maketecheasier.com/assets/uploads/2024/07/set-up-wireguard-linux-vpn-13-highlight-client1-public-key.png)
Remarque : vous pouvez obtenir la clé publique en exécutant sudo cat /etc/wireguard/client1-public-key sur votre machine cliente.
Enregistrez le fichier de configuration, puis exécutez la commande suivante pour démarrer le service Wireguard sur votre serveur :
sudo wg-quick up wg0Ajout d’un deuxième client au serveur
Une caractéristique clé de chaque service VPN est qu’il peut relier plusieurs machines de différents réseaux. Cela est utile si vous avez des ordinateurs à différents emplacements ou si vous souhaitez héberger un serveur de jeu privé pour vos amis.
Pour ce faire dans Wireguard, vous devez créer un fichier de configuration pour une nouvelle interface VPN sur votre serveur. Le moyen le plus simple de le faire est de copier votre configuration de serveur actuelle et de donner à la copie un nouveau nom :
sudocp/etc/wireguard/wg0.conf /etc/wireguard/wg1.confOuvrez votre nouveau fichier de configuration en utilisant votre éditeur de texte préféré :
sudonano/etc/wireguard/wg1.confDéfinissez la variable ListenPort sur 60102. Cela empêchera toute collision de ports entre les interfaces VPN wg0 et wg1.

Allez à la section [Peer] et changez la variable AllowedIPs de “10.0.0.2/32” à “10.0.0.3/32,” puis enregistrez votre fichier de configuration.

Configuration du deuxième client Wireguard
Connectez-vous à votre deuxième machine, puis préparez votre répertoire de configuration Wireguard :
cd/etc/wireguard
sudoumask 077Générez une nouvelle paire de clés Wireguard en utilisant la commande suivante :
sudosh-c'wg genkey | tee /etc/wireguard/client2-private-key | wg pubkey > /etc/wireguard/client2-public-key'Créez un nouveau fichier de configuration en utilisant votre éditeur de texte préféré :
sudonano/etc/wireguard/wg0.confCollez le bloc de code suivant dans votre nouveau fichier de configuration :
[Interface]
PrivateKey= COLLEZ-VOTRE-CLÉ-PRIVÉE-CLIENT2-Ici
Address= 10.0.0.3/32
ListenPort= 60102
[Peer]
PublicKey= COLLEZ-VOTRE-CLÉ-PUBLIQUE-SERVEUR-Ici
AllowedIPs= 0.0.0.0/0
Endpoint= COLLEZ-VOTRE-ADRESSE-IP-SERVEUR-Ici:60102
PersistentKeepalive= 25Définissez la variable PrivateKey sur la clé privée de votre deuxième machine, puis changez la variable PublicKey sur la clé publique de votre serveur.
Remplacez la variable Endpoint par l’adresse IP de votre serveur, suivie de “:60102.”
Enregistrez votre fichier de configuration, puis démarrez le client Wireguard de la deuxième machine :
sudo wg-quick up wg0Lien entre le deuxième client et le serveur Wireguard
Reconnectez-vous à votre serveur Wireguard, puis ouvrez la configuration de l’interface VPN pour votre deuxième client :
sudonano/etc/wireguard/wg1.confFaites défiler jusqu’à la section [Peer], puis remplacez la variable PublicKey par la clé publique de votre deuxième client.

Enregistrez votre fichier de configuration, puis démarrez la deuxième interface VPN en utilisant la commande wg-quick :
sudo wg-quick up wg1Confirmez que vos premier et deuxième clients Wireguard apparaissent correctement sur votre serveur en exécutant wg.

Test du réseau Wireguard
Avec votre serveur et vos clients sur le réseau Wireguard, vous pouvez maintenant tester la connectivité et la latence entre vos nœuds. Pour ce faire, assurez-vous d’avoir des outils de diagnostic réseau installés sur votre système :
sudo apt install net-tools curlSur Fedora, vous n’avez besoin d’installer que curl car il est déjà livré avec des outils de mise en réseau dès le départ :
sudo dnf install curlPour Arch Linux, vous pouvez utiliser pacman pour installer les outils réseau et curl :
sudo pacman -S traceroute curlCommencez par suivre la route d’un paquet entre deux clients. Ce qui suit montrera comment un paquet IP va de “10.0.0.2” à “10.0.0.3 :”
traceroute 10.0.0.3Vérifiez si l’un de vos nœuds peut accéder à Internet en pingant une adresse IP commune :
ping-c5 8.8.8.8
Enfin, confirmez que vos nœuds partagent la même adresse IP publique que votre serveur Wireguard :
curl ipinfo.io/ip
Apprendre à configurer un réseau Wireguard sur Linux est la première étape pour explorer le monde fascinant des VPN. Plongez profondément et consultez nos choix pour les meilleurs fournisseurs de VPN axés sur la sécurité que vous pouvez obtenir aujourd’hui.
Crédit image : Kari Shea via Unsplash et Wikimedia Commons. Toutes les modifications et captures d’écran par Ramces Red.