Je suis Canözüm, Solutions Architect chez Scaleway depuis un an. Je m'occupe d'accompagner techniquement nos clients dans leur migration vers Scaleway. Durant les discussions avec les différents clients que je rencontre, la sécurité des accès aux machines est un sujet central. Pour cela, on peut implémenter un SSH bastion au sein de son infrastructure.

Lorsqu’on déploie une application dans le cloud, il faut pouvoir accéder aux serveurs qui l’hébergent. Il existe plusieurs façons d’accéder à un serveur : RDP pour un serveur Windows, VNC pour un serveur à interface graphique et SSH pour l’accès au terminal. Lors d’un déploiement applicatif, un accès SSH (Secure Shell) suffit. Pour cela, il faut créer une clé SSH. Pour en savoir plus sur les clés SSH, vous pouvez consulter la page documentation Scaleway.

Au sein d’une infrastructure, il est important de pouvoir centraliser les accès aux serveurs pour avoir plus de contrôle et de suivi, en évitant d’exposer les serveurs à l’internet par souci de sécurité.  C’est pour cela qu’on peut être amené à mettre en place un SSH bastion.

SSH bastion: qu'est-ce que c'est, et comment ça marche?

Le SSH bastion est une machine de rebond (c’est-à-dire un serveur de passerelle) qui permet d’accéder aux Instances au sein d’un réseau privé via SSH. Il permet de centraliser le point d’entrée à un réseau privé afin de se connecter aux différentes Instances et de suivre de plus près les accès des utilisateurs à l’infrastructure.

Une fois cette machine virtuelle mise en place, il faut une configuration SSH pour chaque serveur du réseau privé. Pour en savoir plus sur les configurations SSH, vous pouvez consulter ce lien.

Conseils de sécurité pour l’utilisation d’un SSH bastion

Même si le SSH bastion propose une centralisation des accès à l’infrastructure, il est important de faire attention à certains points afin de mieux sécuriser les serveurs. Sans configuration au préalable, il n’y aurait pas de restriction sur l’accès aux différents serveurs. Si on veut suivre le principe du moindre privilège, c’est-à-dire autoriser le minimum de droits à un utilisateur ou bien à une ressource, il faut mettre en place une configuration SSH adéquate pour chaque machine du réseau privé.

L’utilisation d’un SSH bastion nécessite beaucoup de rigueur en sécurité informatique. Au sein de l’organisation, tout le monde doit suivre les bonnes pratiques fixées par les équipes IT. Comme les clés SSH ne sont pas dotées d’une fonctionnalité d’expiration, il faut suivre régulièrement les clés autorisées sur le bastion. Une bonne pratique serait de rajouter une nouvelle couche de sécurité afin d’identifier les utilisateurs.

D’autre part, on peut être tenté d’utiliser des wildcards sur la configuration SSH tels que Host * ForwardAgent: yes afin d’autoriser l’accès pour tous les serveurs. Cependant, ceci crée une faille de sécurité : une fois la clé sur le bastion, le propriétaire de la clé aurait accès à toutes les machines.

Architecture à deux tiers avec SSH bastion

SSH bastion open source

Dans le cas d’une architecture à deux tiers, c’est-à-dire une série d’Instances qui hébergent l’application et une base de données, c'est une bonne pratique de ne pas exposer les différents niveaux sur internet. En hébergeant ceux-ci au sein d’un réseau privé, il faut certains accès pour l’administration des applications. C’est à ce moment-là qu'un SSH bastion peut être bénéfique pour la centralisation des accès SSH.

Il existe des outils open source de rebond SSH tels que Teleport, Boundary de Hashicorp ou tout simplement OpenSSH.

Il est possible d’illustrer l’architecture décrite ci-dessus sous forme de schéma :


Avec le SSH bastion de Scaleway

Chez Scaleway, la mise en place d’un SSH bastion se fait en un clic sur la console. Lorsque vous utilisez la fonctionnalité SSH bastion intégrée à la Public Gateway, toutes les clés associées à votre projet sont importées automatiquement sur le bastion.


On peut visualiser la même infrastructure à l’aide de ce schéma :


Conclusion

Associé à de bonnes pratiques de sécurité, le SSH bastion est un outil puissant qui permet de créer un point d’entrée unique à votre infrastructure. Vous pouvez choisir parmi les différents outils open source ou bien utiliser des hôtes managés par des fournisseurs cloud sans se soucier de son hébergement ou son maintien.

Pour creuser le sujet plus loin, voici un tutoriel pour apprendre à utiliser SSH Bastion, ainsi qu'un quickstart sur VPC.