Ceci est une ancienne révision du document !
Table des matières
Guide de Post-Installation : VPS Passerelle Multi-Clients (WireGuard)
Ce guide documente la configuration pas à pas d'un VPS Linux vierge pour en faire un concentrateur réseau. L'objectif est de partager l'unique IP publique du VPS avec plusieurs PC distants ou VM conteneurs connectés via WireGuard.
| Composant | Rôle matériel | Statut système |
|---|
| Réseau Hôte | IP Publique unique (ex: 185.X.X.X) sur l'interface principale (ex: eth0) | Physique |
| Sous-réseau VPN | Plage 10.66.66.0/24 dédiée à l'interface virtuelle wg0 | Virtuel |
1. Préparation du Système (Forwarding Kernel)
Par défaut, Linux refuse de faire passer des paquets réseau d'une interface à une autre (il bloque le routage entre l'IP publique et le VPN). Il faut activer le IP Forwarding.
Exécuter cette commande pour l'activer de manière permanente :
echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf sudo sysctl -p
Vérification : La commande sysctl net.ipv4.ip_forward doit renvoyer 1.
2. Installation de WireGuard (Serveur)
Installer les paquets nécessaires (valable pour Debian/Ubuntu. Pour Fedora, remplacer apt par dnf) :
sudo apt update && sudo apt install wireguard iptables -y
Génération des clés de sécurité du serveur
Créer les clés de chiffrement asymétriques pour le VPS :
cd /etc/wireguard umask 077 wg genkey | tee server_private.key | wg pubkey > server_public.key
3. Fichier de Configuration Global (wg0.conf)
Créer le fichier de configuration principal qui va piloter le réseau et le partage d'IP (NAT/Masquerade).
Attention : Remplacer eth0 par le nom réel de votre interface réseau publique (vérifiable avec la commande ip route get 8.8.8.8).
sudo nano /etc/wireguard/wg0.conf
Y insérer le contenu suivant :
[Interface] Address = 10.66.66.1/24 ListenPort = 51820 PrivateKey = <CONTENU_DE_SERVER_PRIVATE_KEY> # RÈGLES DE PARTAGE D'IP (NAT / MASQUERADE) # À l'allumage du VPN : Autorise le trafic et active le partage de l'IP publique (eth0) PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE # À l'extinction du VPN : Nettoie les règles du pare-feu PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE # ------------------------------------------------------------- # DÉCLARATION DES CLIENTS (PEERS) # ------------------------------------------------------------- # Client 1 : YunoHost Maison de l'utilisateur A [Peer] PublicKey = <PUBLIC_KEY_DU_CLIENT_1> AllowedIPs = 10.66.66.2/32 # Client 2 : VM Conteneur de l'utilisateur B [Peer] PublicKey = <PUBLIC_KEY_DU_CLIENT_2> AllowedIPs = 10.66.66.3/32 # Client 3 : PC Portable de Secours [Peer] PublicKey = <PUBLIC_KEY_DU_CLIENT_3> AllowedIPs = 10.66.66.4/32
4. Démarrage et Automatisation
Activer le service pour qu'il se lance automatiquement à chaque démarrage du VPS :
sudo systemctl enable --now wg-quick@wg0
Commandes de vérification utiles
* Voir l'état du tunnel et les clients connectés en temps réel :
sudo wg show
* Vérifier que les règles de partage d'IP (NAT) sont bien actives dans le système :
sudo iptables -t nat -L -n -v
5. Modèle de Configuration pour un Client (ex: Client 1)
Sur la machine cliente (le PC distant ou le conteneur), installer WireGuard et créer le fichier /etc/wireguard/wg0.conf avec ce modèle :
[Interface] Address = 10.66.66.2/24 PrivateKey = <PRIVATE_KEY_GÉNÉRÉE_SUR_LE_CLIENT> [Peer] PublicKey = <PUBLIC_KEY_DU_SERVEUR_VPS> Endpoint = <IP_PUBLIQUE_DU_VPS>:51820 AllowedIPs = 10.66.66.0/24 PersistentKeepalive = 25
Note : L'option PersistentKeepalive = 25 est cruciale pour les machines derrière une Box Internet ou un NAT. Elle envoie un ping toutes les 25 secondes pour forcer le tunnel à rester ouvert en permanence.
