Teleport – Une solution pour votre Bastion SSH

modifié le : 13 septembre 2022,
par Guillaume Chéramy
 

Un bastion SSH est une brique d'infrastructure qui permet à une connexion SSH de “rebondir” avant d'atteindre sa cible, il joue le rôle de point d’accès sécurisé (authentification, filtrage) vers plusieurs machines.

Teleport est une solution Open Source de Bastion et dispose de plusieurs fonctionnalités notamment celle des connexions SSH et de la gestion de celle-ci.

Installation de Teleport

Installation de la clé publique Teleport

curl https://deb.releases.teleport.dev/teleport-pubkey.asc | sudo apt-key add -

Ajout d’un nouveau dépôt pour l’installation de Teleport

add-apt-repository 'deb https://deb.releases.teleport.dev/ stable main'

Mise à jour du cache APT

apt-get update

Installation de Teleport

apt install teleport

Installation de Docker

La mise en place de Teleport se fera à l’aide de Docker.

Ajout de la clé GPG officielle de Docker

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -

Ajout du dépôt officiel de Docker

sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/debian \
$(lsb_release -cs) \
stable"

Installation de docker

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

Mise en place de Teleport avec Docker

Faire fonctionner Teleport avec Docker

Choisir l’image de Teleport

docker pull quay.io/gravitational/teleport:7

Génération d’un fichier de configuration pour Teleport

docker run --hostname 192.168.1.150 --rm --entrypoint=/bin/sh -v ~/teleport/config:/etc/teleport quay.io/gravitational/teleport:7 -c "teleport configure > /etc/teleport/teleport.yaml"

Démarrage de Teleport

docker run --hostname 192.168.1.150 --name teleport -v ~/teleport/config:/etc/teleport -v ~/teleport/data:/var/lib/teleport -p 3023:3023 -p 3025:3025 -p 3080:3080 -p 3024:3024 quay.io/gravitational/teleport:7

Accès à l’interface graphique de Teleport

https://192.168.1.150:3080/

Ajout d’un utilisateur pour Teleport (ici l’utilisateur “paul” avec les rôles admin et access et pour login : root et ubuntu)

docker exec teleportbastion tctl users add paul --roles=admin,access --logins=root,ubuntu

Connexion à l’interface graphique de Teleport avec l’URL ci-dessus pour la création de l’utilisateur

https://192.168.1.150:3080/web/invite/3447639ce25512c72f3fb701c7b25885

Création du mot de passe et de la double authentification (scan du QR Code avec un application qui gère l’authentification à deux facteurs → code qui change toute les 30 secondes)


Ajout d’un serveur

- Avec un Token unique pour le serveur et temporaire (1h) :

Authentification avec Teleport depuis le serveur

tsh -–insecure login –proxy=192.168.1.150:3080 –auth=local –user=paul

Génération d’un Token pour ajouter le nouveau serveur

tctl tokens add –type=node –insecure


Ajout du serveur avec le Token qui permet de l'identifier

teleport start –roles=node –token=”le token en question” –auth-server=192.168.1.150

file

- Avec un Token permanent :

Création d’un fichier sur le bastion pour stocker le token

file

Ajout d’un serveur avec le token stocker sur le bastion

teleport start –roles=node –token=token.file –auth-server=192.168.1.150:3080

Création d’un script qui va permettre de connecter directement le serveur au bastion au démarrage ou redémarrage du serveur.

file
Attribution des droits d'exécution au script grâce à la commande chmod

chmod +x teleportscript.sh

Copie du script dans le répertoire de démarrage (pour exécuter directement le script au démarrage du serveur)

cp teleportscript.sh /etc/init.d/teleportscript.sh
update-rc.d teleportscript.sh defaults

Connexion à Teleport depuis un client

tsh —insecure login –proxy=192.168.1.150:3080 –auth=local –user=paul

file


Utilisation

- Connexion via une interface graphique avec une authentification à deux facteurs

- Accès au serveurs via l’interface graphique ou directement par le cmd via ssh

  • file

  • file

- Voir qui est actuellement connecté à un serveur et rejoindre sa session en direct

file

- Voir un replay des différentes sessions SSH

file

- Voir les logs

file

- Gestion des utilisateurs et de leurs différents rôles

file

- Gestion des rôles

file


Site officiel de Teleport

https://goteleport.com/