WireGuard est un outil VPN moderne, rapide et sécurisé qui utilise des principes de cryptographie de pointe. Il est conçu pour être simple à configurer et à déployer, tout en offrant des performances élevées. Cet article technique détaillé vous guidera à travers la mise en œuvre d’un serveur VPN WireGuard sous Debian/Ubuntu et la configuration des clients VPN WireGuard sous Linux, macOS et Windows.
Prérequis
Un serveur exécutant Debian ou Ubuntu.
Un accès root ou sudo sur le serveur.
Des clients exécutant Linux, macOS ou Windows.
Installation de WireGuard sur le serveur
Étape 1 : Mise à jour du système
Assurez-vous que votre système est à jour :
# Mettre à jour la liste des paquets
sudo apt update
sudoapt upgrade -y
Étape 2 : Installation de WireGuard
Installez WireGuard en utilisant le gestionnaire de paquets APT :
# Installer les dépendances requises
sudo apt install wireguard -y
Étape 3 : Génération des clés
WireGuard utilise des paires de clés publiques et privées pour l’authentification. Générez les clés pour le serveur :
cd /etc/wireguard
umask 077
wg genkey |tee privatekey | wg pubkey > publickey
Ces commandes génèrent une clé privée et une clé publique pour le serveur. La clé privée est stockée dans le fichier privatekey et la clé publique dans le fichier publickey.
Configuration du serveur WireGuard
Étape 4 : Configuration du fichier de configuration du serveur
Créez un fichier de configuration pour le serveur WireGuard :
# Éditer le fichier de configuration
sudo nano /etc/wireguard/wg0.conf
Ajoutez la configuration suivante au fichier :
[Interface]
PrivateKey=<contenu-du-fichier-privatekey>
Address=10.0.0.1/24
ListenPort=51820
PostUp=iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Remplacez <contenu-du-fichier-privatekey> par le contenu du fichier privatekey généré précédemment.
Étape 5 : Activation du routage IP
Pour permettre le routage des paquets entre les interfaces réseau, activez le routage IP :
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
Étape 6 : Démarrage du serveur WireGuard
Démarrez l’interface WireGuard :
# Activer l'interface WireGuard
sudo wg-quick up wg0
Pour que WireGuard démarre automatiquement au démarrage du système, activez le service systemd :
# Activer le démarrage automatique au boot
sudo systemctl enable wg-quick@wg0
Configuration du client sous Linux
Étape 1 : Installation de WireGuard
Installez WireGuard sur le client Linux :
# Mettre à jour la liste des paquets
sudo apt update
# Installer les dépendances requises
sudo apt install wireguard -y
Étape 2 : Génération des clés
Générez les clés pour le client :
cd /etc/wireguard
umask 077
# Générer la clé privée WireGuard
wg genkey | tee privatekey | wg pubkey > publickey
Étape 3 : Configuration du fichier de configuration du client
Créez un fichier de configuration pour le client :
# Éditer le fichier de configuration
sudo nano /etc/wireguard/wg0.conf
Ajoutez la configuration suivante au fichier :
[Interface]
PrivateKey=<contenu-du-fichier-privatekey-client>
Address=10.0.0.2/24
[Peer]
PublicKey=<clé-publique-du-serveur>
Endpoint=<adresse-ip-du-serveur>:51820
AllowedIPs=0.0.0.0/0
Remplacez <contenu-du-fichier-privatekey-client> par le contenu du fichier privatekey généré pour le client, <clé-publique-du-serveur> par la clé publique du serveur et <adresse-ip-du-serveur> par l’adresse IP du serveur.
Étape 4 : Démarrage du client WireGuard
Démarrez l’interface WireGuard sur le client :
# Activer l'interface WireGuard
sudo wg-quick up wg0
Configuration du client sous macOS
Étape 1 : Installation de WireGuard
Installez WireGuard à partir de l’App Store ou téléchargez-le depuis le site officiel de WireGuard.
Étape 2 : Génération des clés
Utilisez l’application WireGuard pour générer une paire de clés.
Étape 3 : Configuration du fichier de configuration du client
Créez un fichier de configuration similaire à celui du client Linux et importez-le dans l’application WireGuard.
Configuration du client sous Windows
Étape 1 : Installation de WireGuard
Téléchargez et installez WireGuard depuis le site officiel.
Étape 2 : Génération des clés
Utilisez l’application WireGuard pour générer une paire de clés.
Étape 3 : Configuration du fichier de configuration du client
Créez un fichier de configuration similaire à celui du client Linux et importez-le dans l’application WireGuard.
Conclusion
WireGuard est une solution VPN moderne et performante qui est facile à configurer et à déployer. En suivant les étapes décrites dans cet article, vous pouvez mettre en place un serveur VPN WireGuard sous Debian/Ubuntu et configurer des clients VPN WireGuard sous Linux, macOS et Windows. Assurez-vous de suivre les bonnes pratiques de sécurité pour protéger vos clés et votre infrastructure réseau.