GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Gestion des clés SSH avec privacyIDEA


par weinstock @ pixabay

Dans ce tutoriel, je vais montrer comment vous pouvez gérer vos clés SSH pour tous vos serveurs et différents comptes d'utilisateurs. C'est important si vous avez plus d'une clé SSH et c'est encore plus important si vous êtes responsable de nombreux utilisateurs différents avec des clés SSH différentes. Savez-vous encore quelles clés se trouvent sur quels serveurs ? Que ferez-vous si vous devez révoquer les clés de l'utilisateur ?

Nous utiliserons privacyIDEA comme système pour gérer les clés SSH. À l'origine, privacyIDEA est un système de gestion des jetons de mot de passe à usage unique. Mais il y a quelque temps, il a été amélioré avec un nouveau concept afin qu'il puisse être utilisé pour gérer de nombreux types d'éléments d'authentification différents - dans ce cas, les clés SSH. (J'ai donné une conférence allemande à ce sujet lors de la conférence allemande OpenRheinRuhr).

Prérequis

Je suppose que vous avez installé un système privacyIDEA et connecté votre base de données d'utilisateurs. Vous pouvez le faire facilement en suivant ce tutoriel qui vous donnera un système de type appliance basé sur Ubuntu LTS.

Ce que nous allons faire maintenant, c'est

  1. télécharger les clés SSH pour les utilisateurs,
  2. configurer quelle clé SSH peut être utilisée sur quel serveur SSH
  3. et enfin adapter la configuration SSH sur les serveurs SSH, afin que les clés SSH gérées par privacyIDEA soient utilisées pour s'authentifier sur le serveur SSH.

Télécharger des clés SSH

Nous devons d'abord télécharger les clés SSH des utilisateurs.

Veuillez noter : Nous avons seulement besoin de télécharger la clé publique SSH. Ne téléchargez jamais de clé privée !

Lors du téléchargement d'une clé SSH, un nouvel objet jeton de type Clé SSH est créé. Pour le moment, seul l'administrateur peut télécharger la clé SSH d'un utilisateur. L'administrateur doit se connecter et sélectionner l'utilisateur correspondant.

Cliquez ensuite sur le bouton S'inscrire et sélectionnez le type Token SSH et copiez-collez la clé publique SSH.

La description du token sera remplie automatiquement avec le commentaire de la clé SSH.

Vous pouvez maintenant passer au jeton view et vous pouvez voir le nouveau jeton créé de type sshkey

Attribuer la clé SSH au serveur SSH

L'idée d'utiliser des jetons pour certaines machines est décrite à l'origine sur github et également dans la documentation en ligne.

Vous devez définir quel jeton est autorisé à s'authentifier auprès de quelle application sur quelle machine. (De cette façon, l'authentification hors ligne avec LUKS est également possible) Cela peut être fait dans les Machines vue.

Dans privacyIDEA 1.5, vous devez également définir la machine (le serveur SSH) avec l'adresse IP. Cela changera dans privacyIDEA 2.x.

De cette façon, nous créons une définition de machine indiquant que le jeton ssh SSHK00018FD9 peut être utilisé pour se connecter via SSH sur le serveur 172.16.200.1. Si la clé d'option est laissée vide, ce jeton SSH peut être utilisé pour se connecter en tant qu'utilisateur root. Vous pouvez également entrer une option "utilisateur" avec le nom d'utilisateur comme valeur pour pouvoir vous connecter en tant qu'un autre utilisateur.

Configurer le serveur SSH

Maintenant, le serveur SSH doit savoir que la clé, qui a été définie de manière centralisée dans privacyIDEA, peut être utilisée pour se connecter via SSH. Il existe deux façons d'y parvenir.

Nous pouvons utiliser saltstack pour distribuer les clés SSH à tous les serveurs SSH. Pour cela, nous devons configurer et exécuter saltstack, ce qui nous donne un peu de temps système. C'est pourquoi nous choisissons la deuxième alternative dans ce tutoriel.

La deuxième alternative utilise la clé de configuration SSH AuthorizedKeysCommand . Cela peut être utilisé dans /etc/ssh/sshd_config pour définir une commande, qui est exécutée chaque fois que quelqu'un essaie de se connecter via SSH. Une telle commande doit prendre le nom d'utilisateur comme paramètre et doit renvoyer une liste de clés SSH autorisées.

Pour ce faire, nous utilisons la commande privacyidea-authorizedkeys fourni avec le client d'administration privacyidea. Vous devez donc installer le client d'administration privacyidea sur chacun de vos serveurs SSH. Vous pouvez le faire en utilisant le package ubuntu prêt à l'emploi du tableau de bord ou le package python de l'index du package Python.

Pour installer le client d'administration privacyidea dans votre système principal, vous exécutez :

pip install privacyideaadm

privacyidea-authorizedkeys n'est pas autorisé à prendre des paramètres supplémentaires à l'exception du nom d'utilisateur. C'est pourquoi vous devez créer un fichier de configuration /etc/privacyidea/authorizedkeyscommand qui ressemble à ceci :

[Default]
url = https://your.privacyidea.server
admin = low_rights_admin
adminrealm = admin_realm
password = secret

Assurez-vous de restreindre les droits d'accès à ce fichier. Dans un environnement productif, vous devez également vous assurer que l'administrateur de jetons mentionné dans ce fichier de configuration n'est pas autorisé à effectuer des tâches supplémentaires telles que la suppression ou la création de jetons.

Si tout est correctement configuré, vous devriez pouvoir exécuter

privacyidea-authorizedkeys root

... et vous devriez voir la clé publique ssh que vous avez téléchargée sur privacyIDEA.

Enfin, vous devez reconfigurer le démon SSH et le redémarrer. Votre /etc/ssh/sshd_config devrait avoir une section qui ressemble à ceci :

AuthorizedKeysCommand /usr/bin/privacyidea-authorizedkeys
# You also should run the command with lower privileges.
# The low_priv_user needs to have read access to /etc/privacyidea/authorizedkeyscommand.
# AuthorizedKeysCommandUser low_priv_user

Authentifiez-vous !

Après avoir redémarré le démon SSH, vous devriez pouvoir vous connecter via SSH avec la clé SSH téléchargée. Dès que vous supprimez le jeton SSH ou même désactivez le jeton SSH dans privacyIDEA, l'utilisateur ne peut plus se connecter avec cette clé SSH.

De cette façon, vous avez un contrôle total sur toutes les clés de tous vos utilisateurs. Vous pouvez désactiver une clé SSH à un point central et un utilisateur ne pourra plus se connecter à aucun serveur SSH.


Ubuntu
  1. Comment utiliser les clés SSH avec Plesk

  2. SSH - Générer et travailler avec des clés ssh

  3. Comment utiliser Ssh-copy-id avec un tunnel Ssh à sauts multiples ?

  4. Erreur de clé Ssh invalide dans Juju lors de son utilisation avec Maas ?

  5. Premiers pas avec SSH sous Linux

Comment configurer des clés SSH sur Ubuntu 20.04

Gestion des packages Ubuntu avec apt

Comment utiliser une clé SSH avec des utilisateurs non root

Générer des clés RSA avec SSH en utilisant PuTTYgen

Connectez-vous à un serveur Linux avec une clé privée SSH sur un client Windows

Connectez-vous avec une clé privée SSH sous Linux et macOS