---
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](https://goteleport.com/) |
| **GitHub** | [gravitational/teleport](https://github.com/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|VPN & Réseau privé]] |

## 📝 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)

```yaml
# 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)

```bash
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.com`** → **activer 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

- [Site officiel Teleport](https://goteleport.com/)
- [GitHub gravitational/teleport](https://github.com/gravitational/teleport)
- [Documentation](https://goteleport.com/docs/)
- [Teleport Academy (gratuit)](https://goteleport.com/academy/)

## 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
