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

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

Bastion Guacamole : dépanner les connexions RDP

Une démarche méthodique pour diagnostiquer une connexion RDP qui échoue à travers le bastion : journal de guacd, tableau de diagnostic, NLA et NTLM, réseau, fiche de suivi d’incident.

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

Une connexion RDP qui échoue à travers le bastion peut avoir une dizaine de causes différentes, situées à des endroits différents : le bastion, le réseau, le serveur Windows ou l’Active Directory. Plutôt que de modifier des réglages au hasard, on suit une démarche : lire le message, en déduire où se situe le problème, tester une hypothèse à la fois.

Recueillir les informations

Avant tout, relancer une tentative de connexion, puis noter trois choses :

  • le message affiché dans le navigateur par Guacamole ;
  • si le problème touche toutes les connexions RDP ou une seule ;
  • ce qui a changé depuis la dernière fois où cela fonctionnait (nouvelle connexion, nouveau réglage, mise à jour Windows, nouvelle GPO).

Ensuite, lire le journal de guacd au moment de l’échec :

InstallationCommande
Native (partie 1 de la série)journalctl -u guacd --since "5 min ago" --no-pager
Conteneurs (variante Docker)cd /opt/bastion && docker compose logs guacd --since 5m

Tableau de diagnostic

Repérer dans le journal ou à l’écran le message le plus proche, puis appliquer la vérification correspondante.

Message ou symptômeCause probableVérification / correction
Permission denied sur un chemin en .config/freerdp ; la session se ferme aussitôtguacd (compte daemon) ne peut pas écrire sa configuration FreeRDPSurcharge systemd de guacd : systemctl show guacd -p Environment doit afficher HOME=/var/lib/guacd
Erreur de certificat ou de TLSLe serveur présente un certificat autosignéCocher « Ignorer le certificat du serveur » dans la connexion, ou déployer un certificat de l’autorité interne
Server refused connection (wrong security type?)Le mode de sécurité de la connexion ne correspond pas à celui du serveurComparer le mode choisi dans Guacamole (NLA) et le réglage du serveur Windows (voir la réflexion sur NLA)
Échec d’authentification alors que le mot de passe semble bonIdentifiant, domaine, droits RDP, compte verrouillé ou NTLM restreintVoir « Échec d’authentification avec NLA »
Connexion « déjà utilisée » ou refusée dès la deuxième tentativeLimite de 1 connexion par utilisateur et session fantôme restée ouverteParamètres → Sessions actives : terminer l’ancienne session
Délai dépassé, connexion réseau refuséeLe port 3389 n’est pas joignable depuis le bastionVoir « Le serveur n’est pas joignable »

Échec d’authentification avec NLA

Avec NLA, Windows vérifie les identifiants avant d’ouvrir la session. Si l’un des points suivants est faux, la connexion est refusée :

Point à vérifierValeur attendueOù vérifier
Nom d’utilisateurIdentifiant seul, ex. jdupont (sans domaine)Paramètres de la connexion → Authentification
DomaineNom NetBIOS : DOMBTSIG (ou bien identifiant jdupont@dombtsig.local et champ Domaine vide)Paramètres de la connexion → Authentification
Droit de connexion RDPCompte membre du groupe Utilisateurs du Bureau à distance du serveur (ou administrateur)Gestion de l’ordinateur → Groupes locaux, ou GPO
Compte non verrouilléPas de verrouillage après des tentatives répétées« Utilisateurs et ordinateurs Active Directory » → propriétés du compte → onglet Compte
NTLM autoriséAucune GPO « Sécurité réseau : restreindre NTLM » qui refuse NTLM vers ce serveurgpresult /h rapport.html sur le serveur

Pièges liés aux réglages d’utilisation

RéglageEffet inattenduSolution
Jetons ${GUAC_USERNAME} / ${GUAC_PASSWORD}Guacamole transmet à Windows les identifiants du compte Guacamole. Si le bastion n’est pas relié à l’AD, ce compte n’existe pas dans le domaine : l’authentification NLA échoue.Laisser les champs vides tant que l’extension LDAP n’est pas en place.
Limite de 1 connexion par utilisateurFermer l’onglet ne ferme pas la session : la tentative suivante est refusée.Terminer la session dans Paramètres → Sessions actives, puis prendre l’habitude de se déconnecter proprement.
Restrictions horaires du compteLa connexion au bastion lui-même est refusée en dehors des créneaux.Vérifier dates, heures et fuseau horaire dans la fiche de l’utilisateur.

Réflexion : faut-il désactiver NLA pour que « ça marche » ?

Lorsque l’authentification NLA échoue, la tentation est grande de décocher l’option NLA sur le serveur Windows (Propriétés système → Utilisation à distance). Souvent, la connexion passe alors… mais le problème n’est pas résolu, il est masqué, et le serveur est affaibli.

Ce que NLA protège

Avec NLA, Windows vérifie l’identité avant de créer quoi que ce soit. Sans NLA, toute machine qui joint le port 3389 obtient l’écran de connexion Windows, c’est-à-dire une vraie session graphique créée sans aucune authentification.

Risque sans NLAExplication
Surface d’attaque avant authentificationLes failles RDP les plus graves (par exemple BlueKeep, CVE-2019-0708, exécution de code à distance) s’exploitent à ce stade, avant toute authentification. NLA bloque leur exploitation par un attaquant non authentifié.
Déni de serviceChaque tentative de connexion consomme une session et de la mémoire sur le serveur.
Force bruteLes mots de passe sont testés directement sur l’écran de connexion du serveur.
Fuite d’informationsL’écran de connexion peut révéler le nom du domaine, le nom du serveur ou le dernier utilisateur connecté.

Utiliser la désactivation comme test de diagnostic

Désactiver NLA quelques minutes, sur une machine de test, est en revanche un bon outil de diagnostic :

Résultat du testConclusion
La connexion passe sans NLALe réseau, le port et le certificat sont hors de cause : le blocage vient de l’authentification NLA (identifiants, domaine, compte verrouillé, NTLM).
La connexion échoue toujoursNLA n’est pas en cause : chercher ailleurs (journal guacd, réseau, certificat).

Dans les deux cas, on réactive NLA immédiatement après le test, puis on corrige la vraie cause.

Le serveur n’est pas joignable

Depuis le bastion, tester le port RDP du serveur (remplacer l’adresse) :

timeout 3 bash -c '</dev/tcp/192.168.100.12/3389' && echo "port 3389 ouvert"
RésultatOù chercher
« port 3389 ouvert »Le réseau fonctionne : revenir au journal de guacd et au tableau de diagnostic.
Pas de réponse (délai)Un pare-feu bloque : pare-feu Windows du serveur, règles du pare-feu entre la DMZ et le réseau des serveurs (pfSense), routage.
« Connexion refusée » immédiateLe serveur répond mais le Bureau à distance n’écoute pas : vérifier qu’il est activé, et que le service « Services Bureau à distance » est démarré.

Fiche de suivi d’incident

À compléter pour chaque problème : elle sert à ne pas tourner en rond, et à documenter la solution pour les suivants. Elle figure aussi, prête à imprimer, dans le livret PDF.

RubriqueÀ compléter
Date, heure, connexion concernée
Message affiché par Guacamole
Extrait du journal guacd
Toutes les connexions ou une seule ?
Ce qui a changé récemment
Hypothèses testées (une à la fois) et résultats
Cause identifiée
Correction appliquée
Réglage de sécurité modifié temporairement ? Remis en place le :

🧠 Testez vos connaissances

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

1. Par quoi commence-t-on le dépannage d’une connexion RDP ?

💬 Lire avant d’agir : le journal de guacd donne presque toujours la cause exacte.

2. Toutes les connexions RDP échouent en même temps. Où est probablement la cause ?

💬 Si une seule connexion échoue, on regarde cette connexion ou ce serveur ; si toutes échouent, le bastion est le suspect principal.

3. Pourquoi mstsc peut-il fonctionner alors que le bastion échoue sur le même serveur ?

💬 C’est le signe d’une restriction NTLM par GPO sur le serveur.

4. Désactiver NLA pour que « ça marche » en production…

💬 Sans NLA, des failles comme BlueKeep s’exploitent avant toute authentification. On peut désactiver NLA quelques minutes sur une VM de test comme diagnostic, puis on le réactive.

5. La commande de test du port 3389 ne répond pas (délai dépassé). Où chercher ?

💬 Pas de réponse = filtrage. Une « connexion refusée » immédiate indiquerait au contraire que le Bureau à distance n’écoute pas.

© 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