Serveur VPN WireGuard sous linux

03 juillet 2025 — par admin_libra

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
sudo apt 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
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
[Peer]
# Client 1
PublicKey = <clé-publique-du-client-1>
AllowedIPs = 10.0.0.2/32

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.

Index complet

Tous les articles (47)

Date Article Tags
22/06/2026 OS : Cycle de vie LTS et mise à jour des distributions — apt dist-upgrade et do-release-upgrade sous Debian / Ubuntu apt cycle-de-vie debian 17/06/2026 APT : Guide complet de la gestion des paquets sous Debian et Ubuntu administration apt debian 17/06/2026 SHELL : Guide des commandes les plus usuelles et commandes couteau suisse awk bash commandes 17/06/2026 SUDO : implémentation et sécurisation des accès sur Debian/Ubuntu administration audit authentification 17/06/2026 ProFTPd : authentification MySQL centralisée, FTPs (SSL) et SFTP sur Debian/Ubuntu authentification debian ftp 09/06/2026 Fail2ban — configuration avancée et filtres personnalisés bruteforce debian fail2ban 07/06/2026 Docker : comment récupérer de l'espace disque cache conteneurs debian 07/06/2026 Graylog 7 — Centralisation et analyse de logs : l'alternative à ELK sur Debian/Ubuntu centralisation debian elk 07/06/2026 OpenZFS : tiering avec L2ARC et SLOG pour les workloads mixtes cache l2arc nvme 07/06/2026 Scripting Bash avancé — pièges, bonnes pratiques et optimisation automatisation bash bonnes-pratiques 07/06/2026 AppArmor sur Debian/Ubuntu : profils, modes et confinement applicatif apparmor audit confinement 07/06/2026 Durcissement SSH — au-delà des clés publiques 2fa authentification cryptographie 27/05/2026 LXD 6.x : orchestration de conteneurs Linux avec profils et clustering administration clustering conteneurs 27/05/2026 Keepalived — VIP flottante et load balancing sans matériel dédié debian failover haute-disponibilité 27/05/2026 Btrfs sur Linux — snapshots, sous-volumes et compression en pratique administration btrfs compression 21/05/2026 CVE-2026-42945 (NGINX Rift) : analyse et remédiation sur Debian/Ubuntu cve debian heap-overflow 21/05/2026 Tuning kernel Linux — paramètres sysctl essentiels pour la production debian kernel mémoire 21/05/2026 DRBD : réplication de blocs entre deux serveurs en temps réel cluster debian drbd 15/05/2026 CVE-2026-23918 — vulnérabilité Apache 2.4.66 : analyse et correctifs sur Debian/Ubuntu (hors Debian 11) apache cve debian 15/05/2026 CVE-2026-31431 (Copy Fail) — Analyse et remédiation sur Debian/Ubuntu algif_aead copy-fail cve 12/05/2026 Pacemaker et Corosync — cluster haute disponibilité Linux cluster corosync debian 12/05/2026 WireGuard : monter un VPN mesh entre plusieurs serveurs Linux chiffrement linux mesh 12/05/2026 Netdata — monitoring temps réel sans configuration complexe alertes dashboard linux 12/05/2026 nftables en pratique — remplacer iptables sur Debian/Ubuntu debian firewall iptables 12/05/2026 Podman : alternative rootless à Docker — installation et migration conteneurs docker kubernetes 02/05/2026 Prometheus et Grafana sur Debian — installation, configuration et dashboards pratiques alertmanager dashboard debian 02/05/2026 Ansible : automatiser la gestion de serveurs Linux avec des playbooks administration ansible automation 28/04/2026 ZFS sur Linux : snapshots, clones et RAID-Z en pratique administration compression filesystem 28/04/2026 eBPF sur Linux : observabilité et traçage kernel avec bpftrace et BCC bcc bpftrace diagnostic 23/04/2026 Analyse de la mémoire sur Linux — vmstat, free, smem diagnostic mémoire monitoring 23/04/2026 Sécurité Linux — Firewall iptables et nftables firewall iptables nftables 23/04/2026 ZFS sur Linux — Installation et gestion avancée administration filesystem stockage 23/04/2026 Gestion des services avec systemd sur Debian et Ubuntu administration debian services 23/04/2026 Gestion des ressources cgroups v1/v2 avec LXC cgroups conteneurs lxc 23/04/2026 Centralisation logs avec ELK Stack — Elasticsearch, Kibana, Filebeat elasticsearch elk filebeat 23/04/2026 Supervision avec Zabbix 7.0 LTS sur Debian/Ubuntu debian monitoring supervision 23/04/2026 Plusieurs versions PHP-FPM sur Apache Debian/Ubuntu apache debian php-fpm 23/04/2026 Sécurisation avancée PHP-FPM — Multi-VirtualHosts Apache/Nginx apache nginx php-fpm 23/04/2026 Optimisation PHP-FPM — Guide de tuning d'un pool optimisation performance php-fpm 29/07/2025 Docker sur Debian/Ubuntu : Installation, Configuration et Utilisation conteneurs debian docker 03/07/2025 Serveur VPN WireGuard sous linux réseau sécurité vpn 03/07/2025 Authentification par clé publique sur un serveur SSH authentification cryptographie sécurité 27/06/2025 Surveillance et diagnostic d’un serveur Linux avec vmstat, iotop et htop diagnostic htop monitoring 27/06/2025 Mémoire : Utilisation des Huge Pages et implémentation hugepages mémoire noyau 27/06/2025 Mémoire Swap et paramétrage swappiness mémoire noyau performance 18/06/2025 Installation et Configuration des Conteneurs LXC sur Linux administration conteneurs lxc 18/06/2025 Gestion des journaux avec syslog et journalctl administration journalctl logs