WireGuard est un protocole VPN moderne, rapide, compact et simple à configurer. En exécuter un vous-même sur un VPS vous donne un tunnel chiffré vers un serveur situé dans le pays de votre choix, sans société de VPN tierce au milieu. Ce guide utilise Ubuntu 24.04 ou Debian 12/13 et suppose que vous avez déjà sécurisé le serveur.
1. Installer WireGuard
sudo apt update
sudo apt install -y wireguard
2. Générer les clés du serveur
cd /etc/wireguard
umask 077
wg genkey | tee server.key | wg pubkey > server.pub
umask 077 garantit que les fichiers de clés ne sont lisibles que par root. Gardez server.key privé.
3. Créer les clés du client
Générez une paire de clés pour votre ordinateur portable ou votre téléphone sur le serveur, puis copiez ensuite la configuration client :
wg genkey | tee client1.key | wg pubkey > client1.pub
4. Écrire la configuration du serveur
Trouvez d’abord le nom de votre interface réseau publique :
ip route get 1.1.1.1 | awk '{print $5; exit}'
C’est souvent eth0 ou ens3. Créez /etc/wireguard/wg0.conf et remplacez les valeurs en majuscules par les vôtres :
[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = SERVER_PRIVATE_KEY
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ETH_IF -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o ETH_IF -j MASQUERADE
[Peer]
# client1
PublicKey = CLIENT1_PUBLIC_KEY
AllowedIPs = 10.8.0.2/32
Collez le contenu de server.key et client1.pub aux endroits indiqués, et remplacez ETH_IF par le nom de votre interface.
5. Activer le routage IP
echo "net.ipv4.ip_forward=1" | sudo tee /etc/sysctl.d/99-wireguard.conf
sudo sysctl --system
6. Ouvrir le pare-feu
sudo ufw allow 51820/udp
sudo ufw route allow in on wg0
sudo ufw reload
7. Démarrer le tunnel
sudo systemctl enable --now wg-quick@wg0
sudo wg show
Vous devriez voir l’interface et, une fois qu’un client se connecte, son dernier handshake.
8. Configurer le client
Sur votre appareil, créez une configuration comme celle-ci (les applications WireGuard officielles pour Windows, macOS, Linux, iOS et Android peuvent l’importer depuis un fichier ou un code QR) :
[Interface]
Address = 10.8.0.2/24
PrivateKey = CLIENT1_PRIVATE_KEY
DNS = 1.1.1.1
[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = YOUR_SERVER_IP:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25
AllowedIPs = 0.0.0.0/0, ::/0 envoie tout le trafic par le tunnel. Pour n’atteindre que votre réseau privé, utilisez plutôt 10.8.0.0/24.
9. Le tester
- Activez le tunnel sur le client.
- Exécutez
sudo wg showsur le serveur et vérifiez qu’il y a un handshake récent. - Visitez une page « quelle est mon IP » depuis le client. Elle doit afficher l’adresse de votre serveur.
- Recherchez des fuites DNS si la confidentialité est votre objectif, et ajoutez des règles IPv6 si votre serveur dispose d’IPv6.
Ajouter d’autres appareils
Pour chaque nouvel appareil, générez une paire de clés, ajoutez un autre bloc [Peer] avec une nouvelle adresse telle que 10.8.0.3/32, et exécutez sudo wg syncconf wg0 <(wg-quick strip wg0) pour l’appliquer sans couper les connexions existantes.
Choisir un emplacement
Un serveur WireGuard fonctionne depuis n’importe lequel de nos emplacements. Choisissez-en un proche de vous pour la vitesse, ou dans le pays dont vous voulez que votre trafic utilise l’adresse IP. Voir comment choisir un emplacement de VPS. Un petit VPS suffit largement pour un tunnel personnel.