Comment configurer Wireguard VPN sur Linux

Comment configurer Wireguard VPN sur Linux
Une photographie d'un ordinateur portable avec un écran de bureau à côté.

Wireguard est un puissant démon de réseau privé virtuel (VPN) open source qui peut fonctionner à la fois sur des ordinateurs de bureau et des appareils mobiles. Il offre une alternative rapide et légère aux solutions VPN traditionnelles telles qu’IPsec et OpenVPN. Nous vous montrons ici comment installer Wireguard et créer une configuration VPN simple à l’aide de trois machines Linux.

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 débit global élevé sur vos nœuds.

Un terminal montrant un test iperf3 entre deux nœuds Wireguard montrant un débit élevé.

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

Un terminal montrant le Wireguard chargé sur le noyau Linux.

Enfin, Wireguard tire également parti des normes cryptographiques et des pratiques de développement modernes. Il a également fait l’objet de plusieurs vérifications formelles, qui confirment l’exactitude du code de Wireguard, ses garanties de sécurité et sa capacité à résister aux attaques.

Obtention de Wireguard

La première étape pour configurer Wireguard sur Linux consiste à télécharger ses outils de base à partir du référentiel de votre distribution. Cela vous permet de contrôler le module de noyau Wireguard intégré à l’aide de commandes de l’espace utilisateur.

Pour installer les outils de base dans Ubuntu et Debian, exécutez la commande suivante :

Dans Fedora, vous pouvez utiliser le dnfgestionnaire de paquets :

Pour Arch Linux, vous pouvez exécuter pacmanpour obtenir les outils de base de Wireguard :

Confirmez que vous avez correctement installé les outils Wireguard en chargeant son écran d’aide :

Un terminal affichant le menu d'aide de l'outil de l'espace utilisateur Wireguard.

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 au public. 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 la boîte à outils principale Wireguard installée sur vos machines Linux, vous pouvez désormais configurer le nœud serveur de votre VPN. Il servira de passerelle Internet pour vos nœuds clients sur le réseau.

Commencez par accéder à votre répertoire de configuration Wireguard et définissez ses autorisations par défaut sur « root uniquement » :

Générez la clé publique et privée pour votre serveur Wireguard :

Créez le fichier de configuration de votre serveur à l’aide de votre éditeur de texte préféré :

Collez le bloc de code suivant dans le fichier de configuration de votre serveur :

Ouvrez une nouvelle session de terminal, puis imprimez la clé privée Wireguard de votre serveur :

Copiez la clé privée de votre serveur dans votre presse-papiers.

Un terminal montrant le processus de copie de la clé privée du serveur sur Ubuntu.

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

Un terminal affichant la clé privée du serveur dans la configuration Wireguard du serveur.

Recherchez l’interface réseau qui a accès à Internet à l’aide de la ipcommande :

Un terminal mettant en évidence le nom de l'interface réseau avec accès à Internet.

Définissez la valeur de l’ -oindicateur sur les deux variables PostUpet PostDownsur l’interface avec accès Internet, puis enregistrez votre fichier de configuration.

Un terminal affichant le nom de périphérique approprié dans le fichier de configuration du serveur Wireguard.

Ouvrez le fichier « /etc/sysctl.conf » du serveur à l’aide de votre éditeur de texte préféré :

Faites défiler jusqu’à la ligne qui contient net.ipv4.ip_forward=1, puis supprimez le signe dièse (#) devant celui-ci.

Un terminal mettant en évidence l'emplacement de l'option de transfert IPv4 dans sysctl.conf.

Rechargez votre nouvelle configuration sysctl en exécutant : sudo sysctl -p.

Un terminal montrant le processus de rechargement du fichier sysctl.conf.

Configuration et connexion du client Wireguard

À ce stade, vous disposez désormais d’un serveur Wireguard correctement configuré sans aucun homologue. Pour l’utiliser, vous devez configurer et connecter votre premier client Wireguard.

Accédez au répertoire de configuration Wireguard de votre système client et définissez ses autorisations par défaut :

Générez la paire de clés Wireguard de votre client à l’aide de la commande suivante :

Créez le fichier de configuration Wireguard du client à l’aide de votre éditeur de texte préféré :

Collez le bloc de code suivant dans votre fichier de configuration client :

Remplacez la PrivateKeyvariable par la clé privée de votre client.

Un terminal mettant en évidence la clé privée du premier client Wireguard.

Ouvrez la session de terminal de votre serveur Wireguard, puis imprimez sa clé publique :

Définissez la valeur de la PublicKeyvariable sur la clé publique de votre serveur.

Un terminal mettant en évidence la clé publique du serveur Wireguard dans le fichier de configuration du deuxième client.

Modifiez la Endpointvariable avec l’adresse IP de votre serveur Wireguard.

Un terminal mettant en évidence l'adresse IP du serveur Wireguard.

Enregistrez votre fichier de configuration, puis utilisez la wg-quickcommande pour démarrer le client Wireguard :

Un terminal montrant le processus de démarrage du démon client Wireguard.

Liaison du serveur Wireguard au client

Accédez à la session de terminal de votre serveur Wireguard, puis ouvrez son fichier de configuration :

Collez le bloc de code suivant après la [Interface]section :

Définissez la PublicKeyvariable sur la clé publique de votre client Wireguard.

Un terminal affichant l'emplacement du bloc [Peer] et mettant en évidence la clé publique du client.

Enregistrez le fichier de configuration, puis exécutez la commande suivante pour démarrer le service Wireguard sur votre serveur :

Ajout d’un deuxième client au serveur

L’une des caractéristiques clés de chaque service VPN est qu’il peut relier plusieurs machines de différents réseaux. Cela est utile si vous avez des ordinateurs situés à différents endroits 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 procéder consiste à copier la configuration actuelle de votre serveur et à donner un nouveau nom à la copie :

Ouvrez votre nouveau fichier de configuration à l’aide de votre éditeur de texte préféré :

Définissez la ListenPortvariable sur 60102. Cela évitera toute collision de port entre les interfaces VPN wg0 et wg1.

Un terminal mettant en évidence la variable ListenPort modifiée pour la deuxième interface Wireguard.

Accédez à la [Peer]section et modifiez la AllowedIPsvariable de « 10.0.0.2/32 » à « 10.0.0.3/32 », puis enregistrez votre fichier de configuration.

Un terminal mettant en évidence la variable AllowedIPs modifiée pour le deuxième client Wireguard.

Configuration du deuxième client Wireguard

Connectez-vous à votre deuxième machine, puis préparez votre répertoire de configuration Wireguard :

Générez une nouvelle paire de clés Wireguard à l’aide de la commande suivante :

Créez un nouveau fichier de configuration à l’aide de votre éditeur de texte préféré :

Collez le bloc de code suivant dans votre nouveau fichier de configuration :

Définissez la PrivateKeyvariable sur la clé privée de votre deuxième machine, puis remplacez la PublicKeyvariable par la clé publique de votre serveur.

Un terminal mettant en évidence la clé privée du deuxième client et la clé publique du serveur Wireguard.

Remplacez la variable Endpoint par l’adresse IP de votre serveur, suivie de « :60102 ».

Un terminal mettant en évidence l'adresse IP du serveur Wireguard dans la configuration du deuxième client.

Enregistrez votre fichier de configuration, puis démarrez le client Wireguard de la deuxième machine :

Liaison du deuxième client au serveur Wireguard

Reconnectez-vous à votre serveur Wireguard, puis ouvrez la configuration de l’interface VPN pour votre deuxième client :

Faites défiler jusqu’à la [Peer]section, puis remplacez la PublicKeyvariable par la clé publique de votre deuxième client.

Un terminal mettant en évidence la clé publique du deuxième client dans le fichier de configuration wg1 du serveur.

Enregistrez votre fichier de configuration, puis démarrez la deuxième interface VPN à l’aide de la commande wg-quick :

Confirmez que vos premier et deuxième clients Wireguard s’affichent correctement sur votre serveur en exécutant wg.

Un terminal montrant les deux nœuds clients communiquant avec le serveur Wireguard.

Test du réseau Wireguard

Avec votre serveur et vos clients sur le réseau Wireguard, vous pouvez désormais tester la connectivité et la latence entre vos nœuds. Pour ce faire, assurez-vous que des outils de diagnostic réseau sont installés sur votre système :

Dans Fedora, vous n’avez besoin que de l’installer, curlcar il est déjà fourni avec des outils réseau prêts à l’emploi :

Pour Arch Linux, vous pouvez utiliser pacmanpour installer les outils réseau etcurl :

Commencez par suivre le trajet d’un paquet entre deux clients. L’exemple suivant montre comment un paquet IP passe de « 10.0.0.2 » à « 10.0.0.3 » :

Un terminal affichant une commande traceroute réussie entre deux nœuds Wireguard.

Vérifiez si l’un de vos nœuds peut accéder à l’Internet public en envoyant une requête ping à une adresse IP commune :

Un terminal montrant la latence du réseau Wireguard vers un site externe.

Enfin, confirmez que vos nœuds partagent la même adresse IP publique que votre serveur Wireguard :

Un terminal mettant en évidence l'adresse IP externe similaire sur trois nœuds Wireguard.

Apprendre à configurer un réseau Wireguard sous Linux est la première étape pour explorer le monde fascinant des VPN. Plongez-vous dans le monde des VPN et découvrez nos choix parmi les meilleurs fournisseurs de VPN axés sur la sécurité que vous pouvez obtenir aujourd’hui.

Crédits photo : Kari Shea via Unsplash et Wikimedia Commons . Toutes les modifications et captures d’écran ont été réalisées par Ramces Red.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *