Tunnel divisé WireGuard : le configurer sans route par défaut
Un tunnel divisé, c'est la liste de préfixes que vous laissez de côté. Placez les plages distantes côté pair client, l'adresse du client côté pair serveur, puis lisez les routes.
Un tunnel divisé se définit par ce que vous laissez de côté, et WireGuard prend cette décision dans un seul champ. AllowedIPs du pair client sélectionne à la fois les destinations qui passent par le tunnel et filtre les adresses sources internes acceptées, et wg-quick transforme la même liste en routes d'hôte. Si la liste est fausse, le tunnel avale tout ou ne transporte rien.
Décidez d'abord la liste de préfixes
Notez les destinations qui doivent utiliser le tunnel avant de toucher un fichier de configuration. Sous-réseaux de bureau, plage de base de données, réseau de gestion : chacun est un préfixe avec une raison. Tout ce qui n'est pas dans la liste reste sur le chemin physique, et c'est tout l'intérêt de la conception.
Si la liste contient 0.0.0.0/0 ou ::/0, vous avez construit un tunnel complet et devriez le dire, car les modes de défaillance et les attentes DNS diffèrent.
Gardez la liste assez courte pour qu'un relecteur puisse la comparer plus tard à la table de routage.
Configuration du client : pair, AllowedIPs, DNS
Le bloc d'interface du client contient sa propre adresse de tunnel et sa clé privée. Le bloc de pair contient la clé publique du serveur, le point de terminaison et les préfixes de la première étape :
[Interface]
Address = 10.9.0.2/32
PrivateKey = <client-private-key>
DNS = 10.20.0.53
[Peer]
PublicKey = <server-public-key>
Endpoint = vpn.example.net:51820
AllowedIPs = 10.20.0.0/16, 10.30.0.0/24
PersistentKeepalive = 25
AllowedIPs côté client est l'ensemble des destinations distantes, pas l'adresse propre du client. La ligne DNS n'agit que via l'intégration du résolveur de wg-quick, donc un hôte sans prise en charge de resolvconf ou systemd-resolved l'ignorera. PersistentKeepalive maintient une correspondance NAT active et est inutile sur un chemin direct.
Commentez chaque préfixe avec le service qu'il dessert, sinon la prochaine modification sera une devinette.
Configuration du serveur : le point de vue opposé
Sur le serveur, l'entrée de pair représente le client, donc son AllowedIPs est l'adresse de tunnel du client, généralement un /32. Ce n'est pas le sous-réseau du bureau. Copier la liste du client dans l'entrée du serveur est l'erreur la plus courante du tunnel divisé, et elle élargit l'accès ou casse la vérification de la source interne lors de la poignée de main.
L'adresse d'interface du serveur et les routes dont il a besoin vers le bureau sont distinctes de toute entrée de pair.
Deux fichiers, deux points de vue, un jeu de préfixes réparti entre eux.
Montez-le et lisez les routes
Démarrez l'interface avec le gestionnaire pris en charge, puis regardez ce qu'il a installé plutôt que ce que vous vouliez. wg-quick dérive les routes d'AllowedIPs ; si le profil définit Table = off, rien n'est installé et le routage vous revient. Lisez la route de chaque préfixe et confirmez qu'elle pointe vers l'interface WireGuard. Une liste de routes vide signifie généralement que le profil appliqué n'est pas celui que vous avez modifié.
Vérifiez aussi les compteurs de poignée de main, car un pair sans poignée de main a un problème de clé, de point de terminaison ou d'accessibilité, pas de routage.
Écrivez la commande exacte que vous avez utilisée, car la personne suivante l'exécutera sous pression.
Vérifiez les deux côtés, puis consignez le retour arrière
Testez une adresse privée, son nom interne et une destination qui doit rester directe. Si l'adresse privée fonctionne et que la destination directe sort désormais par le tunnel, la liste de préfixes est trop large. Si le nom échoue alors que l'adresse fonctionne, la ligne DNS n'a pas pris effet. Le retour arrière est une commande, et il appartient à la même note.
Après une reconnexion, confirmez que les routes sont toujours là, car un gestionnaire qui réapplique le profil peut remplacer les routes manuelles.
Gardez un seul propriétaire de la configuration, car deux gestionnaires produisant la même interface finiront par se contredire. Le manuel de wg-quick documente le comportement des routes et du DNS qu'il fournit.