🔌 Connexion de ressources à Teleport
🛠️ Connexion de ressources GNU/Linux
C'est très simple et ultra guidé par Teleport.
Prérequis
Les comptes utilisateurs visés des machines doivent être créés sur les machines en question et déclarés au niveau de logins dans la partie User Traits du compte utilisateur Teleport:

Ajout d'une ressource
Rendez-vous sur la page Ressources puis cliquez sur Enroll New Ressource :

Il vous est alors proposé différentes ressources :

Dans mon cas, je veux ajouter un serveur GNU/Linux Debian 12, je clique donc sur Debian 11+. L'application me propose de déclarer des labels.

Cette option est apparue avec la version 17. Dans la version 16, nous devions éditer ces labels directement sur la machine visée. Les labels sont pratiques pour filtrer plus tard les ressources. Exemple :

Pour passer à l'étape suivante il faut cliquer sur Finish Adding Labels. À partir de là, un lien vous est fourni :

Copiez ce lien et collez le sur le serveur que vous souhaitez ajouter.

Une fois la ressource connectée à Teleport, vous pouvez passer à l'étape suivante en cliquant sur Next

Sélectionnez les utilisateurs (préalablement déclarés dans les prérequis) pouvant se connecter à la ressource :

Enfin vous pouvez vérifier si la connexion avec vos utilisateurs fonctionne :

Si OK, vous pouvez alors cliquer sur Finish. On retrouve alors notre serveur dans les ressources :

Il ne vous reste plus qu'à vous connecter à votre ressource en cliquant sur Connect qui vous proposera le ou les logins déclarés associés à ce serveur.
🛠️ Connexion d'applications web
C'est un des grands atouts de Teleport. Imaginons que vous avez une application web qui doit être accessible depuis l'externe mais non exposée directement sur Internet. Le premier réflexe est de passer par un VPN. C'est sécurisé mais lourd à utiliser pour l'utilisateur final. Filtrage IP ? C'est possible mais inutilisable pour des clients mobiles.
C'est là que Teleport devient intéressant. En effet, on ne change pas les habitudes de l'utilisateur. Il lui suffit de se connecter à l'interface web de Teleport pour ensuite se connecter à l'application web visée. Il n'y a rien à installer sur son terminal, il lui faut juste un navigateur web.
Il faudra tout de même posséder deux logins :
- Celui de Teleport
- Celui de l'application en question
Il est possible de mettre en place le SSO pour éviter cela mais cette option n'est disponible que sur la version Entreprise de Teleport. Il est cependant possible d'utiliser le SSO pour les applications web derrière Teleport.
Prérequis
Comme indiqué sur le premier article de cette documentation, vous devez déclarer un RR du type CNAME de *.teleport.prod-1.domaine.fr
associé à teleport.prod-1.domaine.fr
dans la zone DNS de votre registrar et sur votre serveur DNS local.
Ajout d'une ressource
Pour déclarer une application web, il suffit d'éditer le fichier de configuration de Teleport (contenu dans le dossier de travail Docker de Teleport)
version: v3
teleport:
nodename: teleport.prod-1.domaine.fr
data_dir: /var/lib/teleport
log:
output: stderr
severity: INFO
format:
output: text
auth_service:
enabled: yes
listen_addr: 0.0.0.0:3025
proxy_listener_mode: multiplex
cluster_name: teleport.prod-1.domaine.fr
ssh_service:
enabled: no
proxy_service:
enabled: yes
web_listen_addr: 0.0.0.0:3080
public_addr: ['teleport.prod-1.domaine.fr:443']
https_keypairs: []
acme: {}
trust_x_forwarded_for: true
## Déclaration des applications web
app_service:
enabled: "yes"
apps:
- name: "opns-prod-1"
uri: "https://192.168.200.1:8443"
insecure_skip_verify: true
- name: "proxmox-pve-01"
uri: "https://192.168.200.50:8006"
insecure_skip_verify: true
Dans ce cas, j'ai déclaré deux ressources :
- Une passerelle OPNSense
- Un serveur Promox VE
Relancez le conteneur docker compose restart
afin de prendre en compte les nouvelles ressources. Et voilà.
Cliquez sur launch et vous êtes alors redirigé vers une URL se décomposant ainsi : https://
Exemple avec opns-prod-1 : https://opns-prod-1.teleport.prod-1.domaine.fr
Cas particuliers
OPNSense
Vous devrez déclarer un nom d'hôte alternatif à votre passerelle sinon vous aurez un message d'erreur avec l'impossibilité de vous connecter à cette ressource.

Proxmox VE
On ne peut pas lancer des consoles SPICE détachées. Cela est dû au fait que ces consoles utilisent le port 3128. Ainsi lorsque nous ouvrons une console, l'afficheur ditant (virt-viewer) tente d'accéder à cette URL :
Je n'ai pas creusé la question.
🏁 Conclusion
Au delà de la sécurité qu'apportent les bastions, si vous administrez plusieurs serveurs, vous comprendrez l'utilité de ces solutions comme Teleport avec la possibilité de centraliser en un seul endroit les accès. Le mot seul peut vous faire également tiquer, coucou le SPOF. Sachez qu'il est possible de monter Teleport en mode cluster mais je n'ai pas testé. Le mode web est sympa mais on peut passer également par une console. C'est le sujet du prochain article.