J'ai la version CentOS 7.6 et j'ai installé le serveur test Wireguard VPN. L'ensemble de l'installation et de la configuration est assez facile, du moins selon la documentation, donc ce que j'ai fait, j'ai installé wireguard-tools, wireguard-dkms et linux-headers
l'étape suivante était de générer la clé privée et publique du serveur et d'écrire la configuration du serveur comme :
[Interface]
Address = 10.7.0.1/24
ListenPort = 34777
PrivateKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
[Peer]
PublicKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
AllowedIPs = 10.7.0.2/32
[Peer]
PublicKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
AllowedIPs = 10.7.0.3/32
[Peer]
PublicKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
AllowedIPs = 10.7.0.4/32
[Peer]
PublicKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
AllowedIPs = 10.7.0.5/32
du côté serveur, j'ai ouvert le port 34777 udp sur un pare-feu et défini sysctl -w net.ipv4.ip_forward (pour activer le transfert) car ce serveur devrait supposer de transférer le trafic du client vers d'autres serveurs dans le sous-réseau du serveur VPN.
Imaginons maintenant que l'IP publique de ce serveur est 11.11.11.11/23
Côté client, la configuration ressemble à ceci :
[Interface]
Address = 10.7.0.4/24
PrivateKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
[Peer]
PublicKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
AllowedIPs = 10.7.0.1/32,11.11.11.0/23 (for having route to 11.11.11.0/23 subnet) or 0.0.0.0/0
Endpoint = 11.11.11.11:34777
maintenant 0.0.0.0/0 signifie que je vais transférer tout le trafic vers mon VPN (ce n'est pas obligatoire), cela peut être un tunnel partagé…. ce que je ne comprends pas, quand je me connecte, je peux pinger l'interface du serveur 10.7.0.1, mais je ne peux rien pinger du réseau 11.11.11.0/23.
Le réseau 11.11.11.0/23 étant public, il n'y a pas de NAT.
Également à mentionner, sur le CentOS j'utilise firewalld au lieu d'iptables.
Comment et pourquoi ne puis-je pas voir le réseau interne derrière l'interface tunnel ?
imaginez à quoi ressemble la configuration :
PS Sur la photo, entre l'hôte A et le serveur Wireguard, il y a un autre routeur Linux (un routeur principal), alors gardez cela à l'esprit.
Réponse acceptée :
Après tant d'essais et d'échecs et de remue-méninges avec les gars de Wireguard IRC Channel, j'ai apparemment oublié d'ajouter une route statique pour 10.7.0.0/24 pour chaque serveur derrière Wireguard. Ping va au serveur, mais ne revient pas car le serveur ne sait pas où envoyer cette réponse en écho :
ip route add 10.7.0.0/24 via 11.11.11.11 dev eth0 (main device for communication)
Pour moi, problème résolu 😉