Tutoriels gratuits et ouverts à toutes et à tous · conçus au Lycée Chevrollier — AngersÀ propos

Série « Bastion Guacamole » · partie 2 / 3

Bastion Guacamole : utiliser le bastion et gérer les droits des utilisateurs

Se connecter avec la double authentification, créer des connexions RDP et SSH sûres, travailler dans une session, construire une matrice des droits, gérer le cycle de vie des comptes et superviser l’activité.

Systèmes✎ B. Jousseaume📅 8 octobre 2026⏱ 3 h📶 Avancé

La première partie a construit un bastion sûr. Mais un bastion bien installé et mal utilisé reste un bastion vulnérable : la sécurité se joue aussi au quotidien, dans la façon de créer les connexions, d’attribuer les droits et de surveiller les accès. Chaque section de ce cours signale donc explicitement ce qui est important côté cyber.

Se connecter au bastion

Accéder à la page de connexion

Le bastion s’ouvre depuis n’importe quel navigateur récent, à l’adresse :

https://bastion.mondomaine.local/guacamole/

Il n’y a pas de numéro de port à indiquer : Nginx répond sur le port HTTPS standard (443). Le port 8080 de Tomcat n’est pas joignable depuis le réseau.

Première connexion et double authentification

  1. Saisir son nom d’utilisateur et son mot de passe, puis cliquer sur Se connecter.
  2. Si le compte a été créé avec l’option « Mot de passe expiré », Guacamole impose immédiatement le choix d’un nouveau mot de passe, conforme à la politique de mots de passe du bastion.
  3. Lors de la toute première connexion, Guacamole affiche un QR code : le scanner avec une application d’authentification (sur smartphone), puis saisir le code à 6 chiffres affiché.
  4. Aux connexions suivantes, le code à 6 chiffres est demandé après le mot de passe.

Se repérer dans l’interface

ZoneContenu
Page d’accueil« Connexions récentes » (vignettes des dernières sessions) et « Toutes les connexions », rangées par groupes.
Menu utilisateur (en haut à droite)Accueil, Paramètres, Se déconnecter.
ParamètresOnglets Sessions actives, Historique, Utilisateurs, Groupes, Connexions, Préférences. Un utilisateur ne voit que les onglets correspondant à ses droits.
PréférencesLangue de l’interface, méthode de saisie par défaut, changement de mot de passe.

Créer une connexion vers une machine distante

Une connexion est une fiche enregistrée dans le bastion : elle décrit comment joindre une machine (protocole, adresse, port) et avec quelles options de sécurité. Les utilisateurs n’ont jamais à connaître l’adresse des serveurs : ils cliquent sur le nom de la connexion.

Pour en créer une : Paramètres → Connexions → Nouvelle connexion. Le formulaire est découpé en sections ; seules les rubriques utiles sont détaillées ci-dessous.

Rubriques communes à toutes les connexions

RubriqueValeur conseilléePourquoi
NomExplicite et normalisé, ex. SRV-DC01 – Contrôleur de domaine (RDP)L’historique et les journaux doivent être lisibles par quelqu’un d’autre que vous.
EmplacementLe groupe de connexions adaptéLes groupes structurent l’attribution des droits.
ProtocoleRDP (Windows) ou SSH (Linux, équipements réseau)Jamais Telnet : non compilé sur ce bastion.
Limites de simultanéitéServeur sensible : 1 connexion par utilisateurÉvite les sessions fantômes ouvertes sur plusieurs postes.
Enregistrement d’écranChemin ${HISTORY_PATH}/${HISTORY_UUID}, création automatique cochéeTraçabilité.

Connexion RDP (serveurs et postes Windows)

SectionParamètreValeur
RéseauNom d’hôteAdresse IP ou nom DNS du serveur
RéseauPort3389
AuthentificationNom d’utilisateur / Mot de passeVoir « Où mettre les identifiants » ci-dessous
AuthentificationDomaineNom NetBIOS du domaine (ex. DOMBTSIG) pour un compte Active Directory
AuthentificationMode de sécuritéNLA (authentification avant ouverture de session)
AuthentificationIgnorer le certificat du serveurCoché uniquement si le serveur utilise un certificat autosigné
Presse-papiersDésactiver la copie / le collageSelon la sensibilité du serveur (voir plus bas)
Partage de périphériquesActiver le lecteurNon coché : pas de transfert de fichiers par défaut

Connexion SSH (serveurs Linux, équipements réseau)

SectionParamètreValeur
RéseauNom d’hôteAdresse IP ou nom DNS
RéseauPort22 (ou le port SSH du serveur)
RéseauClé publique de l’hôteLa clé publique SSH du serveur (voir ci-dessous)
AuthentificationNom d’utilisateurCompte nominatif sur le serveur, jamais root
AuthentificationClé privée (et phrase de passe)À privilégier par rapport au mot de passe

La clé publique du serveur se récupère sur le serveur lui-même (par une voie sûre, par exemple la console de la VM) :

cat /etc/ssh/ssh_host_ed25519_key.pub

Où mettre les identifiants des machines ?

C’est la décision la plus importante lors de la création d’une connexion. Trois possibilités :

OptionFonctionnementAvantagesRisques
A. Identifiants enregistrés dans la connexionNom d’utilisateur et mot de passe saisis dans la ficheConnexion en un clicStockés en clair dans la base ; tous les utilisateurs de la connexion agissent sous le même compte : on ne sait plus qui a fait quoi sur le serveur
B. Champs laissés videsGuacamole demande les identifiants au moment de la connexionChacun utilise son propre compte ; rien n’est stockéUne saisie de plus à chaque connexion
C. Jetons ${GUAC_USERNAME} et ${GUAC_PASSWORD}Guacamole réutilise les identifiants saisis pour se connecter au bastionCompte personnel, sans ressaisie, rien n’est stockéSuppose les mêmes identifiants sur le bastion et sur les serveurs, donc un bastion relié à l’annuaire (extension LDAP)

Presse-papiers et transfert de fichiers

Par défaut, le presse-papiers est partagé entre le poste de l’utilisateur et la machine distante. C’est pratique pour coller une commande, mais c’est aussi un canal de fuite : on peut copier des données sensibles hors du serveur, ou coller un contenu malveillant sur le serveur.

Type de machineCopie depuis la sessionCollage vers la sessionLecteur / transfert
Poste ou serveur de TPAutoriséeAutoriséSelon le besoin
Serveur de productionDésactivéeAutoriséDésactivé
Serveur très sensible (contrôleur de domaine, hyperviseur)DésactivéeDésactivéDésactivé

Travailler dans une session

Le menu Guacamole

Pendant une session, l’écran de la machine distante occupe tout le navigateur : il n’y a pas de barre d’outils permanente. Les commandes sont regroupées dans le menu Guacamole, qui s’ouvre et se ferme avec la combinaison Ctrl + Alt + Maj.

Élément du menuUsage
Presse-papiersZone de texte synchronisée avec la machine distante (si le presse-papiers n’est pas désactivé pour la connexion).
Méthode de saisie : aucuneFonctionnement normal au clavier physique.
Méthode de saisie : saisie de texteUtile sur tablette ou pour certaines dispositions de clavier.
Méthode de saisie : clavier à l’écranClavier virtuel, qui permet notamment d’envoyer Ctrl+Alt+Suppr à la machine distante.
Mode sourisPointeur absolu (souris) ou relatif (écran tactile).
ZoomAjuster l’affichage à la taille de la fenêtre.
PartagerGénérer un lien de partage de la session, uniquement si un profil de partage existe.
Nom de la connexion / DéconnecterRevenir à l’accueil, basculer vers une autre session ouverte, ou fermer la connexion.

Terminer proprement une session

Fermer l’onglet du navigateur ne ferme pas la session sur le serveur : elle reste ouverte, déconnectée. On termine donc toujours par la déconnexion de la session distante (menu Démarrer de Windows, commande exit sous Linux), puis par la déconnexion du bastion (menu utilisateur → Se déconnecter).

Gérer les droits des utilisateurs

C’est le cœur du bastion. Toutes les protections de la partie 1 (HTTPS, TOTP, pare-feu) servent à une seule chose : garantir que chaque personne n’accède qu’aux machines dont elle a besoin, et que l’on sait qui a fait quoi. Une gestion des droits approximative annule tous ces efforts.

Les principes à appliquer

PrincipeCe qu’il signifieTraduction dans Guacamole
Moindre privilègeChacun reçoit uniquement les droits nécessaires à sa mission, rien de plus.Aucune permission système par défaut ; accès aux seules connexions utiles.
Besoin d’en connaîtreOn ne voit même pas l’existence des ressources qui ne nous concernent pas.Un utilisateur ne voit que les connexions sur lesquelles il a un droit.
Comptes nominatifsUn compte = une personne identifiée. Jamais de compte partagé.Pas de compte « etudiant » ou « technicien » commun : l’historique doit désigner une personne.
Séparation des rôlesCelui qui administre les comptes n’est pas forcément celui qui utilise les serveurs, ni celui qui contrôle.Rôles distincts : administrateur du bastion, administrateurs système, auditeur.
Gestion par groupes (RBAC)On attribue les droits à des rôles, puis on place les personnes dans les rôles.Groupes d’utilisateurs, groupes de connexions ; jamais de droit attribué directement à une personne sauf exception documentée.
Revue périodiqueLes droits se vérifient régulièrement : ils s’accumulent avec le temps.Revue à chaque semestre et à chaque départ.

Le modèle de droits de Guacamole

Guacamole manipule quatre types d’objets : les utilisateurs, les groupes d’utilisateurs, les connexions et les groupes de connexions (plus les profils de partage). Il existe deux familles de permissions.

1. Les permissions système : ce qu’un compte peut faire sur le bastion lui-même.

Permission (nom interne)Ce qu’elle autoriseÀ qui la donner
ADMINISTER — Administrer le systèmeTout, sans restriction : c’est un « joker » qui englobe toutes les autres permissions.2 personnes maximum : les administrateurs du bastion.
AUDITConsulter l’historique des connexions et des authentifications de tout le système.Un auditeur ou un responsable sécurité qui contrôle sans administrer.
CREATE_USER — Créer des utilisateursCréer de nouveaux comptes.Administrateurs du bastion uniquement.
CREATE_USER_GROUPCréer de nouveaux groupes d’utilisateurs.Administrateurs du bastion uniquement.
CREATE_CONNECTIONCréer de nouvelles connexions.Éventuellement un administrateur système chargé de déclarer ses serveurs.
CREATE_CONNECTION_GROUPCréer des groupes de connexions.Administrateurs du bastion.
CREATE_SHARING_PROFILECréer des profils de partage de session.Administrateurs du bastion, et seulement si le partage est souhaité.

Dans le formulaire d’un utilisateur, une case supplémentaire « Modifier son propre mot de passe » permet à la personne de changer elle-même son mot de passe : elle doit être cochée pour tous.

2. Les permissions sur objet : ce qu’un compte peut faire sur un utilisateur, une connexion ou un groupe précis.

PermissionSur une connexionSur un utilisateur ou un groupe
READ (lecture)Voir la connexion et l’utiliser : c’est le droit d’accès normal.Voir le compte ou le groupe.
UPDATE (modification)Modifier ses paramètres (adresse, identifiants, options).Modifier le compte, y compris son mot de passe.
DELETE (suppression)Supprimer la connexion.Supprimer le compte ou le groupe.
ADMINISTERDonner ou retirer des droits sur cette connexion à d’autres.Donner ou retirer des droits à ce compte.

Organiser les connexions en groupes

Un groupe de connexions de type organisationnel fonctionne comme un dossier. On regroupe les machines selon un critère qui correspond à la façon dont on attribue les accès, en général la fonction et la sensibilité des serveurs :

Groupe de connexionsContenu (exemple du plateau technique)Sensibilité
Contrôleurs de domaineSRV-DC01, SRV-DC02Critique
ESXHyperviseurs de la ferme de virtualisationCritique
Serveurs applicatifs LinuxServeurs web, bases de donnéesÉlevée
Serveurs gestion de parc LinuxGLPI, supervision, WAPT…Élevée
Machines de TP — [groupe d’étudiants]VM des étudiants pour leurs réalisationsModérée

Méthode : construire une matrice des droits

Avant de cliquer dans l’interface, on construit sur papier une matrice qui croise les rôles (groupes d’utilisateurs) et les groupes de connexions. Elle sert de référence, se relit facilement, et permet de vérifier les droits lors des revues.

Étape 1 — Lister les rôles, c’est-à-dire les profils de personnes ayant des besoins différents :

Groupe d’utilisateursQui ?Permissions système
GRP-Admins-BastionLes 2 administrateurs du bastionADMINISTER
GRP-Admins-InfraEnseignants responsables de l’infrastructureaucune
GRP-SISR2-[groupe]Étudiants de 2e année SISR d’un groupe de projetaucune
GRP-Jury-E5Membres du jury, le temps de l’épreuveaucune
GRP-AuditeursResponsable sécurité ou enseignant chargé du contrôleAUDIT

Étape 2 — Remplir la matrice : quelles connexions pour quel rôle ?

Contrôleurs de domaineESXServeurs applicatifs LinuxGestion de parc LinuxMachines de TP du groupe
GRP-Admins-BastionAccèsAccèsAccèsAccèsAccès
GRP-Admins-InfraAccèsAccèsAccèsAccès—
GRP-SISR2-[groupe]————Accès
GRP-Jury-E5————Accès, limité dans le temps
GRP-Auditeurs—————

« Accès » signifie la permission READ : voir et utiliser les connexions. L’auditeur n’a aucun accès aux machines : il consulte l’historique et les enregistrements, ce qui garantit qu’il contrôle sans pouvoir agir.

Étape 3 — Appliquer dans Guacamole :

  • Paramètres → Groupes → Nouveau groupe : créer chaque groupe d’utilisateurs.
  • Dans chaque groupe, onglet Connexions : cocher les groupes de connexions et les connexions prévus par la matrice.
  • Dans la fiche de chaque utilisateur, onglet Groupes : l’ajouter au(x) groupe(s) correspondant à son rôle.
  • Ne cocher aucune permission directement sur les utilisateurs, sauf « Modifier son propre mot de passe ».

Étape 4 — Tester avec un compte de test : se connecter avec un compte de chaque rôle et vérifier qu’il voit exactement ce que prévoit la matrice, ni plus ni moins. C’est la recette des droits : sans ce test, on ne sait pas si les droits sont corrects.

Créer un compte utilisateur

Paramètres → Utilisateurs → Nouvel utilisateur. Le formulaire comporte plusieurs rubriques.

RubriqueRéglageExplication
Identifiantprenom.nomNominatif, selon une convention unique pour tout le bastion.
Mot de passeMot de passe provisoire aléatoireTransmis à la personne par un canal séparé (de vive voix, pas dans le même courriel que l’identifiant).
Mot de passe expiréCochéOblige la personne à choisir son propre mot de passe à la première connexion : l’administrateur ne le connaît plus.
Connexion désactivéeNon coché (coché pour suspendre un compte)Un compte désactivé est refusé comme s’il n’existait pas, mais son historique est conservé.
ProfilNom complet, adresse électroniquePermet de savoir qui est derrière l’identifiant lors d’un audit.
PermissionsUniquement « Modifier son propre mot de passe »Les autres droits viennent des groupes.
GroupesLe ou les groupes du rôleVoir la matrice ci-dessus.

Restreindre un compte dans le temps

Chaque compte peut être limité dans le temps, ce qui est particulièrement utile pour les comptes temporaires (jury, stagiaire, prestataire) :

RestrictionEffetExemple
Activer le compte après (date)Aucune connexion possible avant cette date.Jour de l’épreuve
Désactiver le compte après (date)Aucune connexion possible après cette date.Lendemain de l’épreuve
Autoriser l’accès après (heure)Connexion refusée avant cette heure, chaque jour.07:30
Ne pas autoriser l’accès après (heure)Connexion refusée après cette heure, chaque jour.18:30
Fuseau horaireFuseau utilisé pour interpréter ces dates et heures.Europe/Paris

Imposer une politique de mots de passe

La politique s’applique à tous les comptes de la base. On ajoute à /etc/guacamole/guacamole.properties :

# Politique de mots de passe des comptes Guacamole
mysql-user-password-min-length: 12
mysql-user-password-require-multiple-case: true
mysql-user-password-require-digit: true
mysql-user-password-require-symbol: true
mysql-user-password-prohibit-username: true
mysql-user-password-history-size: 5
systemctl restart tomcat
ParamètreEffet
min-length: 1212 caractères minimum.
require-multiple-caseAu moins une majuscule et une minuscule.
require-digit / require-symbolAu moins un chiffre et un caractère spécial.
prohibit-usernameLe mot de passe ne peut pas contenir l’identifiant.
history-size: 5Impossible de réutiliser l’un des 5 derniers mots de passe.

Les profils de partage

Un profil de partage permet à un utilisateur de générer un lien donnant accès à sa session en cours, par exemple pour qu’un enseignant observe la manipulation d’un étudiant. Le profil peut être en lecture seule (option « Lecture seule » du profil).

Faire vivre les droits : arrivées, changements, départs

ÉvénementActionDélai
ArrivéeCréation du compte nominatif, ajout au groupe du rôle, remise du mot de passe provisoire.Le jour de l’arrivée, pas avant
Changement de rôleAjout au nouveau groupe et retrait de l’ancien.Immédiat
DépartCocher « Connexion désactivée » ; suppression après la durée de conservation de l’historique.Le jour même
Perte du téléphone (TOTP)Réinitialisation de l’enrôlement TOTP dans la fiche de l’utilisateur, après vérification de son identité.À la demande
Revue des droitsComparer les groupes et leurs membres avec la matrice ; supprimer les comptes inutilisés.Chaque semestre

Superviser l’activité

Onglet (Paramètres)Ce qu’il montreUsage
Sessions activesToutes les sessions en cours : utilisateur, connexion, adresse IP d’origine, durée.Repérer une session oubliée ou suspecte, et la fermer (cocher, puis « Terminer les sessions »).
HistoriqueLes connexions passées : qui, quelle machine, quand, combien de temps, et si un enregistrement existe.Répondre à « qui s’est connecté au contrôleur de domaine mardi soir ? » ; relire la session enregistrée.

Panorama des solutions de bastion

Les solutions de bastion d’administration permettent de gérer de manière sécurisée les accès aux systèmes critiques.

Solutions libres (open source)

SolutionCaractéristiques
Apache GuacamoleBastion RDP, VNC et SSH accessible depuis un navigateur web. Très populaire pour les accès distants. Licence Apache 2.0.
The Bastion (OVHcloud)Bastion SSH open source développé et utilisé par OVHcloud : traçabilité fine, enregistrement des sessions, gestion des clés.
Teleport (Gravitational)Accès unifié SSH, Kubernetes, bases de données… Code source sous AGPLv3, mais depuis la v16 les binaires « Community » sont sous licence commerciale : gratuits seulement pour les structures de moins de 100 salariés et 10 M$ de chiffre d’affaires.
Pritunl ZeroBastion d’administration à approche Zero Trust, multi-protocoles, interface simplifiée.

Solutions propriétaires

SolutionCaractéristiques
Wallix BastionSolution française de gestion des accès et sessions à privilèges ; certifiée par l’ANSSI (CSPN).
CyberArk Privileged Access SecurityUne des références de la gestion des accès à privilèges.
BeyondTrust Privileged Remote AccessSécurisation des accès administratifs, avec enregistrement et audit.
Delinea (ex-Thycotic et Centrify)Plateforme complète de gestion des accès à privilèges, dont Secret Server, coffre-fort de mots de passe.
SenhaseguraConcurrent de CyberArk et Wallix, présent en Europe et en Amérique latine.
JumpCloudPlateforme SaaS de gestion des identités et des accès, avec des fonctions d’accès distant.

Le choix dépend des besoins : l’open source pour la flexibilité, le propriétaire pour la conformité, les enregistrements avancés et le support technique.

🧠 Testez vos connaissances

6 questions. Répondez puis cliquez sur « Corriger ». Rien n’est enregistré : c’est de l’auto-évaluation.

1. Où les mots de passe enregistrés dans une connexion Guacamole sont-ils stockés ?

💬 La documentation officielle le précise : les paramètres des connexions, mots de passe compris, sont stockés en clair. On privilégie la saisie à la connexion ou les jetons avec LDAP.

2. À quoi sert de renseigner la clé publique de l’hôte dans une connexion SSH ?

💬 Si la clé ne correspond plus, la connexion est refusée au lieu de transmettre vos identifiants à un imposteur.

3. Fermer l’onglet du navigateur pendant une session RDP…

💬 On se déconnecte toujours de la session distante puis du bastion ; sinon une session fantôme reste ouverte.

4. Un utilisateur membre de deux groupes reçoit…

💬 Guacamole n’a pas de permission d’interdiction : les droits s’additionnent, y compris ceux hérités des groupes parents.

5. Quel droit donner à un utilisateur ordinaire sur les connexions dont il a besoin ?

💬 READ permet de voir et d’utiliser la connexion. UPDATE ou ADMINISTER permettraient de détourner la connexion ou de s’attribuer des droits.

6. Quel réglage rend sûr le compte d’un membre du jury ?

💬 Un compte nominatif, limité aux machines du candidat, activé le jour de l’épreuve et désactivé le lendemain : il se ferme tout seul.

© 2026 Bruno Jousseaume. Ce cours est publié sous licence CC BY-NC-SA 4.0 : vous pouvez le partager et l’adapter en citant l’auteur et un lien vers cette page, sans usage commercial, et en partageant vos adaptations sous la même licence.

Pour aller plus loin