Créer un serveur VPN sur VPS avec WireGuard

Monter un serveur VPN WireGuard VPS reste en 2026 la methode la plus efficace pour securiser vos acces distants, chiffrer votre trafic et relier plusieurs sites sans complexite. WireGuard s'impose par sa simplicite, sa base de code reduite et ses performances superieures aux protocoles historiques. Ce tutoriel detaille l'installation complete sur un VPS Linux, la configuration client et le durcissement de l'ensemble.
Pourquoi choisir WireGuard pour un serveur VPN sur VPS
WireGuard est un protocole VPN moderne integre directement au noyau Linux depuis la version 5.6. Contrairement a OpenVPN ou IPsec, il repose sur une base de code de quelques milliers de lignes, ce qui reduit la surface d'attaque et facilite l'audit. Pour un administrateur systeme, cela signifie moins de configuration, moins de couches et un debogage nettement plus rapide.
Les avantages techniques concrets
- Performances : chiffrement ChaCha20-Poly1305 optimise, latence faible et debit proche du fil.
- Simplicite : une paire de cles par pair, une configuration lisible en quelques lignes.
- Roaming : la connexion survit aux changements d'IP client (mobile, wifi, 4G).
- Integration kernel : le module tourne en espace noyau, ce qui limite le cout CPU.
Le role du VPS dans l'equation
Un VPN a besoin d'une bande passante stable et d'une latence maitrisee. Un VPS Linux OmegaCloud sur stockage SSD SAS avec plusieurs Gbps d'uplink et des datacenters en Europe offre exactement ce socle. La faible latence intra-datacenter et l'uplink redondant garantissent une session VPN fluide, meme avec plusieurs pairs connectes simultanement.
Point important : l'anti-DDoS volumetrique est deja gere cote infrastructure. Vous n'avez donc pas a vous soucier de la mitigation reseau : elle est transparente et active par defaut. Votre travail se concentre sur le durcissement applicatif et systeme.
Installer un serveur VPN WireGuard VPS pas a pas
Nous partons d'un VPS sous Debian 12 ou Ubuntu 24.04, avec un acces root SSH. Les commandes sont identiques sur Rocky et Alma a l'exception du gestionnaire de paquets.
1. Mise a jour et installation des paquets
apt update && apt upgrade -y
apt install wireguard wireguard-tools -y
Le paquet wireguard-tools fournit l'utilitaire wg et wg-quick, indispensables pour la gestion des interfaces.
2. Activation du routage IP
Pour que le VPS route le trafic des clients vers Internet, activez le forwarding IPv4 (et IPv6 si besoin) :
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
echo "net.ipv6.conf.all.forwarding = 1" >> /etc/sysctl.conf
sysctl -p
3. Generation des cles serveur
cd /etc/wireguard
umask 077
wg genkey | tee server_private.key | wg pubkey > server_public.key
cat server_private.key
cat server_public.key
Le umask 077 garantit que les fichiers de cles ne sont lisibles que par root. Ne partagez jamais la cle privee.
4. Configuration de l'interface serveur
Creez le fichier /etc/wireguard/wg0.conf. Adaptez eth0 au nom reel de votre interface reseau (verifiable avec ip a).
[Interface]
Address = 10.10.0.1/24
ListenPort = 51820
PrivateKey = CLE_PRIVEE_SERVEUR
PostUp = iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
Le sous-reseau 10.10.0.0/24 est prive et interne au tunnel. Le port UDP 51820 est le port par defaut de WireGuard.
5. Activation du service
systemctl enable wg-quick@wg0
systemctl start wg-quick@wg0
systemctl status wg-quick@wg0
Verifiez que l'interface est bien montee :
wg show
Configurer les clients et securiser le tunnel
Un serveur VPN sans pair configure ne sert a rien. Chaque client (laptop, mobile, autre serveur) possede sa propre paire de cles. La logique WireGuard est symetrique : chaque pair connait la cle publique de l'autre.
Generer les cles cote client
wg genkey | tee client_private.key | wg pubkey > client_public.key
Fichier de configuration client
[Interface]
Address = 10.10.0.2/24
PrivateKey = CLE_PRIVEE_CLIENT
DNS = 9.9.9.9
[Peer]
PublicKey = CLE_PUBLIQUE_SERVEUR
Endpoint = IP_PUBLIQUE_VPS:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25
La directive AllowedIPs = 0.0.0.0/0 route tout le trafic du client via le VPN. Pour un tunnel split (seulement le reseau interne), remplacez-la par 10.10.0.0/24. Le PersistentKeepalive maintient la session ouverte derriere un NAT.
Declarer le client cote serveur
Ajoutez le bloc suivant a la fin de /etc/wireguard/wg0.conf puis rechargez :
[Peer]
PublicKey = CLE_PUBLIQUE_CLIENT
AllowedIPs = 10.10.0.2/32
wg syncconf wg0 <(wg-quick strip wg0)
Durcissement du pare-feu
Ouvrez uniquement le port WireGuard et le port SSH. Utilisez ufw pour aller vite :
ufw allow 22/tcp
ufw allow 51820/udp
ufw enable
ufw status verbose
Pour un controle plus fin, nftables permet d'ecrire des regles explicites et versionnables. La documentation officielle de wg detaille chaque directive utile.
Bonnes pratiques de securite
- Desactivez l'authentification SSH par mot de passe et passez en cles SSH uniquement via
ssh-keygen -t ed25519. - Installez fail2ban pour bloquer les tentatives de brute force sur SSH.
- Activez la 2FA sur votre panel de gestion.
- Ne modifiez le port UDP par defaut que si vous documentez le changement cote clients.
apt install fail2ban -y
systemctl enable --now fail2ban
Rappel : la mitigation DDoS volumetrique est prise en charge au niveau reseau par l'infrastructure. Votre pare-feu local se concentre donc sur le filtrage des ports et le controle d'acces, pas sur l'absorption d'attaques de saturation.
Comparaison synthetique des criteres d'un bon VPS pour VPN
| Critere | Impact sur le VPN |
|---|---|
| CPU dedie vs partage | Un CPU stable evite les pics de latence lors du chiffrement |
| NVMe Gen4 | Logs et journalisation rapides, pas de goulot disque |
| Anti-DDoS inclus | Session VPN protegee sans configuration supplementaire |
| Localisation datacenter | Faible latence France/UE pour les acces distants |
| Panel de gestion | Reboot, snapshots et console KVM pour restaurer rapidement |
Le panel OmegaCloud permet notamment de prendre un snapshot avant chaque modification sensible de configuration WireGuard. En cas d'erreur de routage qui vous coupe l'acces, la console KVM vous donne un acces hors-bande sans dependre du tunnel.
Verification, automatisation et supervision
Une fois le tunnel etabli, validez son fonctionnement et pensez a l'exploitation dans la duree.
Tester la connexion
Depuis le client, verifiez que le handshake a bien eu lieu :
wg show
ping 10.10.0.1
curl ifconfig.me
Si curl ifconfig.me retourne l'IP publique du VPS, le routage complet fonctionne. Un handshake recent dans wg show confirme la negociation cryptographique.
Automatiser le provisioning
Pour deployer plusieurs serveurs VPN de facon reproductible, industrialisez la generation des configurations via un pipeline. Les integrations & API OmegaCloud exposent une API REST et des webhooks compatibles GitHub Actions et GitLab CI, ce qui permet de creer, rebooter ou reinstaller un VPS de facon programmatique dans vos workflows d'infrastructure.
Superviser l'etat du tunnel
Un simple script cron peut alerter si un pair ne repond plus. Verifiez le dernier handshake :
wg show wg0 latest-handshakes
Combinez cela avec le dashboard temps reel du panel pour surveiller la consommation CPU, RAM et reseau. Un pic reseau anormal sur l'interface publique est souvent le premier signal d'un usage abusif ou d'une mauvaise regle de routage.
Sauvegarde de la configuration
Conservez une copie chiffree de /etc/wireguard/ hors du serveur. En cas de reinstallation en 1 clic, vous restaurez le tunnel en quelques minutes :
tar czf wg-backup.tar.gz /etc/wireguard/
gpg -c wg-backup.tar.gz
Pensez aussi a documenter vos plages IP internes pour eviter les collisions si vous montez plusieurs serveurs VPN WireGuard sur des VPS distincts, notamment dans une topologie site-a-site.
Conclusion
Deployer un serveur VPN WireGuard sur un VPS demande peu d'etapes mais beaucoup de rigueur sur les cles, le routage et le pare-feu. Une fois en place, vous disposez d'un tunnel rapide, chiffre et facile a maintenir. Testez chaque handshake, sauvegardez vos configurations et supervisez le trafic pour garder un service fiable dans le temps.
FAQ
WireGuard consomme-t-il beaucoup de ressources sur un VPS ?
Non. Le module tourne en espace noyau avec un chiffrement optimise, ce qui rend son empreinte CPU tres faible. Un VPS avec quelques vCPU et un uplink de plusieurs Gbps supporte facilement plusieurs dizaines de pairs simultanes sans saturation.
Faut-il ouvrir d'autres ports que le port UDP 51820 ?
Non, hormis le port SSH pour l'administration. WireGuard fonctionne uniquement en UDP sur le port configure. Fermez tout le reste avec ufw ou nftables. La mitigation DDoS volumetrique etant geree cote infrastructure, votre pare-feu se concentre sur le filtrage des acces.
Comment recuperer l'acces si une regle de routage me deconnecte ?
Utilisez la console KVM du panel, qui offre un acces hors-bande independant du reseau et du tunnel. Vous pouvez aussi restaurer un snapshot pris avant la modification, ou reinstaller le VPS en 1 clic puis reimporter votre sauvegarde chiffree de /etc/wireguard/.
Prêt à mettre en pratique ce que vous venez de lire ?
Découvrir nos offres

