Primary Wireguard Topologies
Important
|
Traduction d’un article du site PRO CUSTODIBUS Le contenu de cette page est la traduction Française de l’article Primary Wireguard Topologieswireguard-hub-and-spoke-config/) de Justin Ludwig |
Primary Wireguard topologies
Voici les quatre topologies principales que vous devez prendre en compte pour décider comment connecter deux terminaux sur un réseau WireGuard :
Ils fonctionnent tous pour toutes les raisons habituelles pour lesquelles vous connecteriez deux points de terminaison, comme permettre aux points de terminaison de communiquer via SSH, ou pour qu’un point de terminaison se connecte à un serveur HTTP de l’autre, ou pour qu’un point de terminaison accède aux dossiers partagés d’un autre , etc.
Contrairement à certaines technologies VPN, WireGuard n’a pas de rôles stricts de “client” ou de “serveur”. Tous les pairs WireGuard sont également capables d’effectuer ce que l’on pourrait considérer comme un rôle de “client” ou de “serveur”.
Mais pour garder les choses simples pour cet article, je vais utiliser systématiquement des exemples avec un “Endpoint A”, représentant un endpoint “client” (comme la tablette d’un utilisateur final), se connectant via un tunnel WireGuard à un “Endpoint B”, représentant un point de terminaison “serveur” (comme un serveur exécutant une application Web que l’utilisateur final souhaite utiliser). Et j’utiliserai le port 51821 pour représenter le pair WireGuard exécuté du côté “client” du tunnel, et le port 51822 pour représenter le pair WireGuard du côté “serveur” (et le port 51823 dans le cas où il y a un pair WireGuard intermédiaire entre les deux).
Point to point
La topologie la plus simple est simplement point à point - un point de terminaison exécutant WireGuard connecté directement à un autre point de terminaison exécutant WireGuard. C’est également la seule topologie qui produit un chiffrement E2E (de bout en bout) - toutes les autres topologies impliquent que les paquets WireGuard sont déchiffrés par un intermédiaire à un moment donné entre les points de terminaison.
Dans le scénario point à point le plus simple, les deux points de terminaison seraient sur le même LAN (réseau local), avec tous les pare-feu entre les deux points de terminaison configurés pour permettre à l’un des points de terminaison de se connecter au port WireGuard de l’autre. Dans ce cas, l’un ou l’autre des points de terminaison peut initier une connexion à l’autre à tout moment.
Une topologie maillée n’est en réalité qu’un ensemble de connexions point à point individuelles parmi un groupe de points de terminaison.
Consultez l’article WireGuard Point to Point Configuration pour un exemple de configuration des terminaux avec cette configuration.
Hub and Spoke
La topologie de base suivante est Hub and Spoke (également connue sous le nom de topologie en étoile), où deux points de terminaison exécutant WireGuard sont connectés via un troisième hôte, exécutant également WireGuard. Ce troisième hôte fonctionne comme un routeur parmi les points de terminaison WireGuard qui lui sont connectés, transmettant les paquets qu’il reçoit via un tunnel WireGuard d’un point de terminaison à un deuxième point de terminaison via un tunnel WireGuard différent.
Vous connecteriez souvent plus de deux points de terminaison de cette manière - cette topologie est un bon moyen d’activer la gestion de l’accès à distance parmi un ensemble diversifié de points de terminaison distants ; ou pour créer un LAN virtuel à partir d’un certain nombre d’hôtes distants disparates, avec des règles de routage, un contrôle d’accès et une inspection du trafic tous centralisés en un seul endroit (le concentrateur).
Dans le scénario Hub and Spoke le plus simple, tous les hôtes se trouvent sur le même réseau local, avec tous les pare-feu entre les deux points de terminaison « spoke » (Endpoint A et Endpoint B) et l’hôte « hub » (Host C) configuré pour permettre aux rayons de connecter au concentrateur sur le port WireGuard du concentrateur (51823) et, de la même manière, permettre au concentrateur de se connecter aux rayons sur le port WireGuard de chaque rayon (51821 pour le point de terminaison A et 51822 pour le point de terminaison B).
Une fois que le tunnel WireGuard entre le point de terminaison A et l’hôte C est opérationnel et que le tunnel WireGuard séparé entre le point de terminaison B et l’hôte C est activé, l’hôte C peut acheminer les paquets envoyés du point de terminaison A au point de terminaison B, et vice versa.
Consultez l’article WireGuard Hub and Spoke Configuration pour un exemple de configuration de trois pairs WireGuard avec cette configuration.
Point to Site
Avec une topologie point à site, un point de terminaison distant est connecté via WireGuard à un hôte différent dans un autre réseau, où cet hôte peut acheminer les paquets du point de terminaison distant vers divers autres points de terminaison locaux au sein de son réseau. Point to Site est un peu comme Hub and Spoke, sauf que certains des rayons (ceux sur le même LAN que le hub) n’utilisent pas de tunnel WireGuard.
- un PC distant se connectant à divers serveurs sur un réseau local de bureau (aka Road Warrior)
- un poste de travail dans un LAN de bureau se connectant à plusieurs serveurs dans un réseau cloud (aka Point to Cloud)
- une machine virtuelle cloud se connectant à divers serveurs sur le réseau local de votre bureau
- un serveur cloud se connectant à d’autres serveurs dans un autre réseau cloud
Dans le scénario point à site le plus simple, vous avez un point de terminaison sur lequel WireGuard s’exécute (le « point de terminaison distant », point de terminaison A) connecté directement à un autre hôte exécutant WireGuard (hôte β) ; et cet autre hôte peut servir de routeur vers d’autres points de terminaison au sein du site local (site B), y compris le point de terminaison B (le point de terminaison « local »).
Dans un scénario plus compliqué (et que vous êtes plus susceptible de voir), le point de terminaison distant (point de terminaison A) et le site local (site B) sont derrière des pare-feu et NAT, avec Internet entre les deux. Les pare-feu devant le point de terminaison A n’autorisent que les connexions établies via le point de terminaison A. Le pare-feu devant le site B autorise de nouvelles connexions via le port 51822, où un hôte exécutant WireGuard (hôte β) accepte les connexions WireGuard sur le port 51822 et les routes autorisées le trafic de ses tunnels WireGuard vers les points de terminaison du site (comme le point de terminaison B).
Comme avec le scénario point à point, le point de terminaison A peut initier une nouvelle connexion à tout moment au point de terminaison B. Mais parce que le point de terminaison A est derrière un pare-feu qui n’autorise que les connexions déjà établies, si vous vouliez permettre au point de terminaison B d’initier des connexions au point de terminaison A , vous devez configurer le paramètre PersistentKeepalive sur le point de terminaison A.
Consultez l’article WireGuard Point to Site Configuration pour un exemple de configuration de WireGuard avec cette configuration ; et consultez l’article WireGuard Point to Site Routing pour une comparaison des différentes manières de configurer le routage avec une topologie point à site.
Site to Site
Une topologie de site à site est comme point à site, sauf qu’il y a un site complet aux deux extrémités du tunnel WireGuard. Il s’agit d’un moyen simple de créer une connexion virtuelle LAN à LAN (ou Cloud à Cloud, ou LAN à Cloud, etc.).
Dans un scénario plus compliqué, les deux sites seraient derrière des pare-feu et NAT, avec Internet entre les deux. Le pare-feu devant le site A autorise de nouvelles connexions via le port 51821, où l’hôte α accepte les connexions WireGuard sur le port 51821 et achemine le trafic autorisé de son tunnel WireGuard vers les points de terminaison du site. De même, le pare-feu devant le site B autorise de nouvelles connexions via le port 51822, où l’hôte β accepte le trafic WireGuard vers lui et achemine le trafic autorisé de son tunnel WireGuard vers les points de terminaison du site B.
Dans ce scénario, les hôtes WireGuard pour le site A et le site B vivent tous deux dans une DMZ (zone démilitarisée) de leurs sites respectifs, où ils sont publiquement adressables depuis Internet, mais peuvent également être acheminés vers l’espace d’adressage privé utilisé par leur propre site (ainsi que l’espace d’adressage privé utilisé par les réseaux WireGuard auxquels ils appartiennent).
Le trafic du point de terminaison A au point de terminaison B dans ce scénario est d’abord acheminé vers l’hôte α, via le tunnel WireGuard entre le site A et le site B, depuis l’hôte β et enfin vers le point de terminaison B. Le pare-feu entre le point de terminaison A et l’hôte α autorise le trafic sortant du point de terminaison A (et retour du trafic des connexions établies) ; et le pare-feu entre l’hôte β et le point de terminaison B autorise le trafic HTTP (port 80) entrant vers le point de terminaison B (et le trafic correspondant sortant).
Les pare-feu entre l’hôte α et l’hôte β permettent à l’un ou l’autre hôte WireGuard d’initier une connexion à l’autre - et donc, généralement, en utilisant le tunnel WireGuard, tout point de terminaison du site A peut initier une connexion à n’importe quel point de terminaison du site B, et vice versa . Cependant, le pare-feu entre le point de terminaison A et l’hôte α n’autorise que les connexions établies au point de terminaison A, le protégeant des nouvelles connexions du site B.
Si nous voulions autoriser les points de terminaison du site B à pouvoir initier de nouvelles connexions au point de terminaison A, nous ne ferions rien de spécifique à WireGuard pour l’activer - nous modifierions simplement nos règles de pare-feu pour le pare-feu entre le point de terminaison A et l’hôte α pour autoriser de nouvelles connexions (comme nous l’avons fait pour Endpoint B, qui autorise de nouvelles connexions HTTP sur le port 80 à partir de l’hôte β).
Consultez l’article WireGuard Site to Site Configuration pour un exemple de configuration des hôtes WireGuard avec cette configuration.
AUTRES TOPOLOGIES
À peu près toutes les autres topologies que vous utiliseriez avec WireGuard, vous pouvez créer en composant ces quatre modèles de base. Par exemple, pour un réseau WireGuard composé de plusieurs points de terminaison distants discrets (pour vos guerriers itinérants) connectés à un LAN (au siège de votre bureau), vous pouvez combiner Hub and Spoke avec Point to Site, où les points de terminaison distants seraient les rayons de Hub and Spoke, et le hub de Hub and Spoke seraient également l’hôte WireGuard du site de point à site.
Comme autre exemple, pour un réseau WireGuard rejoignant trois réseaux locaux de bureau et deux sites cloud, vous pouvez utiliser la topologie site à site entre chaque site individuel, en créant un tunnel WireGuard séparé de l’hôte WireGuard de chaque site vers chacun des quatre autres sites. Ou vous pouvez décider d’utiliser une combinaison Hub and Spoke avec site à site, vous permettant de centraliser votre routage de site à site et votre contrôle d’accès en un seul endroit, et de connecter l’hôte WireGuard sur chaque site à un seul hôte concentrateur, pour auquel tous les autres sites se connectent également.