Installation de Teleport
👋 Présentation
L'application bastion Teleport est une solution open-source développée par Teleport Inc. pour la gestion des accès sécurisés à des infrastructures informatiques. Elle propose des fonctionnalités telles que l'accès sécurisé aux serveurs SSH, aux machines Windows, aux clusters Kubernetes, aux bases de données, et aux applications internes, tout en centralisant la gestion des identités et des autorisations.
Prérequis
- Un serveur GNU/Linux pour faire tourner Teleport
- Un serveur DNS local
- Une autorité de certification (Step CA) ou avoir un outil pour générer des certificats (openssl, mkcert...)
- Un gestionnaire de mots de passe prenant en charge le TOTP ou tout autre extension de votre navigateur web gérant ce mécanisme d'authentification. J'utilise Bitwarden.
Installation
Avant d'installer l'application, on installe le certificat de notre autorité racine et on génère le certificat qui sera plus tard utilisé par Teleport. Pour ma part, j'utiliserai mon autorité de certification Setp CA.
wget https://dl.smallstep.com/cli/docs-cli-install/latest/step-cli_amd64.deb
dpkg -i step-cli_amd64.deb
step ca bootstrap --ca-url https://ca.maison.lab --fingerprint d091900716340086305407d6bcc15769afe9007bada618b523d837af3fcea9f7 --install
step ca certificate teleport.maison.lab teleport.crt teleport.key
Passons à l'installation de Teleport Community Edition.
# https://goteleport.com/docs/installation/
TELEPORT_EDITION="oss"
TELEPORT_VERSION="16.4.10"
curl https://cdn.teleport.dev/install-v16.4.10.sh | bash -s ${TELEPORT_VERSION?} ${TELEPORT_EDITION?}
Configuration de base
Le paquet étant installé, il nous reste plus qu'à lancer la configuration initiale.
mv teleport.crt teleport.key /var/lib/teleport/
# Sortie
teleport configure -o /etc/teleport.yaml --cluster-name=teleport.maison.lab --public-addr=teleport.maison.lab:443 --cert-file=/var/lib/teleport/teleport.crt --key-file=/var/lib/teleport/teleport.key
WARNING: The data directory /var/lib/teleport is not empty and may contain existing cluster state. Running this configuration is likely a mistake. To join a new cluster, specify an alternate --data-dir or clear the /var/lib/teleport directory.
A Teleport configuration file has been created at "/etc/teleport.yaml".
To start Teleport with this configuration file, run:
sudo teleport start --config="/etc/teleport.yaml"
Note that starting a Teleport server with this configuration will require root access as:
- The Teleport configuration is located at "/etc/teleport.yaml".
- Teleport will be storing data at "/var/lib/teleport". To change that, edit the "data_dir" field in "/etc/teleport.yaml".
Happy Teleporting!
# On active et on lance le service
systemctl enable teleport
systemctl start teleport
Maintenant que notre application est lancée, il faut créer un premier utilisateur pour pouvoir s'y connecter.
tctl users add olivier --roles=editor,access --logins=olivier
# Sortie
User "olivier" has been created but requires a password. Share this URL with the user to complete user setup, link is valid for 1h:
https://teleport.maison.lab:443/web/invite/e99fd664c74f740cfc7c1b9bcdfa435d
NOTE: Make sure teleport.maison.lab:443 points at a Teleport proxy which users can access.
J'ai créé l'utilisateur "olivier" qui se connectera sur les machines distantes en tant qu'utilisateur "olivier". Il faut que ce dernier existe sur les machines auxquelles cet utilisateur se connectera. Nous reviendrons sur les rôles attribués plus tard.
Ouvrez le lien communiqué pour finaliser la crétation de ce premier utilisateur.
Passez la page web de démarrage.
Renseignez votre mot de passe (minimum 12 caractères).
Configuration du 2FA.
Vous obtenez enfin le dernier message confirmant le bon déroulement de la création de votre compte.
Et vous voilà sur l'interface web avec comme première ressource, le serveur Teleport lui-même.
Commençons par notre premier test en se connectant à cette ressource.
Cliquez sur "Connect" et sélectionnez votre utilisateur. Pour rappel, l'utilisateur doit exister sur la machine cible.
Cela ouvre une console dans un nouvel onglet et nous voilà connecté sur la machine cible.