Files
wiki/Catalogue-Self-Hosted/apps/app-teleport.md
T
2026-06-09 18:40:21 +02:00

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 ProxyV2 ou 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

  1. Générer un fichier de config minimal teleport.yaml (auth_service, proxy_service, node_service)
  2. Créer un user admin : tctl users add admin --roles=editor,access --logins=root
  3. Accéder à https://teleport.example.comactiver MFA (TOTP ou FIDO2, compatible app-2fauth)
  4. Joindre des nodes : tctl nodes add --ttl=24h --roles=node,db → copier la commande teleport start sur chaque serveur
  5. Connecter un cluster Kubernetes : tsh kube login <context> (Teleport devient kube-apiserver proxy)
  6. 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