Nous décrivons la procédure d'accÚs d'urgence aux hÎtes SSH avec des clés matérielles

Nous décrivons la procédure d'accÚs d'urgence aux hÎtes SSH avec des clés matérielles

Dans cet article, nous allons élaborer une procédure pour un accÚs d'urgence aux hÎtes SSH en utilisant des clés de sécurité matérielles hors ligne. C'est simplement une des approches, et vous pouvez l'adapter selon vos besoins. Nous allons stocker le centre de certification SSH pour nos hÎtes sur la clé de sécurité matérielle. Ce schéma fonctionnera pratiquement sur n'importe quel OpenSSH, y compris SSH avec SSO.

Pourquoi tout cela ? Eh bien, c'est une solution de dernier recours. C'est une porte dérobée qui vous permettra d'accéder à votre serveur lorsque, pour une raison ou une autre, rien d'autre ne fonctionne.

Pourquoi utiliser des certificats au lieu de clés publiques/privées pour un accÚs d'urgence ?

  • Contrairement aux clĂ©s publiques, la durĂ©e de vie des certificats peut ĂȘtre trĂšs courte. Vous pouvez gĂ©nĂ©rer un certificat valable pendant 1 minute ou mĂȘme 5 secondes. Une fois ce dĂ©lai Ă©coulĂ©, le certificat ne sera plus valable pour de nouvelles connexions. C'est idĂ©al pour un accĂšs d'urgence.
  • Vous pouvez crĂ©er un certificat pour n'importe quel compte sur vos hĂŽtes et, si nĂ©cessaire, envoyer de tels certificats « Ă  usage unique » Ă  vos collĂšgues.

Ce dont vous aurez besoin

  • Des clĂ©s de sĂ©curitĂ© matĂ©rielles qui prennent en charge les clĂ©s rĂ©sidentes.
    Les clĂ©s rĂ©sidentes sont des clĂ©s cryptographiques qui sont entiĂšrement stockĂ©es Ă  l'intĂ©rieur de la clĂ© de sĂ©curitĂ©. Parfois, elles sont protĂ©gĂ©es par un code PIN alphanumĂ©rique. La partie publique de la clĂ© rĂ©sidente peut ĂȘtre exportĂ©e depuis la clĂ© de sĂ©curitĂ©, si nĂ©cessaire, avec le descripteur de la clĂ© privĂ©e. Des clĂ©s USB telles que la sĂ©rie Yubikey 5 prennent en charge les clĂ©s rĂ©sidentes. Il est prĂ©fĂ©rable qu'elles soient destinĂ©es uniquement Ă  un accĂšs d'urgence Ă  l'hĂŽte. Pour cet article, j'utiliserai une seule clĂ©, mais vous devriez en avoir une supplĂ©mentaire pour la sauvegarde.
  • Un endroit sĂ©curisĂ© pour stocker ces clĂ©s.
  • OpenSSH version 8.2 ou supĂ©rieure sur votre ordinateur local et sur les serveurs auxquels vous souhaitez accĂ©der en urgence. Ubuntu 20.04 est livrĂ© avec OpenSSH 8.2.
  • (optionnel, mais recommandĂ©) Un outil CLI pour vĂ©rifier les certificats.

Préparation

Pour commencer, vous devez créer un centre de certification qui sera stocké sur la clé de sécurité matérielle. Insérez la clé et exécutez :

$ ssh-keygen -t ecdsa-sk -f sk-user-ca -O resident -C [security key ID]

En commentaire (-C), j'ai spécifié yubikey-9-512-742@smallstep.com pour ne pas oublier à quelle clé de sécurité ce centre de certification se réfÚre.

En plus d'ajouter la clé à Yubikey, deux fichiers seront générés localement :

  1. sk-user-ca, le descripteur de clé qui fait référence à la clé privée stockée dans la clé de sécurité,
  2. sk-user-ca.pub, qui sera la clé publique pour votre centre de certification.

Mais ne vous inquiĂ©tez pas, une autre clĂ© privĂ©e est stockĂ©e sur le Yubikey, et elle ne peut pas ĂȘtre extraite. Tout est donc sĂ©curisĂ© ici.

Sur les hÎtes au nom de l'utilisateur root, ajoutez (si ce n'est pas déjà fait) à la configuration de votre SSHD (/etc/ssh/sshd_config) ce qui suit :

TrustedUserCAKeys /etc/ssh/ca.pub

Ensuite, sur l'hÎte, ajoutez la clé publique (sk-user-ca.pub) dans /etc/ssh/ca.pub

Redémarrez le démon :

# /etc/init.d/ssh restart

Nous pouvons maintenant essayer d'accéder à l'hÎte. Mais d'abord, nous aurons besoin d'un certificat. Créez une paire de clés qui sera liée au certificat :

$ ssh-keygen -t ecdsa -f emergency

Certificats et paires SSH
Parfois, on a envie d'utiliser un certificat comme substitut à une paire de clés publique/privée. Mais pour l'authentification de l'utilisateur, un seul certificat ne suffit pas. Chaque certificat a également une clé privée associée. C'est pourquoi nous devons générer cette paire de clés "d'urgence" avant de nous délivrer le certificat. Il est important que le certificat signé soit montré au serveur, en spécifiant la paire de clés pour laquelle nous avons la clé privée.

Ainsi, l'Ă©change de clĂ©s publiques est toujours vivant et en pleine forme. Cela fonctionne mĂȘme avec des certificats. Les certificats libĂšrent simplement le serveur de la nĂ©cessitĂ© de stocker des clĂ©s publiques.

Ensuite, crĂ©ez le certificat lui-mĂȘme. J'ai besoin d'une autorisation utilisateur ubuntu dans une fenĂȘtre de 10 minutes. Vous pouvez faire cela Ă  votre façon.

$ ssh-keygen -s sk-user-ca -I test-key -n ubuntu -V -5m:+5m emergency

Vous serez invité à signer le certificat avec des empreintes digitales. Vous pouvez ajouter d'autres noms d'utilisateurs, séparés par des virgules, par exemple, -n ubuntu,carl,ec2-user.

Voilà, maintenant vous avez un certificat ! Ensuite, il faut définir les bonnes permissions :

$ chmod 600 emergency-cert.pub

AprĂšs cela, vous pouvez consulter le contenu de votre certificat :

$ step ssh inspect emergency-cert.pub

Voici Ă  quoi ressemble le mien :

emergency-cert.pub
        Type: ecdsa-sha2-nistp256-cert-v01@openssh.com certificat utilisateur
        Clé publique: ECDSA-CERT SHA256:EJSfzfQv1UK44/LOKhBbuh5oRMqxXGBSr+UAzA7cork
        CA de signature: SK-ECDSA SHA256:kLJ7xfTTPQN0G/IF2cq5TB3EitaV4k3XczcBZcLPQ0E
        ID de clé: "test-key"
        Numéro de série: 0
        Valide: du 2020-06-24T16:53:03 au 2020-06-24T17:03:03
        Principaux :
                ubuntu
        Options critiques: (aucune)
        Extensions:
                permit-X11-forwarding
                permit-agent-forwarding
                permit-port-forwarding
                permit-pty
                permit-user-rc

Ici, la clé publique est la clé d'urgence que nous avons créée, et elle est liée au centre de certification sk-user-ca.

Enfin, nous sommes prĂȘts Ă  exĂ©cuter la commande SSH :


$ ssh -i emergency ubuntu@my-hostname
ubuntu@my-hostname:~$

  1. Vous pouvez maintenant créer des certificats pour n'importe quel utilisateur sur l'hÎte qui fait confiance à votre autorité de certification.
  2. Vous pouvez supprimer emergency. Vous pouvez conserver sk-user-ca, mais ce n'est pas nĂ©cessaire, car il est Ă©galement sur la clĂ© de sĂ©curitĂ©. Vous voudrez peut-ĂȘtre Ă©galement supprimer la clĂ© publique PEM d'origine de vos hĂŽtes (par exemple, dans ~/.ssh/authorized_keys pour l'utilisateur ubuntu), si vous l'avez utilisĂ©e pour un accĂšs d'urgence.

AccĂšs d'urgence : plan d'action

Insérez la clé de sécurité et exécutez la commande :

$ ssh-add -K

Vous ajouterez ainsi la clé publique de l'autorité de certification et le descripteur de clé à l'agent SSH.

Exportez maintenant la clé publique pour créer le certificat :

$ ssh-add -L | tail -1 > sk-user-ca.pub

Créez un certificat avec une durée de validité, par exemple, d'une heure maximum :

$ ssh-keygen -t ecdsa -f emergency
$ ssh-keygen -Us sk-user-ca.pub -I test-key -n [username] -V -5m:+60m emergency
$ chmod 600 emergency-cert.pub

Et maintenant, reconnectez-vous via SSH :

$ ssh -i emergency username@host

Si votre fichier .ssh/config pose des problĂšmes de connexion, vous pouvez lancer ssh avec l'option -F none pour vous en passer. Si vous devez envoyer le certificat Ă  un collĂšgue, la maniĂšre la plus simple et sĂ©curisĂ©e est d'utiliser Magic Wormhole. Cela nĂ©cessitera seulement deux fichiers — dans notre cas, ce sont emergency et emergency-cert.pub.

Ce que j'apprécie dans cette approche, c'est le support matériel. Vous pouvez mettre les clés de sécurité dans un coffre-fort, et elles n'iront nulle part.

En tant que publicité

Serveurs Épiques — ce sont des VPS bon marchĂ© avec de puissants processeurs AMD, frĂ©quence du cƓur CPU jusqu'Ă  3,4 GHz. La configuration maximale permet de gĂ©rer pratiquement toutes les tĂąches — 128 cƓurs CPU, 512 Go de RAM, 4000 Go NVMe. Rejoignez-nous !

Nous décrivons la procédure d'accÚs d'urgence aux hÎtes SSH avec des clés matérielles

Source : habr.com

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster