NOPE LinkedIn

Catégories:
wireguard
network
VPN

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.

Wireguard point to point

Pour que le point à point fonctionne, le port WireGuard sur l’un des points de terminaison doit être ouvert aux nouvelles connexions via tous les pare-feu entre les deux 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.

Wireguard point to point simple

Dans un scénario plus compliqué, mais courant, les deux points de terminaison seraient derrière des pare-feu et NAT (Network Address Translation), avec Internet entre les deux. Ici, les pare-feu devant le point de terminaison A n’autorisent que les connexions établies via le point de terminaison A. Les pare-feu devant le point de terminaison B autorisent les nouvelles connexions via le port 51822, et le NAT devant le point de terminaison B transmet le port 51822 au point de terminaison B.

Wireguard point to point complex

Dans ce scénario, le point de terminaison A peut initier une nouvelle connexion à tout moment au point de terminaison B. Mais comme le point de terminaison A se trouve derrière un pare-feu qui n’autorise que les connexions déjà établies, si vous souhaitez permettre au point de terminaison B d’initier des connexions au point de terminaison A, vous devez configurez le paramètre PersistentKeepalive sur le point de terminaison A (une valeur de 25, ce qui signifie envoyer un paquet keepalive toutes les 25 secondes, fonctionnera bien dans la plupart des cas).

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).

Wireguard Hub nd Spoke outline

Hub and Spoke peut également être un outil utile pour connecter deux points de terminaison qui se trouvent tous deux derrière des pare-feu qui n’autorisent pas de nouvelles connexions entrantes, ou derrière NAT qui n’autorise pas la redirection de port (où vous utiliseriez le hub simplement comme un “serveur de rebond” ).

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.

Wireguard Hub and Spoke simple

Dans un scénario plus compliqué, le hub et les rayons sont derrière des pare-feu et NAT, avec Internet entre les deux. Les pare-feu devant le point de terminaison A et le point de terminaison B n’autorisent que les connexions établies via le point de terminaison A et le point de terminaison B. Les pare-feu devant l’hôte C autorisent les nouvelles connexions via le port 51823, et le NAT devant l’hôte C transmet le port 51823 à l’hôte C

Wireguard Hub and Spoke simple

Dans ce scénario, alors que le point de terminaison A et le point de terminaison B peuvent chacun indépendamment initier de nouvelles connexions avec l’hôte C, en raison des règles de pare-feu pour les points de terminaison A et B, l’hôte C ne peut pas initier de nouvelles connexions avec l’un ou l’autre. Par conséquent, afin de permettre au point de terminaison A d’initier des connexions via WireGuard au point de terminaison B, vous devez configurer le paramètre PersistentKeepalive sur le point de terminaison B. Et si vous souhaitez autoriser le point de terminaison B à pouvoir également initier des connexions via WireGuard au point de terminaison A, vous devez configurez le paramètre PersistentKeepalive sur le point de terminaison A.

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.

Wireguard point to site outline

Point to Site est idéal pour un certain nombre de cas d’utilisation où vous souhaitez autoriser l’accès à distance à partir d’un point de terminaison discret à une variété de serveurs sur le même LAN, sans configurer et gérer WireGuard séparément sur chacun de ces serveurs. Vous pourriez avoir des cas comme :

  • 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 »).

Wireguard point to site simple

Tous les pare-feu entre le point de terminaison A et le site B dans ce scénario seraient configurés pour permettre au point de terminaison A de se connecter à l’hôte β, et vice versa. Cela permet au point de terminaison distant (point de terminaison A) d’initier une connexion à n’importe quel point de terminaison local, et à tout point de terminaison local (comme le point de terminaison B) d’initier une connexion au point de terminaison distant.

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).

Wireguard point to site complex

Le trafic au sein du site local (site B) n’est pas tunnelisé via WireGuard et est donc soumis à tout pare-feu ou autres restrictions de routage auxquelles le reste du trafic local est soumis. Dans ce scénario, une requête HTTP entre le point de terminaison A et le point de terminaison B traversera le tunnel WireGuard du point de terminaison A au site B, puis sera acheminée localement comme tout autre trafic local du tunnel WireGuard au point de terminaison B. Ainsi, pour HTTP le trafic du point de terminaison A jusqu’au port 80 sur le point de terminaison B, tout pare-feu entre l’hôte β et le point de terminaison B doit autoriser le port 80 de l’hôte β au 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.).

Wireguard site to site outline

Comme avec Point to Site, à une extrémité, vous avez un hôte exécutant WireGuard, et cet hôte peut acheminer vers divers points de terminaison au sein de son propre site. Et à l’autre extrémité de la connexion, vous avez également un hôte différent exécutant WireGuard sur un site différent, et cet hôte peut également acheminer vers des points de terminaison au sein de son propre site. Dans sa forme la plus simple ci-dessous, vous avez deux sous-réseaux adjacents, Site A et Site B, connectés par un tunnel WireGuard. Le trafic du site A (comme du point de terminaison A) destiné à un point de terminaison du site B (comme le point de terminaison B) est acheminé vers l’hôte WireGuard (hôte α) du site A, via le tunnel WireGuard vers le site B et depuis l’hôte WireGuard (Hôte β) du site B au point final du site B.

Wireguard site to site simple

Tous les pare-feu entre le site A et le site B dans ce scénario doivent être configurés pour permettre au site A de se connecter au port WireGuard du site B, et vice versa. Cela permet à n’importe quel point de terminaison du site A d’initier une connexion à n’importe quel point de terminaison du site B, et vice versa.

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).

Wireguard site to site complex

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.