Cet article est le résultat de la collaboration entre nos experts humains et nos intelligences artificielles (en savoir +).
Qu’est-ce que Teleport ?
Emergente dans le domaine de la cybersécurité, Téléport est une plateforme permettant de simplifier l’accès sécurisé aux infrastructures. Suivant le principe ZeroTrust, elle offre une plateforme robuste pour la communication sécurisée entre des utilisateurs et différentes ressources via un point d’accès unique, facilitant ainsi l’audit et la gestion des accès aux ressources informatiques privées.
Cette plateforme centralise l'accès à des ressources comme des serveurs SSH, des bases de données, des applications web, clusters Kubernetes, mais également pour des sessions RDP Windows, tout en maintenant une sécurité robuste grâce à des certificats mutuels de courte durée et une gestion stricte des accès (RBAC).
Ainsi, Teleport fait office de proxy multi-protocoles ainsi qu’autorité de certification et s'avère donc être une solution prometteuse pour des applications professionnelles variées, particulièrement dans les environnements sécurisés et distribués.
Et maintenant rentrons dans le vif du sujet avec ma mise en application.
Mon Cas d’Usage
Contexte et Découverte
J’ai découvert Téléport en travaillant sur un home lab, spécifiquement pour gérer l'accès à une installation solaire et à un serveur (vieux pc portable recyclé 😊) chez mes parents. Ma problématique initiale était de pouvoir accéder notamment à Grafana, une application web, depuis n’importe où (= “internet”). Une solution simple serait d’exposer Grafana directement via une redirection de port. Cependant, ouvrir des ports sur un pare-feu domestique pour permettre l'accès à distance aux ressources internes est risqué, car cela expose le réseau et l’application à des attaques potentielles. Une autre solution serait de mettre en place un VPN (en utilisant mon serveur dédié chez OVH) comme ceci :
Cependant, les solutions comme les VPN, bien qu’efficaces, peuvent être complexes à configurer et à maintenir, ce dont je n’ai pas envie pour un home lab. De plus, pour pouvoir accéder à Grafana, cela implique d’avoir la configuration VPN sous la main et de pouvoir l’installer sur le support utilisé. Ce qui n’est pas garanti : votre équipe IT ne sera pas très contente si vous voulez installer un VPN sur votre poste de travail pour “voir si votre installation solaire se porte bien” ou encore “pour savoir si les batteries ont suffisamment rechargé pour taper raclette le soir même”.
J’avais besoin d'une solution qui soit à la fois sécurisée, simple à mettre en place, facile à utiliser et ne nécessitant pas l’ouverture de port sur le réseau domestique parental. Idéalement, une espèce de reverse proxy distribué multi-protocole (pour aussi accéder en ssh au serveur) installé chez OVH gérant aussi l’authentification et l’audit (log).
Eh bien cette technologie existe et c’est Teleport !
Teleport permet de mettre en place un cluster d’agent Teleport qui permet à un utilisateur d’accéder, via un point d’entrée unique (celui du proxy), aux ressources auxquelles ces agents ont accès. C’est un reverse proxy distribué implémentant une stratégie ZeroTrust, il y a une authentification mutuelle de chaque agent. L’utilisateur n’a finalement pas besoin d’avoir accès directement à la ressource (au sens réseau). Il suffit que l’agent Teleport qui a accès à la ressource et l’utilisateur, qui veut accéder à la ressource, ont tous les deux accès au Proxy pour que cela fonctionne. La centralisation ainsi du flux via un point unique permet de faire du RBAC (Role Based Access Control) et de l’audit.
Mise en œuvre et utilisation
Pour mon usage personnel, j’ai donc installé Téléport sur un serveur dédié chez OVH. J’ai configuré le service de proxy et d'authentification sur une machine virtuelle (VM), et installé l'agent Téléport sur le serveur (Cf. Architecture ci-dessous)
Cette configuration initiale a permis de créer un tunnel sécurisé entre le serveur dédié et le serveur domestique, redirigeant les requêtes vers les ressources internes via le proxy Téléport, tout en maintenant un niveau de sécurité optimal et sans avoir à gérer des mises à jour fréquentes ou ouvrir des ports sur le firewall familial.
Cette approche a plusieurs avantages :
- Sécurité : un seul port sécurisé (port 443) utilisé et donc à ouvrir, réduisant ainsi la surface d’exposition et donc risques d'attaques.
- Simplicité : La configuration de Téléport est relativement simple comparée aux solutions VPN traditionnelles via une interface web
- Efficacité : Une fois configuré, Téléport fonctionne de manière transparente, offrant un accès sécurisé aux ressources internes sans nécessiter d'interventions fréquentes ou de mises à jour complexes de chaque applicatif.
- Scalabilité : Une nouvelle ressource = Nouvelle ligne de configuration de l’agent ayant accès à la ressource. Une configuration hautement disponible du proxy est aussi possible (inutile dans mon cas)
Fonctionnement interne de Teleport
- Architecture et Composants :
- Auth Service : Gère les utilisateurs, les rôles, et l’authentification. Il émet des certificats d’accès temporaires et conserve les logs d’audit.
- Proxy Service : Sert de point d’entrée unique pour toutes les connexions. Il redirige les requêtes aux services appropriés (SSH, Kubernetes, bases de données).
- Agent : Un noeud du cluster Teleport ouvrant un tunnel avec le proxy, offrant accès aux ressources auquel cet agent a accès.
- Processus d’Authentification :
- Lorsqu'un utilisateur souhaite accéder à une ressource, il se connecte au Proxy Service, qui redirige la requête vers l’Auth Service pour l’authentification.
- L’Auth Service vérifie les informations d'identification de l'utilisateur (via authentification unique (SSO) ou certificats) et, en cas de succès, émet un certificat temporaire.
- Ce certificat est utilisé pour établir une session sécurisée entre l’utilisateur et la ressource demandée.
- Gestion des Rôles et des Permissions :
- Les rôles définissent les permissions des utilisateurs et des services. Un rôle peut spécifier des accès granulaires comme l’accès à des serveurs spécifiques à l’utilisateur près, des clusters Kubernetes à l’appel api près, ou des bases de données particulières.
Fonctionnalités clés de Téléport
Téléport se distingue par plusieurs fonctionnalités clés :
- Reverse tunnelling
- Self-hosting : Easy to self-host
- Authentificateur Multi Facteur
- Identity Provider (SSO) : Capacité à d’interfacé avec des fournisseurs d’identité externe comme Okta, Google, GitHub, et GitLab.
- RBAC : Permet d’assigner un ou plusieurs role, cad un ensemble de permission, à un utilisateur.Machine ID : Permet l’authentification d’une machine sur le cluster de manière non-intéractive, Permettant ainsi l’usage de Teleport pour de la CI/CD
- Trusted Cluster : Capacité fédéré des clusters entre eux
- Audit log : Enregistrement des appels api, des events, etc ... Cela méthode permet de conserver des logs détaillés pour l’audit, ce qui est crucial pour des certifications comme l’ISO.
- Enregistrement des sessions ssh : Pouvoir reregarder n’importe quelle session ssh sur forme de video
- Haute disponibilité : Le Proxy et le Auth service peuvent être déployer de manière redondante afin de resister à une panne et de pouvoir accepter un plus grand nombre d’utilisateur
- Un seul binaire pour tous les services
- Compatibilité et Intégration : La technologie est compatible avec des outils standards tels que SSH, Kubernetes (kubectl), bases de données (PostgreSQL, MySQL), et des applications web.
- Autorité de Certification : Téléport utilise des certificats de courte durée pour l'authentification. Lorsqu'un utilisateur se connecte, il reçoit un certificat temporaire qui expire après une période définie, réduisant les risques associés à la compromission de clés statiques
Détails techniques de l'installation et de la configuration
Création d'un cluster et installation des agents
Pour créer un cluster Teleport, on faut instancier un nuage d’agent dont un (ou plusieurs) aura le Auth Service et le Proxy Service.
L’agent peut être installé nativement (Linux/windows) ou via une image docker. Une installation native est requise dans le cas ou l’on souhaite activer le ssh service.
Configuration de l’agent ayant Auth Service et le Proxy Service
La configuration se fait via un fichier yaml unique, donné à l’exécutable au lancement de celui-ci.
Ici, le service Teleport est directement exposé à internet et réalise lui-même le challenge http pour récupérer le certificat ssl aupres de Let’s encrypt. Le Auth Service, bien qu’ayant un port d'écoute, est atteint par les agents via le Proxy Service.
Configuration d'un agent
La configuration se fait via le même fichier avec le même format. Voici celui présent sur le serveur au domicile parental :
Administration du cluster
L’administration du cluster se fait dans l’outil en ligne commande “tctl” ou via l’interface web. Pour permettre à un utilisateur d’accéder à l’application Grafana, il faut créer un nouveau rôle RBAC autorisant l’accès à l’app ayant , par exemple, comme label “name: grafana_domicile”. Pour ce faire, on peut créer un object role via un grafana_access_role.yaml :
Et ensuite l’appliquer au cluster avec tctl apply –f grafana_access_role.yaml.
On peut maintenant créer un utilisateur avec tctl users add --roles=grafana_access_roletotoou ajouter ce rôle à un utilisateur.
Evaluation et Perspectives de l’utilisation de Téléport dans un environnement professionnel
Impressionné par la simplicité et l'efficacité de Teleport, je l’envisage pour d’autres applications, comme le déploiement de clusters Kubernetes, la gestion d'accès aux bases de données et l’intégration dans des pipelines CI/CD, d’autant que sa configuration via l’installation de l’agent sur la machine cible est est facilitée pour Terraform et Ansible.
Au-delà de mon usage personnel, Teleport est un vrai plus dans des environnements plus complexes et sécurisés. En particulier, pour répondre aux exigences de conformité et d'audit dans des entreprises cherchant à renforcer leur posture en matière de sécurité. Par exemple, la capacité d’auditer chaque commande passée dans une session SSH ou chaque interaction avec un service Kubernetes via des certificats, offre une transparence totale et une traçabilité essentielle pour les entreprises soumises à des régulations strictes.
Comparaison à d’autres solutions de gestion des accès du marché
Avant d’opter pour Teleport, Voici d’autres solutions de gestion des accès telles que :
- Pomerium est une solution d'accès sécurisé basée sur des identités, offrant un proxy d'authentification dynamique qui s'intègre facilement avec les fournisseurs d'identité et simplifie la gestion des accès conditionnels.
- StrongDM se distingue par sa capacité à centraliser la gestion des bases de données, des clusters Kubernetes, et des serveurs, tout en offrant des audits complets et une surveillance en temps réel des sessions.
- Boundary, développé par HashiCorp, est conçu pour sécuriser l'accès à l'infrastructure dynamique sans nécessiter de VPNs, en fournissant un contrôle d'accès basé sur des identités et une segmentation du réseau fine.
- BastionZero propose une approche novatrice en matière d'accès sécurisé en utilisant des tunnels cryptographiques et des autorisations décentralisées, éliminant ainsi le besoin de serveurs bastions traditionnels. En revanche, c’est uniquement une solution SAAS
- Cloudflare Zero Trust offre une solution complète pour sécuriser les accès aux applications et aux réseaux d'entreprise en utilisant des principes de zero trust, combinant l'authentification multi-facteurs, la segmentation des applications, et des contrôles de sécurité informatique robustes.
Chacune de ces solutions présente des avantages spécifiques, mais c'est la combinaison unique des fonctionnalités de Téléport, sa simplicité de configuration, son utilisation de certificats temporaires, et sa gestion centralisée des accès, qui m’a convaincu.
Conclusion
Cette expérience est un excellent exemple de la manière dont une solution, initialement adoptée pour résoudre un problème personnel, peut avoir des implications bien plus larges et trouver des applications dans des contextes professionnels variés. Téléport ouvre la voie à de nouvelles possibilités dans la gestion des infrastructures IT. Sa capacité à simplifier l’authentification sécurisé, à centraliser les accès, et à fournir des audits détaillés fait de cette plateforme un atout précieux pour les particuliers et les entreprises en permettant de résoudre des problématiques complexes de manière intuitive et sécurisée.
Nos équipes, toujours en quête de savoir, organisent régulièrement des conférences, des ateliers et même des lunchs (parce qu'apprendre en mangeant, c'est quand même plus sympa). Ces moments d'échanges sont enregistrés, retranscrits et confiés à nos IA (merci à ChatZen, notre ChatGPT interne) qui se chargent de les transformer en super articles. Grâce à ce travail d'équipe, nous rendons nos connaissances accessibles et enrichissantes pour tous. Si nos collaborateurs en profitent, autant en faire profiter toute la communauté ! retour en haut de la page
Retour aux articles