Accès sécurisé aux instances distantes à l'aide d'un hôte bastion
Ce tutoriel peut entraîner des coûts. Utilisez l'Estimateur de coûts pour générer une estimation du coût en fonction de votre utilisation projetée.
Ce tutoriel vous guide dans le déploiement d'un hôte bastion pour accéder en toute sécurité à des instances distantes au sein d'un nuage privé virtuel (VPC). Un hôte bastion est une instance mise à disposition avec une adresse IP publique, accessible via SSH. Une fois configuré, l'hôte bastion agit comme un serveur de saut, permettant une connexion sécurisée aux instances provisionnées sans adresse IP publique.
Pour réduire l'exposition des serveurs au sein du VPC, vous allez créer et utiliser un hôte bastion. Les tâches administratives sur les serveurs individuels sont effectuées à l'aide de SSH, via un proxy du bastion. L'accès aux serveurs et l'accès Internet normal à partir des serveurs, par exemple pour l'installation de logiciels, ne sont autorisés que si un groupe de sécurité de maintenance spécial est connecté à ces serveurs.
Objectifs
- Apprendre à configurer un hôte bastion et des groupes de sécurité dotés de règles
- Gérer de manière sécurisée des serveurs via l'hôte bastion

- Après avoir mis en place l'infrastructure requise (sous-réseaux, groupes de sécurité avec règles, instances de serveurs virtuels) sur le cloud, l'administrateur DevOps ) se connecte (SSH) à l'hôte bastion en utilisant la clé SSH privée.
- L'administrateur affecte un groupe de sécurité de maintenance doté des règles sortantes appropriées.
- L'administrateur se connecte (SSH) en toute sécurité à l'adresse IP privée de l'instance via l'hôte bastion pour installer ou mettre à jour tout logiciel requis, par exemple un serveur Web.
- L'internaute adresse une requête HTTP/HTTPS au serveur Web.
Avant de commencer
- Vérifiez les autorisations d'utilisateur. Assurez-vous que votre compte d'utilisateur dispose des droits suffisants pour créer et gérer des ressources VPC. Consultez la liste des autorisations requises pour VPC.
- Une clé SSH est nécessaire pour la connexion aux serveurs virtuels. Si vous n'avez pas de clé SSH, reportez-vous aux instructions afin d'en créer une pour VPC.
- Ce tutoriel suppose que vous ajoutez l'hôte bastion dans un cloud privé virtuel existant. Si vous n'avez pas de VPC dans votre compte, créez un VPC avant de passer aux étapes suivantes.
Création d'un hôte bastion
Dans cette section, vous allez créer et configurer un hôte bastion avec un groupe de sécurité dans un sous-réseau distinct.
Créer un sous-réseau
-
Cliquez sur Sous-réseaux sous Réseau dans le volet gauche, puis cliquez sur Créer.
- Sous Emplacement, sélectionnez une zone géographique, une région et une zone.
- Entrez vpc-secure-bastion-subnet comme nom, puis sélectionnez le cloud privé virtuel que vous avez créé.
- Sélectionnez le même groupe de ressources que pour votre VPC.
- Laissez le préfixe d'adresse tel quel et sélectionnez la valeur 256 pour le nombre total d'adresses IP.
-
Faites passer la Passerelle publique à l'état Connecté.
Connectez une passerelle publique au sous-réseau pour permettre à toutes les ressources associées de communiquer avec l'Internet public.
-
Cliquez sur Créer un sous-réseau pour le mettre à disposition.
Création et configuration d'un groupe de sécurité de bastion
Créons un groupe de sécurité et configurons des règles d'entrée vers votre VSI (instance de serveur virtuel) bastion.
-
Sélectionnez Groupes de sécurité sous Réseau, puis cliquez sur Créer.
-
Entrez vpc-secure-bastion-sg comme nom et sélectionnez le VPC que vous avez créé précédemment.
-
Sélectionnez le même groupe de ressources que pour votre VPC.
-
A présent, créez les règles entrantes suivantes en cliquant sur Ajouter dans la section entrante. Elles permettent l'accès SSH et Ping (ICMP). Les valeurs sont indiquées dans le tableau ci-dessous.
Bastion : Règles entrantes Protocole Port / Valeur Type source TCP Plage de ports : 22-22 Tout ICMP Type : 8, Code : Laisser vide Tout Pour renforcer la sécurité, le trafic entrant peut être limité au réseau de l'entreprise ou à un réseau domestique typique. Vous pouvez exécuter
curl ipecho.net/plain ; echo
pour obtenir l'adresse IP externe de votre réseau et l'utiliser à la place. -
Cliquez sur Créer un groupe de sécurité pour le créer.
Créez une instance de bastion
Une fois le sous-réseau et le groupe de sécurité en place, créez l'instance de serveur virtuel du bastion.
- Sous Sous-réseaux dans le volet gauche, sélectionnez vpc-secure-bastion-subnet.
- Cliquez sur Ressources attachées et sous Instances attachées, cliquez sur Créer pour provisionner un nouveau serveur virtuel appelé vpc-secure-bastion-vsi sous le même groupe de ressources que votre sous-réseau.
- Choisissez un lieu et assurez-vous de réutiliser le même endroit plus tard.
- Sous Image, cliquez sur Modifier l'image. Utilisez la zone de recherche pour sélectionner Ubuntu Linux comme système d'exploitation. Vous pouvez sélectionner n'importe quelle version de l'image.
- Cliquez sur Modifier le profil, sélectionnez Calculer comme catégorie et choisissez cx2-2x4 (2 vCPUs et 4 Go de mémoire RAM) comme profil.
- Créez une nouvelle clé SSH, cliquez sur Nouvelle clé
- Entrez vpc-ssh-key comme nom de clé.
- Sélectionnez le même groupe de ressources que pour votre VSI.
- Laissez la Région telle quelle.
- Copiez le contenu de votre clé SSH locale existante sous Clé publique.
- Cliquez sur Ajouter une clé SSH.
- Faites défiler jusqu'à sélectionner le VPC sous Réseau.
- Vérifiez que l'interface de réseau virtuel est sélectionnée et que vpc-secure-bastion-subnet est répertorié en tant que sous-réseau. Cliquez sur l'icône d'édition de ce sous-réseau.
- Tout d'abord, sous Détails de connexion réseau et d'interface de réseau virtuel, vérifiez que vpc-secure-bastion-subnet est sélectionné. Cliquez sur Suivant.
- Pour Réseau dans la section Groupes de sécurité, désélectionnez le groupe de sécurité par défaut et marquez vpc-secure-bastion-sg. Cliquez sur Suivant.
- Dans la boîte de dialogue Configuration IP, laissez tout tel qu'il est et cliquez sur Suivant.
- Enfin, passez tout en revue et terminez en cliquant sur Sauvegarder.
- Cliquez sur Créer un serveur virtuel.
- Une fois l'instance active et En cours d'exécution, cliquez sur vpc-secure-bastion-vsi et réservez une adresse IP flottante en cliquant sur l'icône Editer sous Interfaces réseau, puis sur Adresse IP flottante en sélectionnant Réserver une nouvelle adresse IP flottante. Cliquez sur Sauvegarder pour terminer.
Test de l'hôte bastion
Une fois activée l'adresse IP flottante du bastion, tentez de vous y connecter à l'aide de ssh :
ssh -i ~/.ssh/<PRIVATE_KEY> root@<BASTION_FLOATING_IP_ADDRESS>
Configuration d'un groupe de sécurité avec des règles d'accès de maintenance
Une fois l'accès au bastion établi, poursuivez et créez le groupe de sécurité pour les tâches de maintenance, telles que l'installation et la mise à jour du logiciel.
-
Sélectionnez Groupes de sécurité sous Réseau, puis cliquez sur Créer.
-
Entrez vpc-secure-maintenance-sg comme nom et sélectionnez le VPC que vous avez créé précédemment.
-
Sélectionnez le même groupe de ressources que pour votre VPC.
-
Ajoutez ensuite la règle entrante affichée dans le tableau ci-dessous. Elle autorise l'accès SSH depuis l'hôte bastion.
Maintenance : Règles entrantes Protocole Port / Valeur Type de source Source TCP Ports 22-22 Groupe de sécurité vpc-secure-bastion-sg -
Ensuite, ajoutez la règle de sortie indiquée dans le tableau ci-dessous. Elle autorise l'accès SSH depuis l'hôte bastion.
Maintenance : Règles sortantes Protocole Port / Valeur Type de destination TCP Ports 80-80 Tout TCP Ports 443-443 Tout TCP Ports 53-53 Tout UDP Ports 53-53 Tout Les demandes de serveur DNS sont traitées sur le port 53. DNS utilise TCP pour le transfert de zone et UDP pour les requêtes de nom standard (principal) ou inversé. Les requêtes HTTP se trouvent sur les ports 80 et 443.
-
Cliquez sur Créer un groupe de sécurité pour le créer.
-
Accédez à Groupes de sécurité, puis sélectionnez vpc-secure-bastion-sg.
-
Enfin, éditez le groupe de sécurité et ajoutez la règle sortante suivante.
Bastion : Règles sortantes Protocole Type de destination Destination Port / Valeur TCP Groupe de sécurité vpc-secure-maintenance-sg Ports 22-22
Utilisation de l'hôte bastion pour accéder à d'autres instances du VPC
Dans cette section, vous créez un sous-réseau avec une instance de serveur virtuel et un groupe de sécurité.
Si vous avez déjà dans votre VPC des instances de serveur virtuel auxquelles vous souhaitez vous connecter, vous pouvez ignorer les trois sections suivantes et commencer à Ajouter des instances de serveur virtuel au groupe de sécurité de maintenance.
Créer un sous-réseau
Pour créer un sous-réseau,
- Cliquez sur Sous-réseaux sous Réseau dans le volet gauche, puis cliquez sur Créer.
- Entrez vpc-secure-private-subnet en tant que nom, puis sélectionnez le VPC que vous avez créé.
- Sélectionnez le même groupe de ressources que pour votre VPC.
- Sélectionnez un Emplacement.
- Laissez le préfixe d'adresse tel quel et sélectionnez la valeur 256 pour le nombre total d'adresses IP.
- Faites passer la Passerelle publique à l'état Connecté.
- Cliquez sur Créer un sous-réseau pour le mettre à disposition.
Créez un groupe de sécurité
Pour créer un groupe de sécurité :
- Cliquez sur Groupes de sécurité sous Réseau, puis sur Créer.
- Entrez vpc-secure-private-sg en tant que nom et sélectionnez le VPC que vous avez créé précédemment.
- Cliquez sur Créer un groupe de sécurité.
Création d'une instance de serveur virtuel
Pour créer une instance de serveur virtuel sur le sous-réseau que vous venez de créer :
- Cliquez sur le sous-réseau vpc-secure-private-subnet créé auparavant sous Sous-réseaux.
- Cliquez sur Ressources associées, puis sous Instances associées cliquez sur Créer.
- Pour configurer l'instance :
- Entrez un nom unique, vpc-secure-private-vsi et le groupe de ressources comme précédemment.
- Sélectionnez le même Emplacement que celui déjà utilisé pour le serveur virtuel du bastion.
- Sélectionnez le type de serveur virtuel Public.
- Sous Image, cliquez sur Modifier l'image. Utilisez la zone de recherche pour sélectionner Ubuntu Linux comme système d'exploitation. Vous pouvez sélectionner n'importe quelle version de l'image.
- Cliquez sur Modifier le profil, sélectionnez Calculer comme catégorie et choisissez cx2-2x4 (2 vCPUs et 4 Go de mémoire RAM) comme profil.
- Pour les Clés SSH, choisissez la clé SSH que vous avez créée plus tôt pour le bastion.
- Plus bas, sélectionnez le VPC que vous avez créé. Comme ci-dessus, cliquez sur l'icône d'édition pour vpc-secure-private-subnet sous Network Attachment and virtual network interface details.
- Vérifiez ensuite que vpc-secure-private-subnet est sélectionné. Cliquez sur Suivant.
- Pour Réseau dans la section Groupes de sécurité, désélectionnez le groupe de sécurité par défaut et marquez vpc-secure-private-sg. Cliquez sur Suivant.
- Dans la boîte de dialogue Configuration IP, laissez tout tel qu'il est et cliquez sur Suivant.
- Enfin, passez tout en revue et terminez en cliquant sur Sauvegarder.
- Cliquez sur Créer un serveur virtuel.
Ajouter des instances de serveur virtuel au groupe de sécurité de maintenance
Pour les tâches administratives sur les serveurs, vous devez associer les serveurs virtuels spécifiques au groupe de sécurité de maintenance. Dans la section suivante, vous activez la maintenance, vous vous connectez au serveur privé, mettez à jour les informations sur le package logiciel, puis dissociez à nouveau le groupe de sécurité.
Activez le groupe de sécurité de maintenance pour le serveur.
- Accédez aux Groupes de sécurité et sélectionnez le groupe de sécurité vpc-secure-maintenance-sg.
- Cliquez sur l'onglet Ressources connectées et dans le filtre, sélectionnez Interface de serveur virtuel.
- Cliquez sur Editer les interfaces de serveur virtuel pour afficher la liste des instances de serveur virtuel. Développez la liste et vérifiez la sélection en regard de la colonne Interfaces pour vpc-secure-private-vsi.
- Cliquez sur Sauvegarder pour que les modifications soient appliquées.
Connexion à l'instance
Pour SSH dans une instance utilisant son IP privée, vous utilisez l'hôte bastion comme hôte intermédiaire (jump host).
-
Dans le menu de gauche, sélectionnez Instances de serveur virtuel dans la section Calcul. Notez l'adresse IP réservée (IP privée) pour vpc-secure-private-vsi.
-
Utilisez la commande ssh avec
-J
pour vous connecter au serveur avec l'adresse IP flottante de bastion que vous avez utilisée plus tôt et l'adresse IP privée du serveur que vous venez de rechercher.ssh -J root@<BASTION_FLOATING_IP_ADDRESS> root@<PRIVATE_IP_ADDRESS>
L'option
-J
est reconnue dans OpenSSH version 7.3+. Dans les versions plus anciennes,-J
n'est pas disponible. Dans ce cas, le moyen le plus sûr et le plus simple est d'utiliser le mode de transfert stdio de ssh (-W
) pour faire passer la connexion à travers un hôte bastion. Par exemple,ssh -o ProxyCommand="ssh -W %h:%p root@<BASTION_FLOATING_IP_ADDRESS" root@<PRIVATE_IP_ADDRESS>
Installation du logiciel et réalisation des tâches de maintenance
Une fois connecté, vous pouvez installer un logiciel sur le serveur virtuel ou effectuer des tâches de maintenance.
- Tout d'abord, mettez à jour les informations sur le package logiciel :
apt-get update
- Installez le logiciel souhaité, par exemple Nginx ou MySQL ou IBM Db2.
Lorsque vous avez terminé, déconnectez-vous du serveur avec la commande exit
.
Pour que les internautes puissent effectuer des requêtes HTTP/HTTPS, attribuez une adresse IP flottante à l'instance VSI et ouvrez les ports requis (80 - HTTP et 443 - HTTPS) via les règles entrantes du groupe de sécurité de l'instance VSI privée.
Désactivation du groupe de sécurité de maintenance
Une fois que vous avez terminé l'installation du logiciel ou effectué la maintenance, vous devez supprimer les serveurs virtuels du groupe de sécurité de maintenance pour les maintenir isolés.
- Accédez aux Groupes de sécurité et sélectionnez le groupe de sécurité vpc-secure-maintenance-sg.
- Cliquez sur Ressources connectées, puis sur Editer les interfaces de serveur virtuel.
- Développez les instances de serveurs virtuels et décochez la sélection à côté de la colonne Interfaces pour vpc-secure-private-vsi.
- Cliquez sur Sauvegarder pour que les modifications soient appliquées.
Vous pouvez répéter la commande ssh
ci-dessus avec l'option d'hôte de saut. Il devrait échouer maintenant.
Suppression de ressources
- Basculez sur les instances de serveur virtuel, Arrêter et Supprimer vos instances en cliquant sur le menu d'action correspondant.
- Une fois les instances VSI supprimées, passez aux Sous-réseaux et supprimez-les.
- Une fois les sous-réseaux supprimés, cliquez sur l'onglet VPC et supprimez votre cloud privé virtuel.
Lorsque vous utilisez la console, vous devrez peut-être actualiser votre navigateur pour consulter les informations d'état mises à jour après la suppression d'une ressource.