Apps – GUACAMOLE Partie 4 : Configuration
Cette partie va être plutôt expéditive. Je ne veux pas m’amuser à décrire chaque option de chacune des parties de configuration. Je vais aller à l’essentiel de ce que je juge utile pour moi. Pour le reste, RTFM1 chers lecteurs.
Paramètres
Une fois authentifié avec un compte super-utilisateur rendons nous dans les paramètres.
|
Nous pouvons constater qu’il y a 6 catégories distinctes :
|
![]() |
Je rentrerai dans le détail uniquement pour les onglets Utilisateurs, Groupes, Connexions.
| Je choisie ici d’afficher la langue d’affichage en Français, le fuseau horaire étant basé sur Paris. Cela a son importance pour les logs et le suivie des connexions aux ressources. Concernant l’apparence, il est possible d’afficher les connexions récentes ainsi que le nombre des dernières ressources consulté. Il faut voir cela comme une zone de favoris. En enfin, la possibilité de modifier son mot de passe. Plus bas dans la section, il est possible de choisir le comportement du clavier et de la souris. La prise en compte de tous les éléments se fait par l’action du bouton Enregistrez en bas de la section. | ![]() |
Utilisateurs
Si nous cliquons sur l’onglet Utilisateurs, nous avons une visibilité sur l’ensemble des utilisateurs présents ainsi que les utilisateurs désactivés.

Cliquez sur Nouvel Utilisateur. Il est important de noter que les droits utilisateurs prévaux sur les droits du groupes. Ce qui nous permet alors de définir un standard pour un groupe puis s’il y a besoin de faire une surcharge au niveau du profil de l’utilisateur. Regardons ensemble les différentes sections de création d’un compte utilisateur.
Il est également à noter que certaines sections sont liées aux divers addons que j’ai implémentés.
|
Définissions l’identifiant de connexion de notre utilisateur et son mot de passe. Il est possible de désactiver le compte. |
|
![]() |
Plus en détail, il est nécessaire de saisir le nom et prénom de l’utilisateur. Question de traçabilité. Il est important de définir le rôle en adéquation avec la matrice RACI7. |
|
Cette partie présente par défaut permet de restreindre le compte de l’utilisateur dans le temps. Par exemple, il est possible de définir une date de début et de fin de connexion. Plus bas, il sera possible d’aller plus loin dans la restriction du compte grâce à l’addon déployé plus tôt. |
![]() |
![]() |
Une section présente par l’ajout de la MFA8. Nous pouvons choisir de ne pas appliquer de MFA pour le compte utilisateur. A l’inverse, il est possible d’activer la MFA pour un utilisateur. Cette dernière sera demandé lors de la première connexion de l’utilisateur. Je vous renvoi à la partie sécurité qui traite de l’implémentation du plugin MFA. |
|
Comme énoncée précédemment, l’ajout du plugin de restriction avancée permettra une meilleure granularité dans l’accès aux ressources. |
![]() |
![]() |
J’ai l’impression de me répeter et cela m’agace. Peut-être un peu de fatigue de ma part je pense et j’avoue vouloir passer à autre chose. Cela fait un moment que je traite ce sujet. Bref, nous retrouvons ici les droits listés dans notre matrice RACI. Personnellement, je ne définie pas de rôle sur le profil utilisateur mais directement sur le groupe. A l’exception du compte bris de glace. Il est a noter qu’un profil utilisateur standard ne doit pas avoir de permission. |
|
Cette dernière section permet de donner l’accès aux ressources à l’utilisateurs. Comme dit précédemment, les droits peuvent être définie au niveau du groupe. Pour ma part, je définie les permissions à des connexions uniquement dans le cas de surcharge. Comprendre dans cette dernière phrase, réaliser un exception. |
![]() |
Groupes
L’onglet groupe est assez pratique. L’usage de groupe utilisateur permet de définir et d’appliquer un ensemble de politique de connexion aux membres appartenant à ce groupe.
Amazing Capt’ain Obvious… T’en as d’autres des comme ça ?
C’est toujours bon d’enfoncer des portes ouvertes. Là où nous pourrons tirer pleine puissance des groupes ce trouve dans la gestion des éditeurs et autres prestataires externes. Mais également pour ne donner un accès qu’à un service à une ressource. Dans les deux cas, nous nous assurerons que le niveau de sécurité est le même pour tout le monde. Si nous avons besoin de faire une exception, il faudra alors faire une surcharge dans le profil de l’utilisateur.
|
Pour commencer, définissons un nom de groupe parlant. Il ne faudrait se rajouter du travail avec quelque chose qui doit nous faire gagner du temp… |
![]() |
![]() |
Comme énoncé précédemment pour la partie utilisateur, l’ajout du plugin de restriction avancée permettra une meilleure granularité dans l’accès aux ressources. Dans notre cas, cela appliqué à l’ensemble de tous les membres. |
|
Par défaut l’authentification MFA est activée. Toutefois, nous pouvons la désactiver pour l’ensemble des membres. |
![]() |
![]() |
[BIS REPETITA] Oui ça me soule 🙂 J’ai l’impression de me répéter et cela m’agace. Peut-être un peu de fatigue de ma part je pense et j’avoue vouloir passer à autre chose. Cela fait un moment que je traite ce sujet. Bref, nous retrouvons ici les droits listés dans notre matrice RACI. Personnellement, je ne définie pas de rôle sur le profil utilisateur mais directement sur le groupe. A l’exception du compte bris de glace. Il est a noter qu’un profil utilisateur standard ne doit pas avoir de permission. |
|
Nous ajoutons nos utilisateurs et nous les voyons comme membres. |
![]() |
![]() |
Nous choisissons les ressources auxquelles le groupe doit avoir accès. |
Connexions
Cette partie est de loin l’une des plus intéressante et des plus complexes. Je ne détaillerai que les connexions de type SSH et RDP.
| L’une des premières choses à réaliser est l’arborescence de notre système. Pour faire simple je vais reprendre partiellement mon infrastructure définie dans ma VCSA9 et l’adapter en conséquence. Il est également possible de définir quelques paramètres au niveau des groupes comme l’extension de restriction d’accès et le nombre de connexion maximum et de connexion maximum par utilisateur. Nous retrouverons ces paramètres dans la création d’une ressources. | ![]() |
Attention, le tableau ci-dessous peut entrainer des nausées ainsi que des risques fatals d’indigestions. Nous demandons aux lecteurs qui ne seraient pas près de ne courir aucun risque et au besoin de se faire accompagner 🙂
|
Donnez un nom parlant à votre ressource. Définissez l’emplacement où va être stocker la ressource, puis le type de Protocole (Kubernetes, RDP, SSH, Telnet, VNC). |
![]() |
![]() |
Vous pouvez dans cette section définir le nombre maximum de connexion sur la ressource ainsi que le nombre de connexion par utilisateur. Là, j’ai déjà définie cela au niveau du groupe. Je ne viens à surcharger et définir celui ci que dans le cas des ressources sensibles. |
|
Si nous avions montée une infrastructure HA Guacamole, nous aurions pu définir une répartition de charge entre les serveurs Guacamole. Perso, ce n’est pas mon cas… |
![]() |
![]() |
[BIS REPETITA] … Nan, mais je pense que c’est bon là. On a compris à quoi sert cette partie ? |
|
Si nous avons implémenter la partie PROXY Guacamole, c’est ici qu’il faudra renseigner les paramètres. Toutefois est dans le cadre de mon projet et de l’architecture présentée et en place, je peux me passer de la fonctionnalité. |
![]() |
![]() |
La partie qui nous intéresse vraiment 🙂 Renseignons l’IP ou le nom de notre ressource puis le port de connexion en adéquation avec le protocole de connexion saisie plus haut. Il est également possible de renseigner directement les identifiants et mot de passe sur la ressource. Vous vous en doutez niveau sécurité, il est indispensable de compléter les champs #MDR. Toutefois, vous pouvez saisir le nom de domaine. Ne modifier le mode de sécurité que si vous l’avez modifié côté serveur. Et dans le cas de certificat autosigné, cochez la cas pour ignorer le certificat serveur. Si vous utilisez une TS GW10, renseigner les champs intelligemment. Moi, je n’en ai pas. Du moins pour l’instant. Dans les paramètres de base, vous pouvez faire la demande d’exécution de programme au démarrage, de définir le nom du client, le type de clavier et la zone de temps. |
|
Nous retrouvons ici les caractéristiques présent dans la configuration d’un raccourcie RDP classique, l’affichage, le presse papier et la gestion des périphériques externes. Je passerai vite sur cette partie. Ce qui pour moi doit être activer au minima est de forcer la compression sans perte pour l’affichage, et de désactiver la copie si l’usage est pour des utilisateurs et ce afin que nous admin ayons la main sur l’activité des prestataires. En dernier lieux de ne pas faire de redirection des périphériques. Nous ne devons pas avoir confiance ni ne faire confiance aux postes clients. Gardons le principe tel Greg House que tout le monde ment ! |
![]() |
![]() |
Là nous pouvons encore améliorer notre expérience sur la prise en main à distance sur notre ressource. Il est à noter qu’il y a une notion de curseur entre le confort et la performance utilisateur. Une option avec laquelle je souhaiterai jouer et l’option RemoteApp. J’ai pour idée de me faire un petit projet prochainement et Guacamole pourrait bien m’aider. 🙂 Le reste, à vous de vous pencher dessus si cela vous intéresse (ou autrement dit, démer*ez vous 🙂 ) |
|
La partie SFTP11, pas besoin je passe mon tour. Pour moi cela se fait via le rebond et pas autrement. Mais la partie Enregistrement Ecran ça c’est intéressant. Guacamole (comme Systancia) offre la possibilité de tracer l’ensemble des actions réalisés par un utilisateur lors d’une ouverture de session. C’est à dire enregistrer les frapes claviers et la session vidéo. Cela sera enregistré sous le format vidéo .guac sur le serveur. Il nous suffit sur la ressource de renseigner dans le chemin et dans le nom de l’enregistrement les valeurs :
Et de cocher la case créér automatique un chemin d’enregistrement. A ce jour je ne note qu’un dysfonctionnement entre la saisie des évènements clavier et vidéo qui nécessite un peu de temps de ma part. Un point qui nécessitera un article annexe, bonus sera la conversion des fichiers vidéos .guac en .mp4. |
![]() |
![]() |
Enfin, nous voilà au bout de notre configuration de notre ressource. J’avoue que l’interface n’est pas si sexy que ça, mais est-cela que nous attendons ? Je ne pense pas 🙂 Bref, encore une fonctionnalités avec laquelle je n’ai pas joué, le WOL12. Ce dernier peut s’avérer pratique pour redémarrer un serveur éteint. Je suis partagé sur l’usage car j’ai souvenir dans une ancienne vie professionnelle de dérive lié à l’absence de patiente et amateurisme de certain collaborateur. Je préfère donc me garder un accès de secours si besoin et gérer l’état d’une ressource virtualisée par l’interface de virtualisation peut importe son nom. |
Je passe la notion de partage de profil. Pour moi, il ne devrait pas être possible à un simple utilisateur de réaliser ce type d’action.
Un point remonté qui suscite de la frustration, j’avais déjà remonté ce point au support Systancia à l’époque et me voilà de nouveau confronté à celui-ci. Lorsque l’on utilise la MFA sur un système GNU/Linux pour s’authentifier, ce module PAM13 rentre en conflit avec la solution de bastion qui ne pouvant et ne sachant interpréter le retour crash et retourne un TimeOut. La seule solution est que j’ai trouvé pour l’instant et soit de désactiver la MFA ou rendre cette dernière facultatif. A voir si j’arrive à palier à ce problème.
Voilà, nous arrivons à la fin de notre périple. Je vais réaliser une courte démonstration vidéo qui comme d’habitude fera une synthèse de l’article et permettra de voir le fonctionnement de l’appliance Guacamole.
Sources
| Guacamole : Sécurisation <- | Apps Guacamole | Guacamole : Démonstration -> |
- RTFM : Read The Fuc**ng Manual ↩︎
- AAD : Azure Active Directory ↩︎
- AD : Active Directory ↩︎
- VNC : Virtual Network Computing ↩︎
- SSH : Secure SHell ↩︎
- RDP : Remote Desktop Protocol ↩︎
- Matrice RACI : ↩︎
- MFA : Multi Factors Authentification ↩︎
- VCSA : VCenter Server Appliance ↩︎
- TS GW : Terminal Server GateWay ↩︎
- SFTP : Secure File Transfert Protocol ↩︎
- WOL : Wake On Lan ↩︎
- PAM : Pluggable Authentication Modules ↩︎


























