Apps – GUACAMOLE
La prise en main à distance sur les SIs1 est un sujet qui questionne toujours. Certains vous diront qu’il est question de sécurité, d’autres de flexibilité ou encore de disponibilité…
C’est ainsi qu’un certain nombres d’équipes informatiques utilisent :
- VPN SSL2
- RDS3 via TSGW4
- Solution de prise en main à distance (TeamViewer, LogMeIn, NinjaRMM et j’en passe)
Je vois cela d’un autre regard et sous un autre angle. Je veux parler du regard du contrôle, de l’audit et de la non-répudiation ! Du respect du RGPD5 et des données stockées. Oui, je fais partie de ces SysAdmins là, ceux qui croient en l’ISO27001 et HDS6, ceux qui croient au BASTION <3
Je ne vais pas cracher sur TeamViewer car je l’ai longtemps utilisé à des fins personnelles pour me connecter à mon lab, mais bon niveau sécurité c’est loin d’être fou et encore une fois, où sont mes données ? Et il est toujours borderline dans son utilisation commerciale ou non…
Dans le monde professionnel, j’ai eu le loisir d’utiliser et d’implémenter une solution française de BASTION. Cette solution est super (je n’ai pas d’action chez eux mais c’est avec grand plaisir que je réaliserais de nouveau l’implémentation de cette solution) et les équipes support et commercial sont très compétentes.
Quoi ? Le nom de la solution ? Cleanroom/Cyberelement par SYSTANCIA
Mais voilà. Bien qu’une super solution, moi pauvre petit AdminSys je ne peux pas me payer la solution voyez vous et bonjour l’usage pour du lab. C’est alors que j’ai dû me tourner vers le monde de l’open source…
J’ai fait fumer mes méninges et avec la grosse Adrienne de mon talant (où Montalant ? 🙂 ) je me suis lancé dans l’implémentation d’un bastion GUACAMOLE ! OLE !
En réalité, ce n’est pas ma première tentative d’implémentation du bastion Guacamole, mais je n’ai jamais aimé l’approche Docker et je n’ai jamais eu le temps de vraiment étudier la solution. Pis là bah, je me suis dit c’est le moment de réaliser ce que je n’ai jamais réussi à concrétiser 🙂
Avant-Propos
Cet article va être plutôt conséquent. Donc il est préférable de se prendre un petit pack de cerveza (pourquoi petit ?) pour ne pas se déshydrater pendant ce billet.
Pour rendre ce dernier plus digeste, j’ai pris le parti de scinder quelques fonctionnalités dans des billets dédiés et de couper l’article en plusieurs sous-articles. L’implémentation d’un bastion nécessite un certain nombre de composants tiers et surtout une grande réflexion quant à l’architecture et aux fonctionnalités.
Bref, j’ai fait le choix encore une fois de partir sur un environnement LINUX, RHEL7 comme OS8 et d’appliquer comme d’accoutumée le durcissement de l’ANSSI9 pour les systèmes GNU/LINUX. Le bastion doit être le seul point d’entrée de notre SI pour accéder à nos ressources. C’est pourquoi je veux qu’il soit le plus sécurisé possible. Je vais donc aller relativement loin dans la sécurisation et il n’est donc pas impossible de se perdre en route. C’est toutefois comme ça qu’on apprend ! Il faut pour se trouver savoir se perdre sur des chemins de traverse 🙂
J’ai beaucoup appris et ainsi, je souhaite vous partager mon expérience.
Señor, Señora, Ándale Ándale Arriba !

Prérequis
- SE :
- GNU/Linux RHEL
- Apps :
- Guacamole 1.6
- Tomcat 9.X
- MariaDB 15.X
- Nginx
- Autres :
- Certificats
Guide
- Partie 1 : Théorie
- Définir ce qu’est un bastion
- Réflexion sur l’architecture
- Partie 2 : Installation
- Guide de déploiement
- Partie 3: Sécurisation
- Réseau
- Système
- Application
- Partie 4 : Configuration
- Paramètres
- Utilisateurs
- Groupes
- Ressources
- Partie 5 : Démonstration
- Présentation de la solution
Conclusion
Il n’est pas évident aujourd’hui de garder la main sur nos environnements de manière sécurisée, comme il n’est pas aisé de contrôler l’ensemble des activités d’un fournisseur ou prestataire sur notre SI. Même si la connexion est éphémère, nous nous devons de contrôler cette dernière. J’ai repris la lecture des poèmes d’Omar KHAYYÂM, et je suis tombé sur celui-ci que je trouve à la fois beau et adapté à la thématique de mon billet. (Je ne parle pas de politique et je lis depuis très longtemps cet ouvrage).
Considère ce vieux caravansérail qu’on nomme le monde,
Omar KHAYYÂM – Robâiyât
dont les portes sont le Jour et la Nuit ;
des souverains y passent avec leur faste,
y demeurent une heure ou deux… puis s’en vont
Nous pouvons alors facilement considérer que le caravansérail est notre bastion, les voyageurs nos sessions, les gardiens de la porte les administrateurs systèmes et réseaux…
Les solutions de BASTION bien qu’onéreuses viennent pallier à tous cela. Toutefois et c’est souvent l’argument le coût de la solution est difficilement supportable ce qui justifie l’usage à tort et pour tout des VPN SSL, TS GW ou des outils de prise en main à distance. A l’inverse GUACAMOLE répond à l’ensemble des problématiques financières et technologiques. J’ai un bastion gratuit et souverain sur mon SI que demander de mieux ? Ce n’est malheureusement pas gratuit. Regardons de plus près le coût ETP10 lié à la solution. Il faut installer, maintenir la solution au-delà de son contexte infrastructure mais également applicative. Et comme vous pouvez le constater, c’est loin d’une mince affaire pour qui souhaite bien faire les choses.
Le choix de ne pas passer par la technologie docker m’est propre. Je ne vois pas l’utilité d’une telle solution pour un projet de ce type. Docker reste pour moi un usage de développement et non de production. Je ne dis pas que c’est mauvais, je dis que cela ne m’est pas adapté. Un jour peut-être je changerai d’avis, pour l’instant la tête de cochon que je suis continuera de réaliser ces infrastructures en environnement non containerisé ! (GUILLEMARD ça rime avec tête de lard pour ne pas dire co**ard 🙂 )
Je suis content d’arriver au bout de cet article et de cet outil magnifique qu’est GUACAMOLE. J’aurai appris énormément de choses encore et cela faisait longtemps que je n’avais pas passé des nuits blanches à cogiter sur des débugs et analyses. Je pense toutefois que la solution doit être sauvegardé au cas où et ce peu importe la solution utilisée. Si le bastion reste indisponible pour de bonnes et mauvaise raisons, il nous faut alors passer par la poterne de notre SI pour voir ce qu’il se passe. Son usage doit être restreint au maximum et doit se faire qu’en cas d’extrême nécessité.
La morale de ce billet se résumera à si j’avais un budget je passerai sans hésiter par SYSTANCIA (non je n’ai pas d’action), solution française, support humain et sympathique et une analyse forte en cas d’incident et de correctif applicatif de l’ensemble de leurs solutions (Cleanroom devenu CyberElements). Malheureusement, je n’ai pas le sou et donc je me rabat sur Apache GUACAMOLE et cela n’est pas sans regrets 🙂
Le mot de la fin :
J’initie une connexion guacamole sur fond de paddle. Votre avocat fait appel et vous informe que la balle est au centre. UN-DEUX-TROIS, on ne se bat pas ici ! Superbe relance de l’ami Kaouette, une teq paf pour la 12.
Erwan GUILLEMARD
Sources
- SI : Système d’Information ↩︎
- VPN SSL : Virtual Private Network Secure Socket Layer ↩︎
- RDS : Remote Desktop Server ↩︎
- TSGW : Terminal Server GateWay ↩︎
- RGPD : Règlement Général de Protection des Données ↩︎
- HDS : Hébergement de Données de Santé ↩︎
- RHEL : RedHat Entreprise Linux ↩︎
- OS : Operating System ↩︎
- ANSSI : Agence National de Sécurité des Systèmes d’Information ↩︎
- ETP : Employé(e) Temps Plein ↩︎
