Entrevue WireGuard, un nouveau protocole VPN à la fois performant et facile à installer, a été adopté par la startup Tailscale comme base d’un système de réseau à distance peer-to-peer à la fois sécurisé et rapide à configurer.
WireGuard est un VPN open source qui a atteint sa version 1.0 le 30 mars, coïncidant avec la sortie de Linux 5.6. « Plus tôt dans la soirée, Linus a publié [1] Linux 5.6, qui contient notre première version de WireGuard… pour ceux d’entre vous qui avaient été effrayés auparavant par le «NE PAS UTILISER LE K0DE !! 1!» partout, vous avez désormais quelque chose de plus stable à utiliser « , a déclaré Jason Donenfeld, le créateur de WireGuard.
Selon le livre blanc, WireGuard « vise à remplacer à la fois IPsec pour la plupart des cas d’utilisation, ainsi que l’espace utilisateur populaire et / ou les solutions basées sur TLS comme OpenVPN, tout en étant plus sécurisé, plus performant et plus facile à utiliser. »
Le protocole VPN a été bien accueilli (notamment par Torvalds) depuis qu’il est à la hauteur de ses prétentions, avec une configuration plus facile et de meilleures performances que les alternatives.
WireGuard est petit par sa conception (seulement 4 000 lignes de code) et dédié à un seul objectif: connecter un client à un serveur via un VPN. Cela laisse beaucoup de place pour construire des solutions VPN complètes autour de lui, ou pour s’intégrer dans des solutions existantes, ce qui est exactement ce qui s’est passé. NordVPN, par exemple, propose NordLynx basé sur WireGuard, mais avec double NAT (Network Address Translation) pour protéger la confidentialité. Concernant WireGuard, NordVPN nous a dit que « Sa simplicité, sa facilité de mise en œuvre et de gestion sont susceptibles de dépasser de manière significative OpenVPN, et la vitesse de cryptage de WireGuard souffle les protocoles du groupe IPsec hors de l’eau. »
Le nouveau protocole est également une opportunité pour les startups, dont Tailscale, formé en mars 2019 six mois après que son co-fondateur et PDG Avery Pennarun a quitté Google, où il était ingénieur principal travaillant sur Google Fiber.
Le produit de Tailscale comprend plusieurs pièces. Tout d’abord, il est basé sur des VPN peer-to-peer plutôt que d’acheminer tout le trafic VPN via un concentrateur unique. La sécurité WireGuard utilise des clés publiques. Un point de terminaison peut se connecter à un autre s’il connaît la clé publique et le point de terminaison UDP (adresse IP et port) auxquels se connecter. Tailscale gère une base de données de points de terminaison sur son serveur, de sorte que lorsque le client A doit parler au client B, il récupère les détails du point de terminaison puis établit une connexion directe. Tailscale appelle cela un réseau maillé.
Les clients Tailscale récupèrent les informations de connexion à partir d’un serveur, mais aucune autre donnée ne transite par le serveur
Deuxièmement, l’authentification Tailscale est toujours sous-traitée à un fournisseur OAuth2, OpenID Connect ou SAML, tel qu’une connexion Azure AD ou Google G Suite. Troisièmement, la traversée NAT est intégrée afin que vous puissiez vous connecter sans ouvrir les ports du pare-feu. Si UDP est complètement bloqué, il peut utiliser des flux HTTPS.
Enfin, il existe un système d’autorisation par nœud, vous pouvez donc spécifier à quelles adresses IP et ports un utilisateur est autorisé à se connecter.
Le vautour se lance
Nous avons fait un tour rapide à Tailscale, certes avec seulement deux PC Windows. L’un était sur Azure, l’autre derrière deux pare-feu. Connectez-vous à Tailscale redirige vers votre fournisseur choisi, dans notre cas Azure AD (vous pouvez également utiliser n’importe quel compte Google).
Cela fait, il s’agissait d’installer le client sur les deux PC, de se connecter et de noter les numéros IP attribués par Tailscale.
Ensuite, nous avons pu ouvrir une connexion de bureau à distance de l’un à l’autre; tout a fonctionné comme promis sans autre configuration. Par défaut, il n’y a ni DNS ni routage – en d’autres termes, le PC A peut envoyer une requête ping au PC B, mais pas aux autres machines du réseau distant, sauf si Tailscale est également installé, et vous devez connaître les numéros IP.
Vous pouvez résoudre ce problème en configurant DNS et en vous acheminant vous-même, mais notez que si vous acheminez tout le trafic d’un réseau via un serveur, vous ne bénéficiez pas du maillage Tailscale. Il y a une explication du système ici.
La connexion à Tailscale avec Azure AD présente cette boîte de dialogue
Pennarun a parlé à The Reg, en commençant par une explication du nom de l’entreprise. Il dit que l’infrastructure massivement évolutive de Google ajoute de la complexité et que « les équipes que j’avais vues pendant que j’étais chez Google ont été forcées d’utiliser ce type d’infrastructure exagérée, même pour leurs petits problèmes. La blague est que l’échelle » de queue « est l’opposé de l’échelle Google. «
Selon Pennarun, la société était initialement plus intéressée par la sécurité des réseaux que par les VPN. Un des premiers clients, une banque, voulait sécuriser une application Windows ancienne mais critique, et plutôt que de la mettre à jour pour utiliser l’authentification à deux facteurs, il a proposé: « Pourquoi ne pas déplacer le serveur dans son propre petit réseau, afin que les gens ne puissent accéder ce réseau après avoir effectué une authentification à deux facteurs? Ce fut l’origine de la construction de cet outil. Il n’était pas conçu comme un VPN d’accès distant, il était conçu comme un VPN d’accès local. Nous l’avons basé sur WireGuard parce que WireGuard était un plan de données efficace pour leur système. Il s’est avéré que l’élément central que nous construisons, ce VPN multipoint, était applicable à toutes sortes d’autres problèmes. «
La plupart des problèmes de configuration d’IPsec consistent simplement à faire fonctionner IPsec. WireGuard élimine toute cette complexité. Ce ne sont que cinq réglages, et maintenant vous avez un tunnel. Cela nous donne un bloc de construction pour construire tout un tas de tunnels …
WireGuard, dit-il, «élimine tout un tas de choses qui peuvent mal tourner lorsque vous créez un VPN. La plupart des problèmes de configuration d’IPsec consistent simplement à faire fonctionner IPsec. WireGuard élimine toute cette complexité. Ce n’est que cinq paramètres, et maintenant vous avez un tunnel. Cela nous donne un bloc de construction pour construire tout un tas de tunnels. «
L’aspect sécurité est alors tout aussi important que la mise en réseau. L’idée est de s’affranchir du problème selon lequel « dès que quelqu’un franchit votre pare-feu, c’est une solution pour tous. La solution moderne à cela est un réseau à confiance zéro, traditionnellement effectué au niveau de la couche application, avec une confiance nulle pour le réseau lui-même. «
Avec Tailscale, « vous ne pouvez vous connecter qu’aux nœuds auxquels vous devez avoir accès. Vous placez un moteur Tailscale sur chaque serveur que vous souhaitez sécuriser, puis Tailscale / WireGuard crypte le trafic jusqu’au nœud lui-même, le déchiffre localement. Vous n’avez donc pas ce problème de passer par le câble physique non chiffré. Il ressemble beaucoup au réseau de confiance zéro, mais il a l’avantage d’être au niveau de la couche IP, plutôt qu’au niveau de la couche HTTP. Cela signifie que fonctionnera avec n’importe quelle application « , dit-il.
« Quelque chose de simple comme Microsoft Access ou le partage de fichiers Windows a désormais la sécurité dans la couche principale au lieu d’être sur le dessus. »
Le panneau d’administration de Tailscale
Comment les autorisations sont-elles configurées? « Nous avons un tableau de bord Web, mais il n’en est qu’à ses débuts. Il s’agit essentiellement d’un éditeur de fichier JSON, d’une liste de groupes d’utilisateurs pouvant accéder à des groupes de machines et des numéros de port. »
Il convient de noter que ce type de configuration, avec Tailscale utilisé même sur les réseaux internes, n’est pas requis, ni même la mise en réseau maillée. « Si vous avez déjà un VPN entre tous vos centres de données, la façon la plus simple d’utiliser Tailscale est de simplement mettre un routeur de sous-réseau dans un centre de données. Maintenant, vos utilisateurs distants peuvent se connecter à ce routeur de sous-réseau. C’est très bien comme un VPN point à point simple. Mais ce n’est pas pire qu’avant. «
Étant donné que tous les grands fournisseurs de VPN semblent adopter WireGuard, au moins en option, pourquoi utiliser Tailscale? « Wireguard est un avion de données », explique Pennarun. « Il fait le même travail qu’un tunnel IPsec ou divers autres tunnels. Mais ce qu’ils ne font pas, c’est la traversée NAT bidirectionnelle que nous faisons. Mon ordinateur portable et mon téléphone peuvent être dans des emplacements différents entre différents pare-feu et peuvent parler à directement. L’autre partie est que l’échange de clés est lié à votre système d’identité existant. «
Tailscale est une petite entreprise et les précautions habituelles s’appliquent. « Nous sommes environ 10 personnes », nous dit Pennarun, tout en étant « une entreprise totalement isolée. Les trois fondateurs sont dans une ville différente ».
Les précautions habituelles s’appliquent; mais il s’avère que la crise actuelle, avec un grand nombre de nouveaux travailleurs à distance, a accru la demande de solutions VPN et mis en évidence certains problèmes avec les solutions existantes. «Il y a beaucoup de gens qui se heurtent aux limites physiques de leur matériel VPN. IPsec est un protocole très consommateur de CPU», dit-il. « Nous avons beaucoup de gens qui donnent un coup de pied dans les pneus en ce moment. Mais personne ne l’a encore déployé à 10 000 personnes. » ®