Outils pour utilisateurs

Outils du site


article:vps_en_routeur_ip_via_wireguard

Ceci est une ancienne révision du document !


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.

article/vps_en_routeur_ip_via_wireguard.1791356472.txt.gz · Dernière modification : de bernard.rolland