Ceci est une ancienne révision du document !
Wireguard
Installer le paquet wireguard.
Topologie avec un serveur central
Wireguard: hub-and-spoke configuration
A et B sont tous les deux derrière un NAT et un pare-feu et ont une adresse IP publique dynamique. Ils vont communiquer via Wireguard par le biais d'un serveur C, accessible publiquement, avec une adresse IP fixe.
Génération des clés
Sur chaque machine, générer une paire de clés publique/privée:
(umask 077; wg genkey > endpoint-a.key) wg pubkey < endpoint-a.key > endpoint-a.pub
Les fichiers ne sont pas nécessaires, c'est ce qu'ils contiennent qui va être nécessaire dans les fichiers de configuration.
Configuration
Sur le serveur C:
- /etc/wireguard/wg0.conf
# la configuration de C, le serveur [Interface] PrivateKey = <la clé privée de C> Address = 10.0.0.1/32 ListenPort = 51823 # la configuration de A, un client [Peer] PublicKey = <la clé publique de A> AllowedIPs = 10.0.0.2/32 # la configuration de B, un autre client [Peer] PublicKey = <la clé publique de B> AllowedIPs = 10.0.0.3/32
Ajouter `net.ipv4.ip_forward=1` à `/etc/sysctl.conf`.
Sur le client A:
- /etc/wireguard/wg0.conf
# la configuration de A, un client [Interface] PrivateKey = <la clé privée de A> Address = 10.0.0.2/32 ListenPort = 51823 # la configuration de C, le serveur [Peer] PublicKey = <la clé publique de C> Endpoint = 192.168.1.100:51823 AllowedIPs = 10.0.0.1/32, 10.0.0.3/32 PersistentKeepalive = 25
AllowedIPscontient les adresses IP que le serveur C va router au sein du VPN.PersistentKeepalivepermet d'initier automatiquement la connexion des clients au serveur et de la maintenir fonctionnelle. Sans cela, A ne pourra parler à B en passant par C que si B a déjà parlé à C auparavant.
Adapter pour le client B.
Démarrage
Sur toutes les machines:
sudo systemctl enable wg-quick@wg0.service sudo systemctl start wg-quick@wg0.service sudo journalctl -u wg-quick@wg0.service