Guide de déploiement

Mettre en place un VPN WireGuard sur votre VPS

Déployer sur un VPS Cloud →

Sécurité & Monitoring7 min de lecture

Mettre en place un VPN WireGuard sur votre VPS

WireGuard a redéfini le VPN moderne : quelques centaines de lignes de code, un chiffrement à l'état de l'art et des débits proches du débit natif. Self-hébergé sur un VPS, il vous offre un tunnel privé que vous contrôlez de bout en bout, sans dépendre d'un fournisseur tiers.

Pourquoi self-héberger WireGuard sur un VPS

Les VPN commerciaux mutualisent des milliers d'utilisateurs sur les mêmes adresses IP, conservent souvent des journaux et bridagent la bande passante. En déployant WireGuard sur votre propre VPS, vous obtenez une adresse IP de sortie dédiée, un débit garanti par votre plan et une politique de logs que vous définissez vous-même. WireGuard fonctionne en UDP sur un seul port, s'intègre directement au noyau Linux et négocie une connexion en une fraction du temps d'OpenVPN. Pour un développeur ou une agence, c'est aussi le moyen le plus propre d'accéder à des services internes (base de données, panel d'admin, monitoring) sans les exposer publiquement : on les bind sur l'interface VPN uniquement.

Bénéfices concrets d'un WireGuard auto-hébergé

  • IP de sortie dédiée et stable, idéale pour whitelister des accès API ou des back-offices.
  • Chiffrement ChaCha20-Poly1305 moderne avec une surface d'attaque minimale (4 000 lignes de code).
  • Débits proches du natif et reconnexion quasi instantanée après une coupure réseau (roaming).
  • Accès privé à vos services internes en les bindant sur le sous-réseau VPN (10.0.0.0/24) plutôt que sur 0.0.0.0.
  • Aucun journal d'activité tiers : vous maîtrisez entièrement la conservation des données.
  • Coût fixe et prévisible, indépendant du nombre d'appareils connectés.

Prérequis pour ce déploiement

WireGuard est extrêmement léger : un VPS avec 1 vCPU et 1 Go de RAM suffit largement pour une dizaine de clients, le facteur limitant étant la bande passante plutôt que le CPU. Prévoyez Docker et Docker Compose installés (ou le paquet wireguard-tools natif), un noyau Linux récent (5.6+ intègre WireGuard nativement) et l'ouverture d'un port UDP, par convention 51820. Un nom de domaine pointant vers votre VPS (un enregistrement A vpn.mondomaine.ma) est recommandé pour distribuer les configurations clients, mais l'IP publique seule fonctionne aussi.

Déployer WireGuard en conteneur

01

Activer le forwarding IP sur le VPS

Le serveur doit router le trafic du tunnel vers Internet. Ajoutez net.ipv4.ip_forward=1 dans /etc/sysctl.conf puis appliquez avec sudo sysctl -p. Sans cela, les clients se connectent mais n'ont aucun accès sortant.

02

Lancer le conteneur wg-easy

Le projet wg-easy fournit WireGuard plus une interface web de gestion des pairs. Dans un docker-compose.yml, définissez WG_HOST=vpn.mondomaine.ma, un mot de passe d'admin et exposez 51820/udp ainsi que 51821/tcp pour l'UI. Démarrez avec docker compose up -d.

03

Ouvrir le port UDP au pare-feu

Autorisez le trafic entrant sur le port du tunnel : sudo ufw allow 51820/udp. Restreignez en revanche l'accès à l'UI d'admin (51821) à votre seule IP ou placez-la derrière le VPN une fois le premier client connecté.

04

Protéger l'interface d'administration par SSL

Placez un reverse proxy (Caddy ou Traefik) devant le port 51821 pour servir l'UI en HTTPS sur vpn.mondomaine.ma avec un certificat Let's Encrypt automatique. Ne laissez jamais le panneau d'admin accessible en HTTP clair sur Internet.

05

Créer un pair et importer la configuration

Depuis l'UI, ajoutez un client : wg-easy génère une paire de clés et un QR code. Scannez-le avec l'application WireGuard mobile, ou téléchargez le fichier .conf pour wg-quick up. Le client est opérationnel immédiatement.

06

Vérifier le tunnel

Une fois connecté, contrôlez votre IP publique de sortie (elle doit être celle du VPS) et l'état du handshake côté serveur avec docker exec wg-easy wg show. Une valeur de latest handshake récente confirme que le tunnel est actif.

Pour transformer votre VPN en passerelle d'accès aux services internes sans tout exposer, n'autorisez dans AllowedIPs du client que le sous-réseau VPN (par exemple 10.8.0.0/24) au lieu de 0.0.0.0/0. Vous obtenez ainsi un tunnel "split" : seul le trafic vers vos services privés passe par le VPS, le reste de votre navigation sort par votre connexion locale. Combinez-le avec un kill-switch via PostUp/PostDown pour éviter toute fuite si le tunnel tombe.

Lancez votre VPN en quelques minutes

Un VPS Cloud ServOrbit avec un template Docker préconfiguré vous permet de déployer WireGuard sans friction : noyau récent, port UDP disponible et bande passante généreuse pour vos tunnels.

Besoin d'aide ?

Parcourez notre centre d'aide et notre FAQ, ou écrivez à notre équipe — support en anglais, français et arabe.