Créez votre VPN Mesh facilement avec Tailscale et Headscale

Partagez cet article avec votre communauté
Mathieu Labourier 28 Feb. 2023
Temps de lecture estimé : 5 minutes

Si vous avez déjà tenté de créer et de configurer un réseau privé virtuel (VPN), vous vous souvenez sûrement de la difficulté éprouvée lors de la mise en place de celui-ci, d’autant plus pour un serveur Wireguard. Tailscale est un VPN Mesh basé sur Wireguard, permettant une mise en place et une configuration de son réseau privé rapidement et simplement.


Le fonctionnement d'un VPN "classique"

Le fonctionnement le plus commun d'un VPN est la centralisation des connexions entre tous les clients. Par exemple, A envoie un paquet à B, le paquet est envoyé en premier lieu au serveur VPN, qui redistribue le paquet au destinataire. Cela copie plus ou moins le fonctionnement d’un routeur réseau, permettant la création et le fonctionnement du réseau virtuel. Il existe néanmoins deux problèmes principaux à cette configuration. Le premier est que tous les échanges entre les clients dépendent de la capacité du serveur central et nécessite donc un matériel conséquent pour le confort des utilisateurs. Un second problème se pose si le serveur VPN est hébergé de l'autre côté de la terre et que l’on souhaite communiquer avec son voisin, notre message va faire le tour de la terre aller-retour, ce qui peut ajouter une latence considérable. Ci-dessous un schéma décrivant le fonctionnement d’un VPN « classique » de la perspective d’un client.

Shéma fonctionnement d'un vpn classique

Le fonctionnement d'un VPN "Mesh"

Wireguard, s’il est configuré correctement, décentralise les connexions en créant des tunnels entre chaque client. De ce fait, si l’on souhaite parler à son voisin, nous lui envoyons le message directement et sans intermédiaires. Cela permet à la fois de diminuer la latence causée par le fait de devoir passer d'abord par le serveur, mais aussi libère la charge du serveur central, ses "seules" tâches étant alors d'établir les connexions entre les utilisateurs, entre autres. Par rapport à un VPN habituel, Wireguard crée donc des tunnels entre les utilisateurs du VPN, et centralise la mise en place des connexions (authentification, échanges de clés, découverte du réseau...). Ci-dessous un schéma décrivant le fonctionnement d’un VPN « Mesh » de la perspective d’un client.

Shéma d'un vpn mesh

Les apports de Tailscale

Tailscale apporte un client et un serveur VPN dans l'idée du "zero-config", il suffit de se créer un compte sur le site, de se connecter à ce compte depuis le client et vous êtes sur votre réseau VPN. Connectez plusieurs appareils à votre compte et vous avez un réseau VPN multipoints fonctionnel. Pour faciliter les connexions entre les différentes machines du réseau, Tailscale propose du NAT traversal ce qui permettra une connexion même dans les contextes les plus protégés (NAT strict, pare-feu…). Maintenant si vous voulez donner l'accès à votre réseau à d'autres utilisateurs, il suffit d'autoriser leur compte en les invitants, ensuite, tout appareil connecté à leur compte a accès aux machines que vous avez autorisées, sans avoir à modifier des paramètres.
Voici le tableau de bord du serveur Tailscale, on peut y voir les appareils du réseau, ainsi que diverses informations.

Le tableau de bord du serveur Tailscale, on peut y voir les appareils du réseau, ainsi que diverses informations

Voici l'interface de partage, on peut obtenir un lien à envoyer aux personnes à qui on souhaite donner l’accès.

L'interface de partage, on peut obtenir un lien à envoyer aux personnes à qui on souhaite donner accès.

Il est donc facilement possible de créer un réseau privé d'entreprise, ou par exemple de permettre l'accès à un serveur privé (Un NAS par exemple) depuis vos appareils et ceux d’autre personnes. Le tout en seulement quelques minutes. Vous pouvez ensuite définir des règles plus complexes d'accès, avec des groupes d'utilisateurs, des accès par groupes et utilisateurs, etc. (Cette interface là est plus à destination d’un public expérimenté, on doit 'coder' ses règles d'accès).
Tailscale apporte plusieurs fonctionnalités supplémentaires qui facilitent d’autant plus la mise en place du réseau, on y retrouve entre autres « Magic DNS » qui permet d’enregistrer les noms DNS de vos machines enregistrées sur le réseau. Vous pourrez également retrouver « Taildrop » une fonctionnalité similaire à AirDrop des appareils Apple, qui vous permettra de partager simplement des fichiers avec les différentes machines de votre réseau.  En terme de sécurité et de confidentialité, les serveurs de Tailscale n’ont pas accès au trafic réseau entre les appareils et le trafic est encrypté selon le protocole de chiffrement de Wireguard.



En conclusion, Tailscale apporte un réseau VPN multipoints performant, avec une mise en place, un accès et un contrôle extrêmement simple et sans prise de tête. Un problème reste : le serveur de contrôle ainsi que les clients avec interface graphique Windows et IOs / MacOs ne sont pas open-source !C'est un problème réglé (du moins pour le premier) par Juan Font et d'autres contributeurs, qui ont mis au monde Headscale, une implémentation open-source du serveur de contrôle de Tailscale. Ce serveur fonctionne à peu près comme celui de Tailscale et permet de s'y connecter avec les clients Tailscale officiels. Headscale propose les même fonctionnalités que le serveur de contrôle Tailscale avec la limitation de ne pouvoir servir qu’un seul réseau, ce qui est donc convenable pour une petite entreprise ou des particuliers.


Pour aller plus loin

Github de Headscale : https://github.com/juanfont/headscale

Github de Tailscale : https://github.com/tailscale/tailscale

Tailscale et l’open source : https://tailscale.com/opensource/

Source et images - tailscale

Articles associés