Initial vault setup

This commit is contained in:
2026-06-09 18:40:21 +02:00
commit bda02d587f
3692 changed files with 402457 additions and 0 deletions
+158
View File
@@ -0,0 +1,158 @@
---
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