Comment utiliser un hôte Bastion pour me connecter en toute sécurité à mon instance Linux EC2 dans un sous-réseau privé ?

Lecture de 5 minute(s)
0

Je souhaite utiliser un hôte bastion pour me connecter à mon instance Linux Amazon Elastic Compute Cloud (Amazon EC2) qui s’exécute dans un sous-réseau privé.

Brève description

Les instances Linux EC2 utilisent des fichiers de paires de clés SSH comme méthode d’authentification par défaut. Grâce aux fichiers de paires de clés, il n’est pas nécessaire de fournir de noms d'utilisateur et mots de passe SSH. Afin de protéger l’environnement, veillez à ne jamais stocker de clés privées sur l’hôte bastion. Pour établir une connexion à l’aide d’un hôte bastion, utilisez le transfert ssh-agent sur le client. Le ssh-agent permet à un administrateur de se connecter à une autre instance depuis le bastion sans stocker la clé privée sur le bastion.

Résolution

Prérequis

  • L’hôte bastion doit être présent dans le sous-réseau public du VPC pour que vous puissiez y accéder via Internet.
  • Configurez le groupe de sécurité de l’instance Linux privée pour qu’il accepte les connexions SSH uniquement depuis l’hôte Bastion.
  • Configurez le groupe de sécurité de l'hôte du bastion pour autoriser les connexions SSH (TCP/22) uniquement à partir d'adresses IP connues et fiables.

Configuration du transfert ssh-agent sur un client macOS ou Linux

Remarque : le package openssh-clients est installé par défaut sur la plupart des distributions Linux et macOS et contient le ssh-agent.

1.    Exécutez la commande suivante pour démarrer le ssh-agent en arrière-plan. Le ssh-agent stocke vos clés SSH en mémoire.

#  eval $(ssh-agent)

2.    Exécutez la commande suivante pour ajouter la clé SSH au ssh-agent :

# ssh-add "/path/to/key.pem"

3.    Exécutez la commande suivante pour vérifier que les clés ont bien été ajoutées au ssh-agent :

# ssh-add -l

4.    Exécutez la commande suivante pour vous connecter à l’hôte bastion. Dans cette commande, remplacez User et Bastion_Host_****IP_address par les valeurs correspondant à votre cas d’utilisation.

# ssh -A User@Bastion_Host_IP_Address

Remarque : veillez à inclure l’indicateur -A dans la commande ci-dessus. Sans l'indicateur -A, les clés ne seront pas ajoutées à la mémoire et le transfert ssh-agent ne fonctionnera pas. Une fois les clés SSH ajoutées à la mémoire, il n’est pas nécessaire de spécifier la clé SSH elle-même à l’aide de l’indicateur -i. Le protocole SSH tentera en effet automatiquement d’utiliser toutes les clés SSH enregistrées dans le ssh-agent.

5.    Une fois la connexion à l’hôte bastion établie, exécutez la commande suivante pour vous connecter à l’instance Linux privée. Dans cette commande, remplacez User et Private_instance_IP_address par les valeurs correspondant à votre cas d’utilisation.

# ssh User@Private_instance_IP_address

Si la clé privée correspondant à l’instance privée est chargée dans ssh-agent, la connexion sera établie avec succès.

Configuration du transfert ssh-agent sur un client Windows

Vous pouvez vous connecter à des instances VPC Linux depuis Windows à l’aide de PuTTY (un client SSH gratuit pour Windows). Pour accéder aux fonctionnalités de l’agent SSH, utilisez Pageant (un agent d’authentification SSH). Pageant conserve vos clés privées en mémoire. Une fois Pageant installé, vous pouvez utiliser l’option de transfert d’agent dans PuTTY pour vous connecter à des instances dans des sous-réseaux privés.

1.    Téléchargez et installez PuTTY et Pageant depuis la page de téléchargement de PuTTY.

2.    PuTTY ne prend pas nativement en charge le format PEM pour les clés SSH. Afin de vous connecter à votre instance à l’aide de PuTTY, utilisez PuTTYgen pour convertir votre clé privée du format PEM au format PuTTY. PuTTYgen est disponible sur la page de téléchargement de PuTTY. Pour en savoir plus, consultez la section Conversion de votre clé privée avec PuTTYgen.

3.    Ouvrez Pageant et ajoutez les clés privées. Pour importer la clé au format PUTTY dans Pageant, lancez l’application Pageant depuis le menu Démarrer. Par défaut, Pageant s'ouvre en mode réduit dans la zone de notification.

Remarque : si l’icône Pageant n’apparaît pas dans la zone de notification, utilisez les paramètres de la barre des tâches pour l’ajouter. Pour en savoir plus, consultez la page Personnaliser la zone de notification de la barre des tâches sur le site Web support.microsoft.com.

4.    Pour ajouter vos clés SSH, cliquez avec le bouton droit de la souris sur l’icône Pageant dans la zone de notification, puis choisissez Ajouter une clé. Pour afficher la clé ajoutée, cliquez avec le bouton droit de la souris sur l’icône Pageant dans la zone de notification, puis choisissez Afficher les clés.

5.    Procédez de la façon suivante pour démarrer une session SSH PuTTY et activer l’option Autoriser le transfert d’agent :

  • Dans le menu Démarrer, choisissez Tous les programmes, PuTTY, PuTTY.
  • Dans le volet Catégorie, choisissez Session.
  • Dans le champ Nom d’hôte, choisissez l’une des approches suivantes :
    Pour vous connecter à l’aide du nom DNS public de votre instance, saisissez user-name@instance-public-dns.
    Pour vous connecter à l’aide de l’adresse IPv4 de votre instance, saisissez user-name@instance-IPv4-address.
  • Sélectionnez Type de connexion, SSH, et vérifiez que le port est paramétré sur 22.
  • Dans le volet Catégorie, développez Connexion, SSH, puis sélectionnez Auth.
  • Choisissez Autoriser le transfert d’agent.
  • Choisissez Ouvrir.

6.    Vous pouvez vous connecter à n’importe quelle instance VPC à partir du bastion sans disposer de la clé privée SSH sur le bastion. Utilisez la commande suivante pour vous connecter à d’autres instances. Dans cette commande, remplacez User et Private_instance_IP_address par les valeurs correspondant à votre cas d’utilisation.

# ssh User@Private_instance_IP_address

Si la clé privée correspondant à l’instance privée est chargée dans Pageant, la connexion sera établie avec succès.

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 10 mois