The bastion OVH

Un vrai bastion OpenSource qui a tout pour plaire propulsé par OVH

Un bastion professionnel pour pas un rond c’est possible avec le bastion d’OVH

Pour résumer en quelques mots un bastion vous permet de sécuriser l’accès à vos serveur, il est plus qu’une simple passerelle SSH, il permet de bénéficier de nombreuses fonctionnalités, que je vais vous détailler dans le billet suivant, si vous voulez voir une solution alternative il existe aussi celle d’HashiCorp.

Liens

Repository Github

Documentation officielle

Fonctionnalités du bastion OVH

Accès utilisateurs

  • Locker les toutes les sessions du bastion
  • Informations de base sur l’utilisateur (état du compte, expiration, MFA, TOTP, PAM, date dernière connexion, changement de mot de passe, etc.)
  • Support des groupes d’utilisateurs
  • Bloquer et débloquer toutes les sessions du bastion
  • Simuler une identité (impersonate)
  • TTL sur les sessions
  • Création d’ACL
  • On peut déléguer ! oui car un bastion ça vie, ça évitera à l’admin de gérer à lui seul ce cycle de vie hautement rébarbatif
  • Lister les accès, les créer, les supprimer
  • Permissions : SCP (download et upload)
  • MFA (Authentification multifacteurs)
  • TOTP (Time-based One-Time Password)
  • Ingress (vous => bastion)

Hôtes

  • Groupe d’hôtes
  • Egress (bastion => serveur)

Outils

  • Ping
  • Alive
  • NetCat
  • MTR
  • Session replay (support de la vitesse d’exécution)
  • Transférer des fichiers via SCP
  • Lancer des commandes séquentielles en parallèle (à la manière de pssh clush-ssh, etc.)
  • Lister les sessions (on peut filtrer par type, date, port, début/fin, host, etc.)
  • Mode « en maintenance », ce qui empêche les utilisateurs de s’authentifier

Avantages

  • Empreinte mémoire limité (2.5Go pour plus de 250 utilisateurs connectés, OS compris d’après les tests d’OVH)
  • Documentation plutôt exhaustive (il manque encore les parties sur le PIV 2FA/MFA , realms, proxy HTTPS)
  • Porté par OVH (parti d’un besoin dans leur propre infrastructure)
  • Image Docker (pour les tests)
  • Script permettant de chiffrer le contenu du home (luks1)
  • Outil de sauvegarde intégré
  • Support de Syslog (bien pour le câbler à un SIEM)
  • Haute disponibilité
  • TOTP
  • MFA
  • Test fonctionnels (bonne couverture de test)
  • CLI permettant de faire énormément d’actions y compris des actions poussées
  • Modularité des plugins (surface d’attaque bien plus faible)

Inconvénients

  • L’absence d’IHM (mais en même temps ça diminue la surface d’attaque)
  • Ne supporte pas (encore) des hosts de types MySQL, RDP
  • Je n’ai pas vu encore de support pour de la métrologie (Prometheus notamment) permettant d’avoir des compteurs sur le nombre de connecté, etc.)
Datacenter

Sécurité élevée

  • Absence d’accès direct en tant qu’utilisateur au shell du bastion
  • Code lancé en mode non privilégié
  • Les helpers sont lancés en root, et la communication entre les modes se fait en JSON
  • Un utilisateur n’a pas accès au filesystem du bastion
  • Logs d’audit et de session replay
  • Architecture modulaire (via les plugins)
  • Haute-disponibilité (via des slaves)

Logs

  • Syslog
  • Base locale SQLite

Installation

Deux possibilités :

  • Docker (pour vos tests, ce n’est pas prod ready)
  • Sources (le script d’installation s’occupe de tout)

Conclusion

Je vais suivre ce projet, il aura bientôt tout d’un bastion professionnel.

Je suis agréablement surpris de la maturité de ce projet OpenSource, et des fonctionnalités offertes. C’est un projet encore jeune, mais il est à mille lieux des « gateway ssh » que l’on connait tous, et qui n’ont rien à voir avec un bastion.

Couplé à des enregistrement SSHFP (Secure SHell Key FingerPrint), du chiffrement de la /home, et quelques bonnes pratiques de sécurité, vous pourriez bénéficier d’une nette amélioration de la sécurité dans vos infrastructures, petites ou grandes.

Je préparerai un autre article sur la prise en main de ce bastion 🙂

Laisser un commentaire:

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *