Chargement en cours

Découverte de Jumpserver

Découverte de Jumpserver

Le remplaçant de Guacamole ?

Derrière ce sous-titre un brin racoleur (encore que…), je vous propose aujourd’hui de découvrir jumpserver, qui comme son nom l’indique… et bien est un jump server, aussi appelé bastion !

Alors je ne vais pas vous faire l’affront de vous expliquer l’utilité d’un Jumphost (oui, encore un autre nom), on va directement passer à la présentation de l’outil !

I) Jumpserver, c’est quoi

Et bien si vous connaissez déjà Apache Guacamole, c’est un peu le même principe : un bastion web clientless pour accéder en SSH, RDP (et même SFTP ou RemoteApp) directement depuis votre navigateur, sans installer de client lourd (bon bah du coup j’ai expliqué ce qu’était un bastion… woops).

Mais JumpServer va clairement plus loin – et j’exagère à peine ! 😐

Techniquement, il s’agit d’un véritable outil PAM (Privileged Access Management), orienté audit et contrôle des accès privilégiés.

Il permet pêle-mêle: enregistrement vidéo obligatoire des sessions, filtrage des commandes SSH (blacklist/whitelist très granulaires), ACLs diverses, filigrane pour DLP, inventaire assets centralisé, accès consoles DB (MySQL, PostgreSQL, Redis…) et même du kubectl web pour Kubernetes !

Bref, c’est Guacamole avec un gros pack sécurité/audit enterprise, le tout gratuit en open source, et donc hostable on-prem !

Guacamole reste excellent pour du RDP/SSH/VNC ultra-léger et stable cela dit, parfait pour homelab ou petite structure sans besoin d’audit poussé… Mais si vous gérez des équipes Ops ou que vous voulez filtrer les risques et avoir un vrai contrôle PAM sans payer CyberArk ou BeyondTrust, JumpServer CE écrase (selon moi) la concurrence en terme de features.

Installation cela dit un poil plus lourde (multi-containers, ~2-3 Go RAM en idle), origine chinoise (on aime on aime pas), mais open source et maintenu activement (30K stars sur Github pour ceux qui aiment les stats).

II) Talk is cheap, show me the code~

Allons donc directement dans le vif du sujet ! Passons à son installation, qui se résume à l’exécution d’un simple script bash qui va nous installer Docker et les différents conteneurs:

sudo su && cd /opt/
curl -sSL https://github.com/jumpserver/jumpserver/releases/latest/download/quick_start.sh | bash

On a droit à un joli script automatisé, comptez 5m et l’install est faite:

On se rend ensuite sur http://mon-hostname pour l’accès WebUI:

Un simple admin et ChangeMe puis un petit captcha, et au premier coup d’oeil l’interface est plutôt propre et moderne !

On peut aussi configurer d’entrée de jeu le MFA, via TOTP:

Et là vous allez me dire, « mais c’est quoi ce watermark là ? Me dites pas qu’il faut acheter la version commerciale !? 😠 »

Calmez-vous… il s’agit d’une fonctionnalité de sécurité, pour dissuader les fuites (screen recording, photo, etc) : il est même incrusté dans les enregistrements de sessions (replay vidéo).

Cela étant dit, on peut facilement le désactiver en nous rendant dans l’onglet Settings, puis Security, et enfin Asset session:

III) Rapide comparaison

Alors en général je fais jamais ça, mais j’me suis dit qu’ici ce serait sympa. Du coup j’avoue j’ai craqué…

… j’ai demandé rapidement à l’IA un mini tableau comparatif, que j’ai réajusté, en essayant d’être objectif mais ai-je besoin de préciser que « les goûts et les couleurs… », « ça dépend des besoins et de l’infra… » 🤔

Mais ça permet de rapidement avoir un coup d’oeil sur toutes les fonctionnalités, sinon l’article n’en finirait pas~

CritèreJumpServer Community Edition (gratuit)Apache Guacamole (gratuit)Gagnant / Remarque
Protocoles supportésSSH, RDP, bases de données (MySQL, PostgreSQL, Redis, etc.), Kubernetes (kubectl web), RemoteApp WindowsSSH, RDP, VNC, TelnetJumpServer : + DB + K8s
Enregistrement sessionsVidéo replay complète (obligatoire pour SSH/RDP)Enregistrement vidéo (configurable, RDP/SSH/VNC)Égalité
Filtrage commandes (SSH)Oui : blacklist/whitelist commandes, ACL finesNon (pas natif, besoin d’extensions ou scripts externes)JumpServer : beaucoup plus fort en PAM/audit
Transfert de fichiers (SFTP)Oui, interface web dédiée + restrictions possiblesOui (via SFTP/SSH, drag & drop basique)JumpServer : plus intégré et contrôlable
AuthentificationLDAP/AD, MFA via TOTP, SSO via CASLDAP/AD via extension, MFA via extension, OIDC/SAML via extension (très bien fait mais pas « core »)Égalité : les deux supportent SSO dans la version gratuite, mais JumpServer l’a natif
Contrôle d’accès (RBAC)RBAC poussé, groupes assets/users, ACL par IP/temps/protocolePermissions simples (users/groups), ACL basiquesJumpServer : bien plus granulaire
Gestion assetsOui, inventaire centralisé + tagsNon (juste connexions manuelles ou via DB)JumpServer
Multi-tenant / OrganisationsBasiqueNonJumpServer (même limité)
Accès KubernetesOui (kubectl web)NonJumpServer
Complexité installationFaible (script shell + HTTPs manuel)Faible (reverse proxy pour HTTPs)Égalité
Ressources serveur requisesPlus élevé (2-4Go de RAM~)Très faible (200-600Mo de RAM~)Guacamole
Interface utilisateurModerne, riche, orientée ops/DevOpsMinimaliste, fonctionnelleJumpserver (plus fourni)
Cas d’usage idéalBesoin d’audit fort, filtrage commandes, accès DB/K8s, PAM completAccès simple RDP/VNC/SSH, homelab, petite/moyenne structure, stabilité maxJumpserver (qui peut le plus, peut le moins)

Au niveau performances justement, en IDLE, voilà un CTOP et HTOP:

Comme dit plus haut, Guacamole est bien plus léger…

IV) Ajout d’un asset, et test rapide

Pour ajouter un asset, rien de plus simple, on se rend sur Assets puis Create, et on choisi son type. Ensuite, on renseigne les champs classiques, ainsi que le user qui sera utilisé pour la connexion.

On peut valider le tout ! Ensuite, il est possible de tester la connectivité:

Enfin, il nous suffit d’ajuster les permissions en allant sur Authorizations, puis on peut créer par exemple une règle pour les membres du groupe Engineers, qui auront accès à tous les assets du node DEFAULT.

On peut bien entendu autoriser seulement certains comptes, certains protocoles, ou encore autoriser ou non l’upload/download, le copy/paste… et même définir une durée pour notre règle !

On valide le tout, et on se logue côté utilisateur~

V) Interface end-user

On a un joli dashboard avec nos sessions récentes:

On a la liste de nos assets accessibles…

Et voilà un peu la tête du web-terminal !

Contrairement à Guacamole avec son copy/paste (un enfer…) ici aucun problème à déclarer, en tout cas pour l’instant !

On a aussi deux trois bricoles sympatoches, du genre un raccourci vers un Wiki, qu’on peut paramétrer côté Admin et que le user peut avoir en raccourci:

L’outil permet aussi d’établir plusieurs connexions dans une même fenêtre, assez pratique j’dois dire:

Et on a un joli SFTP built-in:

VI) Conclusion et side notes, as always~

Alors je vois déjà venir certains commentaires, et effectivement:

  • J’ai essayé d’être un minimum objectif, mais on sent bien (je pense) que mon cœur balance d’ores et déjà pour Jumpserver… après comme dit dans l’article, et je le redis ici encore, Guacamole reste un très bon bastion, mais pour mes besoins, je lui préfère largement Jumpserver ;
  • Comme dit dans le titre il s’agissait d’une découverte de l’outil, pas un tuto complet… mais effectivement il est possible de :
    • Facilement setuper de l’HTTPS ;
    • Gérer les record des sessions ;
    • Pousser plus loin niveau autorisation, idem au niveau des tags, groupes, etc ;

Si vous n’avez pas forcément de contraintes niveau RAM, je ne peux que vous conseiller de l’essayer ! De mon côté, cela doit faire environ 2-3 semaines que je l’utilise petit à petit et toujours pas déçu, au contraire 😉

Sur ce, bonne journée/soirée à vous ! Ciao !

Laisser un commentaire