8.9 KiB
title: Teleport created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, vpn, zerotrust, ssh, kubernetes, database, audit, certificate, go, enterprise] confidence: high contested: false sources: [https://selfh.st/apps/?tag=VPN, https://github.com/gravitational/teleport]
🔐 Teleport
La plateforme d'accès zero-trust "tout-en-un" — SSH, Kubernetes, bases de données, applications web : authentification, autorisation et audit unifiés sous certificats éphémères. Plus qu'un VPN, c'est un bastion moderne.
📋 Informations Générales
| Champ | Valeur |
|---|---|
| Site web | goteleport.com |
| GitHub | gravitational/teleport |
| License | Apache-2.0 (core), Enterprise (propriétaire, add-ons) |
| Langage | Go + React (UI) + TypeScript |
| Étoiles GitHub | 20 462 ⭐ |
| Dernière MAJ | 2026-06-07 |
| Catégorie | [[cat-vpn |
📝 Description
Teleport (de l'éditeur Gravitational, désormais Teleport Inc.) est une plateforme d'accès zero-trust qui remplace l'empilement traditionnel VPN + bastion + IAM + audit log par une stack unifiée. Plutôt que de distribuer des clés SSH statiques et d'exposer un sous-réseau entier via un VPN, Teleport émet des certificats X.509 éphémères (TTL court, ~8h par défaut) signés par une autorité de certification interne. Résultat : pas de clés longues à gérer, MFA obligatoire, et chaque session est enregistrée et rejouable au pixel près.
Teleport ne se limite pas au SSH : il gère aussi Kubernetes (tsh kube login), PostgreSQL / MySQL / MongoDB, serveurs RDP, applications web HTTP et même serveurs MCP (depuis v17). Le tout via un binaire unique teleport, sans installer de clients spécifiques — l'authentification passe par un navigateur, un SSO ou une clé FIDO2.
- ✅ SSH, Kubernetes, Bases de données (Postgres/MySQL/Mongo/MSSQL), RDP, HTTP, MCP : tout est unifié
- ✅ Certificats éphémères : TTL court (1h-24h), rotation automatique, pas de clés SSH statiques
- ✅ MFA natif : TOTP, FIDO2/WebAuthn, SSO (OIDC, SAML)
- ✅ Audit log complet : session recording (vidéo), commandes capturées, exportables vers S3
- ✅ RBAC + labels + labels d'inventaire
- ✅ Reverse tunnel : nodes sortants (derrière NAT) qui initient la connexion vers le cluster Teleport
- ✅ Join token : bootstrap des agents via token (comme Kubernetes)
- ✅ UI Web riche (
https://teleport.example.com) - ✅ API gRPC + CLI
tsh,tctl - ✅ Open source (core Apache-2.0), Enterprise pour advanced clustering, SSO renforcé, support SLA
Public cible : DevOps, SRE, équipes infra, entreprises réglementées (santé, finance, SaaS B2B). Pour un simple VPN "road warrior" → app-wireguard / app-tailscale. Teleport brille dès qu'on a plus de 5 serveurs et qu'on veut auditer tout qui se connecte à quoi.
Vs OpenSSH + sshd classique : OpenSSH repose sur des authorized_keys distribués (à la main ou via Ansible), pas d'audit centralisé, pas de MFA obligatoire, pas de session recording. Teleport résout ces trois problèmes en un. Vs Tailscale/NetBird : ce sont des VPN mesh, pas des bastions — ils ne capturent pas les sessions.
🚀 Installation
Option 1 : Docker Compose (community edition)
# docker-compose.yml
version: '3.8'
services:
teleport:
image: public.ecr.aws/gravitational/teleport-distroless-debug:v17
container_name: teleport
restart: unless-stopped
command: ["--config=/etc/teleport/teleport.yaml"]
volumes:
- ./config:/etc/teleport
- ./data:/var/lib/teleport
ports:
- "443:443" # HTTPS (Web UI + API)
- "3023:3023" # SSH proxy
- "51820:51820/udp" # WireGuard (optionnel)
labels:
- "traefik.enable=true"
- "traefik.http.routers.teleport.rule=Host(`teleport.example.com`)"
- "traefik.http.routers.teleport.entrypoints=websecure"
- "traefik.http.routers.teleport.tls.certresolver=letsencrypt"
- "traefik.http.services.teleport.loadbalancer.server.port=443"
⚠️ Teleport écoute normalement sur 443 pour multiplexer HTTP + SSH. Si Traefik occupe déjà le 443, utiliser le
ProxyV2ou un sous-domaine dédié.
Option 2 : Binaire natif (Linux)
curl https://goteleport.com/static/install.sh | bash -s 17.0.0
sudo systemctl enable --now teleport
⚙️ Configuration Initiale
- Générer un fichier de config minimal
teleport.yaml(auth_service, proxy_service, node_service) - Créer un user admin :
tctl users add admin --roles=editor,access --logins=root - Accéder à
https://teleport.example.com→ activer MFA (TOTP ou FIDO2, compatible app-2fauth) - Joindre des nodes :
tctl nodes add --ttl=24h --roles=node,db→ copier la commandeteleport startsur chaque serveur - Connecter un cluster Kubernetes :
tsh kube login <context>(Teleport devient kube-apiserver proxy) - Configurer l'audit log : destination S3 ou GCS, activer la session recording pour SSH et DB
🔄 Alternatives
Open Source
- app-defguard — VPN/SSO self-hosted (LAN sécurisé, plus simple)
- app-wireguard + app-wg-easy — VPN basique sans bastion
- Boundary (HashiCorp) — Bastion session-aware sans recording
- Apache Guacamole — Gateway RDP/VNC/SSH web (bastion, sans zero-trust)
- Cloudflare Tunnel — Expose apps web seulement (pas SSH/DB)
- Bastillion — Bastion web open source léger
- Keycloak + ssh-gateway — DIY
Propriétaires
- Teleport Enterprise (même éditeur, advanced RBAC, clustering)
- Cloudflare Access (zero-trust apps web, pas SSH/DB)
- Okta Advanced Server Access (ZTP SSH, pas de session recording)
- AWS Systems Manager Session Manager (AWS-only, gratuit)
- StrongDM (audit/logging enterprise, onéreux)
- HashiCorp Boundary Enterprise
- CyberArk Privileged Access Manager (heavy enterprise)
Comparaison Teleport vs alternatives
| Critère | Teleport | OpenSSH | Boundary | Cloudflare Access | Tailscale |
|---|---|---|---|---|---|
| Certificats éphémères | ✅ | ❌ | ✅ (token) | ✅ (JWT) | ✅ (WireGuard) |
| MFA obligatoire | ✅ | ⚠️ (à configurer) | ✅ | ✅ | ⚠️ (optionnel) |
| Session recording | ✅ (vidéo) | ❌ | ⚠️ (logs) | ❌ | ❌ |
| Protocoles | SSH/K8s/DB/RDP/HTTP/MCP | SSH | SSH/DB/HTTP | HTTP uniquement | Réseau IP |
| Audit log centralisé | ✅ | ❌ | ✅ | ✅ | ❌ |
| UI Web | ✅ (riche) | ❌ | ✅ (basique) | ✅ | ✅ |
| Open source core | Apache-2.0 | BSD/Apache | BUSL | ❌ | BSD (client) + server propriétaire |
| Idéal pour | Plateformes mixtes | Solo/petit | Bastion pur | Apps web publiques | VPN personnel |
Verdict : Teleport est le standard de fait pour l'accès zero-trust self-hosted dans des environnements multi-protocoles. Pour un simple VPN "client-to-site", c'est over-engineering — préférez app-tailscale ou app-wireguard.
🔐 Sécurité
- ✅ Auth par certificats éphémères : CA interne Teleport signe des X.509 (SSH) à TTL court (8h par défaut), pas de clés statiques à voler
- ✅ RBAC granulaire + labels d'inventaire (rôles, équipes, environnements) — moindre privilège
- ✅ MFA obligatoire : TOTP, FIDO2/WebAuthn (clés physiques type YubiKey), SSO OIDC/SAML. Intégrer avec app-authentik ou Okta
- ✅ Session recording cryptographique : vidéo au pixel des sessions SSH/DB, exportable vers S3, replay-able depuis l'UI
- ✅ Posture zero-trust : vérifier la version Teleport, le patch level OS, la présence d'un antivirus, la géolocalisation avant d'accorder l'accès
- ✅ Audit log signé (append-only), exportable vers SIEM (app-wazuh, Splunk, Datadog)
- ⚠️ Clés privées CA : la clé de signature CA (
/var/lib/teleport/ca.key) doit être chiffrée au repos (age, LUKS) et sauvegardée dans app-vaultwarden / HSM - ⚠️ L'UI admin = surface d'attaque critique : MFA + IP allowlist obligatoire, ne JAMAIS exposer sans reverse proxy authentifié
📚 Ressources
Pages Liées
- cat-vpn — Catégorie VPN & Réseau privé
- app-wireguard — VPN simple pour routeur
- app-tailscale — VPN mesh "user-friendly"
- app-openvpn — Le "vieux" VPN
- app-traefik — Reverse proxy / HTTPS
- app-authentik — SSO OIDC
- app-2fauth — MFA TOTP
- securisation-home-lab — Bonnes pratiques globales
- glossaire-homelab — Définitions réseau
- comparatif-vpn-mesh — Comparatif global