Mise en place d'un tunnel WireGuard
Prérequis :
Accès au routeur du réseau local
Machine Debian 12
Machine Windows
Objectif :
Mettre en place un tunnel VPN entre une machine de mon réseau local et une machine distante
Date de réalisation :
Septembre 2024
Compétence concernées :
Répondre aux incidents et aux demandes d’assistance et d’évolution
Mettre à disposition des utilisateurs un service informatique
Organiser son développement professionnel
Mises à jours
Effectuer les mises à jours de la machine sous Debian 12 qui va accueillir WireGuard. Cette machine sera la machine "serveur".


Installation WireGuard
Installation de WireGuard sur le serveur depuis le dépot officiel Debian.


Changement de répertoire
Nous changeons de répertoire afin de faire une installation de WireGuard propre. Que celle-ci ne soit pas à la racine de notre serveur.


Création de la clé privé de WireGuard
Création de la clé privé WireGuard du serveur qui sera ensuite utilisée avec le client WireGuard.


Création de la clé public de WireGuard
Création de la clé publique WireGuard du serveur qui sera ensuite indiqué au client WireGuard.


Récupérer les clés
Les clés se trouvent dans des fichiers nommés "private.key" et "public.key". Nous pouvons les récupérer à l'aide des commandes suivantes.


Client WireGuard
Maintenant que nous avons les clés de notre serveur, nous pouvons ouvrir notre client WireGuard et créer un nouveau tunnel.


Configuration client
Nous allons configurer le client de la manière suivante :
[Interface]
PrivateKey = Laisse celle par défaut.
ListenPort : Le port par défaut de WireGuard est le 51820.
Address : Adresse IP que nous souhaitons occupé lors de notre connexion VPN
[Peer]
PublicKey = Clé publique du serveur WireGuard
AllowedsIPs = Plages IP aux quelles nous souhaitons accéder à distance.
Endpoint = IPV4 publique de notre FAI suivit du port de WireGuard.


Création du fichier de configuration serveur
Nous créons le fichier de configuration de l'interface réseau dédier à WireGuard sur le serveur Debian.


Configuration serveur
Nous allons configurer le serveur de la manière suivante :
[Interface]
Address = Celle que nous décidons de donner à notre interface.
ListenPort : Le port par défaut de WireGuard est le 51820.
Address : Clé privé de notre serveur.
[Peer]
PublicKey = Clé publique du client WireGuard
AllowedsIPs = Adresse IP que notre client va occuper.
Endpoint = IPV4 publique de notre FAI suivit du port de WireGuard.


Démarrage de l'interface
Démarrage de l'interface wg0 qui est lié à notre client WireGuard.


Modification du fichier /etc/sysctl.conf
Nous modifions le fichier /etc/sysctl.conf.


Modification du fichier /etc/sysctl.conf
Nous décommentons la ligne suivante afin d'activer le transfert de paquets IPv4 entre les interfaces réseau sur notre système Linux.


Installationde iptables
Installation de iptables sur le serveur depuis le dépot officiel Debian.


Installation netfilter-persistent
Installation de netfilter-persistent sur le serveur depuis le dépot officiel Debian.


Réglage du firewall
Cette commande autorise les connexions entrantes sur le port UDP 51820, utilisé par WireGuard, afin que le serveur puisse accepter les requêtes VPN provenant du client distant.


Réglage du firewall
Cette commande autorise les réponses aux connexions déjà établies ou associées, assurant ainsi le bon fonctionnement des échanges réseau initiés par le serveur.


Réglage du firewall
Cette commande permet de laisser passer le trafic de transit qui fait partie d’une connexion déjà établie, garantissant ainsi la continuité des échanges entre les machines du réseau local et celles du réseau distant via le tunnel VPN.


Réglage du firewall
Cette commande autorise le transfert des paquets provenant du tunnel WireGuard vers l’interface réseau du serveur, permettant ainsi aux clients VPN d’accéder aux ressources extérieures comme Internet.


Réglage du firewall
Not just pleasant on the outside, our Pleasantview Gem Inn properties are especially popular among families. With underground parking and floor-to-ceiling windows, there's no shortage of natural light or space.


Réglage du firewall
Cette commande autorise l’envoi de paquets UDP sortants via l’interface WireGuard, assurant l’émission correcte des données vers le client VPN.


Réglage du firewall
Cette commande active la traduction d’adresses (NAT) pour permettre aux clients VPN d’accéder à Internet en utilisant l’adresse IP du serveur comme source.


Sauvegarde du firewall
Cette commande enregistre toutes les règles du firewall afin qu’elles soient automatiquement démarrées au prochain redémarrage du serveur.


Application du firewall
Cette commande recharge les règles du firewall précédemment sauvegardées afin de les appliquer immédiatement sans redémarrage du système.


Création de répertoire
Création du répertoire /iptables dans le répertoire /etc.


Sauvegarde de la configuration
Cette commande enregistre manuellement les règles actuelles d’iptables dans un fichier de configuration. Cela pourra être utile pour les restaurer.


Réglage du NAT
Nous configurons ici le NAT au niveau de l’interface de notre box internet afin de rediriger le trafic entrant sur le port UDP 51820 vers notre serveur WireGuard local. Cette étape est essentielle pour permettre au client distant d’établir une connexion VPN vers notre réseau.


Réglage du firewall
Nous réglons ici le firewall de la box en mode faible afin de permettre les connexions entrantes sur le port 51820. Ce réglage est nécessaire pour que la règle précédemment établie soit appliquée.

