Installer un VPN WireGuard sur son VPS
WireGuard est devenu le standard du VPN léger : quelques lignes de configuration, un chiffrement moderne et des débits proches de ceux du lien réseau. Sur un VPS, il sert à deux choses très différentes : faire sortir votre trafic par l'IP du serveur, ou réserver l'accès à vos services d'administration aux seules machines connectées au tunnel.
Installer WireGuard et générer les clés
apt update && apt install -y wireguard
cd /etc/wireguard
umask 077
wg genkey | tee server.key | wg pubkey > server.pub
wg genkey | tee client.key | wg pubkey > client.pubumask 077 évite que les clés soient lisibles par les autres utilisateurs de la machine. Une clé privée qui traîne en lecture publique, c'est un VPN ouvert à tous.
Configurer le serveur
Créez /etc/wireguard/wg0.conf. Remplacez eth0 par le nom de votre interface réseau, que ip route vous donnera :
[Interface]
Address = 10.66.0.1/24
ListenPort = 51820
PrivateKey = CONTENU_DE_server.key
PostUp = iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
[Peer]
PublicKey = CONTENU_DE_client.pub
AllowedIPs = 10.66.0.2/32- 1Activez le routage :
echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/99-wg.conf && sysctl --system. - 2Ouvrez le port :
ufw allow 51820/udp. - 3Démarrez le tunnel au boot :
systemctl enable --now wg-quick@wg0. - 4Contrôlez l'état :
wg show.
Configurer un client
Sur votre ordinateur ou votre téléphone, installez l'application WireGuard officielle et créez un tunnel avec cette configuration :
[Interface]
Address = 10.66.0.2/24
PrivateKey = CONTENU_DE_client.key
DNS = 9.9.9.9
[Peer]
PublicKey = CONTENU_DE_server.pub
Endpoint = IP_DU_VPS:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25- AllowedIPs = 0.0.0.0/0 fait passer tout votre trafic par le VPS. Pour n'y router que le réseau privé, mettez
10.66.0.0/24à la place. - DNS évite les fuites de requêtes DNS vers votre fournisseur d'accès. Indiquez un résolveur public ou le vôtre.
- Pour ajouter un appareil, générez une nouvelle paire de clés, ajoutez un bloc
[Peer]sur le serveur et donnez-lui sa propre adresse, par exemple10.66.0.3/32.
Vérifiez le résultat en ouvrant un site qui affiche votre adresse IP : elle doit être celle du VPS. Si l'IP reste la vôtre, le trafic ne passe pas par le tunnel.
Réserver l'administration au tunnel
C'est l'usage le plus utile sur un serveur de production : vos interfaces sensibles ne sont plus exposées sur Internet, mais uniquement joignables depuis le VPN. Par exemple pour SSH et un panel web :
ufw allow in on wg0 to any port 22
ufw allow in on wg0 to any port 8080
ufw deny 8080Gardez un accès de secours, console du fournisseur ou seconde règle temporaire, avant de fermer SSH sur l'interface publique. C'est la meilleure façon de ne pas s'enfermer dehors.
Pour aller plus loin sur le durcissement du serveur, voyez notre guide premiers pas sur un VPS Linux.
Dépannage
- Le tunnel monte mais rien ne passe : le routage n'est pas activé, ou la règle de masquage cible la mauvaise interface.
- La connexion se fige après quelques minutes : ajoutez
PersistentKeepalive = 25côté client. - Certains sites ne chargent pas, d'autres oui : c'est un souci de MTU. Ajoutez
MTU = 1380dans la section[Interface]du client. - Aucun échange récent dans
wg show: le port 51820 en UDP est probablement bloqué en amont.
Questions fréquentes
WireGuard ou OpenVPN, lequel choisir ?+
WireGuard est plus simple à configurer, plus rapide et son code est bien plus court, donc plus facile à auditer. OpenVPN garde l'avantage sur la traversée de pare-feux très restrictifs, car il peut se faire passer pour du trafic HTTPS sur le port 443.
Combien d'appareils peut-on connecter ?+
Autant que vous voulez : chaque appareil est un bloc [Peer] avec sa propre paire de clés et sa propre adresse dans le réseau du tunnel. La limite pratique est la bande passante de votre VPS.
Un VPN sur mon VPS me rend-il anonyme ?+
Non. Votre trafic sort avec l'IP du VPS, et cette IP vous est attribuée personnellement. Un VPN auto-hébergé protège surtout sur les réseaux publics et sert à accéder à vos services privés, il ne procure pas d'anonymat.
Peut-on héberger un VPN et un serveur de jeu sur le même VPS ?+
Oui, les deux cohabitent sans problème sur des ports différents. Surveillez simplement la bande passante : un VPN qui sert à regarder des vidéos consomme bien plus que votre serveur de jeu.