Forum Linux.général Sécurité - bonnes pratiques pour la gestion des clés SSH pour une infra de prod

Posté par  (site web personnel, Mastodon) . Licence CC By‑SA.
Étiquettes :
8
18
nov.
2015

Bonjour,

Je gère une petite infra avec quelques serveurs sur lesquels je me connecte régulièrement en SSH à partir de différentes machines et/ou différents lieux (bureau, domicile, déplacement). Je me connecte également entre les machines (je fais du ssh de home vers server1, server2, etc mais également de server1 vers server2, etc)

Quelle est la bonne manière de gérer les clés SSH pour ces accès :
* déploiement d'une clé unique sur l'ensemble des machines ?
* connexion systématique via une machine centrale ?
* déploiement automatique des clés ?

Je me pose la question de déployer en auto, mais n'étant pas de sensibilité sysadmin à la base, je ne sais pas ce qui peut se faire, ce qui doit se faire et ce qui ne doit pas se faire.

Merci pour vos retours

  • # une clé par client

    Posté par  (site web personnel) . Évalué à -1.

    Tu créés une clé sur chacun de très clients et tu mets sa partie privée dans authorized_keys de chaque serveur.

    La logique est qu'une clé privée ne doit pas circuler.

  • # une CA SSH

    Posté par  (site web personnel) . Évalué à 2.

    Si tu gères des machines ayant au moins openSSH 5.4, tu peux générer une CA.

    Du coup tu signes ta clef et juste avec la partie public de la CA sur le serveur et de la conf, tu n'as plus à envoyer ta public key dans authorized_keys.

    Je suis d'accord qu'au début c'est vachement plus lourd, mais pour tout nouveau server, c'est plus si lourd que cela.

    • [^] # Re: une CA SSH

      Posté par  (site web personnel, Mastodon) . Évalué à 3.

      Un truc du style ? https://www.digitalocean.com/community/tutorials/how-to-create-an-ssh-ca-to-validate-hosts-and-clients-with-ubuntu

      Ca veut dire qu'il faut un serveur de référence, non ?

      • [^] # Re: une CA SSH

        Posté par  . Évalué à 1.

        Non le CA est compris dans ton authorized_keys, ou dans un paramètre de conf de ton serveur SSH : TrustedUserCAKeys

        Comme le soulignait notre ami un peu plus haut, c'est possible à partir de la version 5.4 d'openssh : référence

        Tu n'as pas la flexibilité d'une chaîne de certification complète à la mode TLS (en particulier pas de révocation), mais tu as quand même la possibilité de configurer tous tes serveurs pour qu'ils utilisent un même CA, et de signer à posteriori toutes les clés qui ont besoin d'avoir un accès. Ce qui te fait l'économie d'un déploiement systématique sur tous tes serveurs de toute nouvelle clé.

        Un exemple utilisant l'authorized_keys

        Après une autre solution centralisée est de stocker les clés publiques de tes users dans un champs LDAP spécifique (sshPublicKey), dans la mesure bien sûr où tu utises un serveur LDAP pour l'authentication. Tu as ensuite la possiblité de gérer ces clés par un GUI de type fusiondirectory ou assimilé.Un exemple de configuration utilisant LDAP

        Une autre manière centralisée, est que tes users voient hébergés leur home (ou un répertoire configuré comme hébergeant tes authorized_keys) sur un partage NFS, mais ça a d'autres inconvénient comme le partage de l'historique bash par exemple (si c'est le home que tu partages).

        Ces 2 dernières solutions (NFS et LDAP) ont l'inconvénient de conditionner l'accès aux machines à leur accessibilité aux machines centrales (serveur NFS ou LDAP) et leur bonne configuration : à utiliser avec précaution surtout si on désactive l'authentification par mot de passe et qu'on a pas un accès physique ou KVM …

      • [^] # Re: une CA SSH

        Posté par  (site web personnel) . Évalué à 1.

        C'est exactement à cela que je pensais.

        • [^] # Re: une CA SSH

          Posté par  (site web personnel, Mastodon) . Évalué à 2.

          Tu considères que c'est à mettre en place à partir de combien de serveurs ? J'ai +/- 10 machines à gérer, du coup, au vu de ce que tu dis ça me paraît un peu "too much".

          • [^] # Re: une CA SSH

            Posté par  (site web personnel) . Évalué à 1.

            Personnellement, je l'ai mis en place à partir de 3 machines. Et mon image raspberry l'inclue maintenant. Du coup, quand je build un raspberry, je me connecte avec ma clef.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.