
🔒 The Bastion
Présentation
Les bastions sont un groupe de machines utilisées comme point d'entrée unique par les équipes opérationnelles (administrateurs systèmes, développeurs, administrateurs de bases de données, ...) pour se connecter de manière sécurisée à des périphériques (serveurs, machines virtuelles, instances cloud, équipements réseau, ...), généralement via ssh.
The Bastion fournit des mécanismes d'authentification, d'autorisation, de traçabilité et d'auditabilité pour l'ensemble de votre infrastructure.
En se plaçant entre vos utilisateurs et votre infrastructure, The Bastion ajoute une couche d'abstraction, de sorte que votre infrastructure n'ait pas besoin de connaître individuellement les membres de vos équipes opérationnelles.
Chaque membre de votre équipe dispose d'un compte individuel sur The Bastion, et peut être membre d'un ou plusieurs groupes bastion qui peuvent leur donner accès à une ou plusieurs infrastructures. Les périphériques de l'infrastructure n'ont besoin de connaître et de faire confiance qu'au(x) groupe(s) bastion dont ils peuvent faire partie.
Le système RBAC fin de The Bastion permet de déléguer certaines responsabilités à n'importe quel compte, à l'échelle d'un groupe ou du bastion, y compris à des comptes qui pourraient être utilisés par votre automatisation pour, par exemple, gérer le cycle de vie des comptes (lié à votre système de gestion des ressources humaines, votre LDAP ou AD), garantir la mise à jour des ACL d'un groupe (lié à votre CMDB), etc. Les processus automatisés sont faciles à mettre en œuvre via l'API JSON sur SSH.
Ressources de connaissances
Vous voulez en savoir plus tout en voyant de jolis dessins ? Voici une série d'articles de blog qui approfondissent les fonctionnalités et principes fondamentaux de The Bastion :
Autres ressources qui pourraient vous intéresser :
- Documentation en ligne
- (Vidéo en français, slides en anglais) The Bastion au Very Tech Trip 2023, étude de cas de gestion d'une infrastructure avec et sans The Bastion
- (Vidéo en français, slides en anglais) The Bastion à l'OSSIR, 2021, explication rapide des principes fondamentaux, puis détail de la fonctionnalité des realms, et enfin focus sur les raisons pour lesquelles les choix techniques de mise en œuvre améliorent la sécurité (en ajoutant volontairement une vulnérabilité de sécurité dans le code pour le prouver !)
- (Podcast en français) The Bastion chez NoLimitSecu, 2021, interview avec questions-réponses
♻️ Aucune hypothèse sur votre environnement
Rien de sophistiqué n'est nécessaire, ni du côté entrant ni du côté sortant de The Bastion pour le faire fonctionner.
Seul votre bon vieux client ssh est nécessaire pour se connecter à travers lui, et de l'autre côté, n'importe quel serveur sshd standard fera l'affaire. Cela inclut, par exemple, les équipements réseau sur lesquels vous n'avez peut-être pas la possibilité d'installer un logiciel personnalisé.
Les anciens équipements qui ne prennent en charge que des algorithmes de cryptographie à faible sécurité ou telnet peuvent être cachés d'Internet en les plaçant derrière un pare-feu et en n'autorisant que The Bastion, évitant ainsi un compromis de sécurité en n'autorisant que des connexions de haute sécurité du côté entrant du bastion.
➰ Fiabilité
- Seules quelques bibliothèques bien connues sont utilisées, moins de code tiers signifie une surface d'attaque plus petite
- The Bastion est conçu pour être autonome : aucune dépendance telle que des bases de données, d'autres démons, d'autres machines ou des services cloud tiers, ni pour la phase d'authentification ni pour celle d'autorisation, signifie statistiquement moins de temps d'arrêt
- La haute disponibilité peut être configurée pour que plusieurs instances de bastion forment un cluster de plusieurs instances, avec n'importe quelle instance utilisable à tout moment (schéma actif/actif)
:godmode: Liste non exhaustive des fonctionnalités
- Schémas d'accès personnels et de groupe avec délégation des rôles de groupe pour garantir l'autonomie des équipes sans compromis sur la sécurité
- Rupture de protocole SSH entre les connexions entrante et sortante
- Enregistrement de session interactive (dans des fichiers ttyrec standard)
- Enregistrement de session non interactive (stdout et stderr via ttyrec)
- Support de logging étendu via syslog pour une consommation aisée par les SIEM
- Les fonctionnalités d'authentification incluent le support du MFA/2FA (mot de passe, TOTP) en plus de l'authentification par clé publique
- Support de l'attestation et de l'application des clés Yubico PIV du côté de la connexion entrante
- Support de mosh du côté de la connexion entrante
- Support du passage de scp, sftp et rsync pour télécharger et/ou téléverser des fichiers depuis/vers des serveurs distants
- Support du passage du sous-système SSH netconf
- Support des realms, pour créer une relation de confiance entre deux bastions de deux entreprises potentiellement différentes, en séparant les phases d'authentification et d'autorisation tout en appliquant les politiques locales
- Support de l'autologin SSH par mot de passe du côté sortant pour les appareils hérités ne supportant pas l'authentification par clé publique, tout en forçant une authentification par clé publique correcte du côté entrant
- Support de l'autologin telnet par mot de passe du côté sortant pour les appareils très anciens ne supportant pas SSH, tout en forçant une authentification SSH par clé publique correcte du côté entrant
- Support du proxy HTTPS avec gestion de l'authentification et de l'autorisation par intermédiaire, pour le découplage des mots de passe entrants et sortants (principalement utile pour les API des équipements réseau)
🔧 Installation, mise à jour, utilisation de The Bastion
Veuillez consulter la documentation en ligne, ou la version textuelle correspondante dans le dossier doc/.
🎥 Exemple rapide de connexion et de rejeu

⚡ TL;DR : testez-le : bac à sable jetable avec Docker
C'est un bon moyen de tester The Bastion en quelques secondes, mais lisez la FAQ si vous envisagez sérieusement d'utiliser la conteneurisation en production.