PMAD – Diagnostiquer une prise en main à distance VNC/RDP qui ne fonctionne pas
S'applique à : Medulla / Serveur Medulla / Serveur relais
Version : Toutes
Environnement : SaaS Public / SaaS Privé / On-Premise
Catégorie : PMAD / Diagnostic
Cette procédure permet de diagnostiquer un problème de prise en main à distance (PMAD) lorsqu'une connexion VNC ou RDP ne fonctionne pas depuis Medulla.
Le diagnostic doit être effectué progressivement afin de déterminer à quel niveau se situe le problème :
- état de la machine et de l'agent Medulla ;
- disponibilité du protocole de prise en main à distance ;
- enregistrement de la connexion Guacamole ;
- configuration de la connexion Guacamole ;
- établissement du reverse SSH ;
- communication entre
guacdet le tunnel ; - configuration HTTP / Guacamole.
Conseil :
Commencez toujours par les vérifications simples présentées au début de cette procédure avant d'effectuer les contrôles SQL ou les diagnostics du reverse SSH.
1. Vérifier que la machine est en ligne dans Medulla
La prise en main à distance n'est pas disponible lorsque la machine apparaît hors ligne dans Medulla.
Si l'ordinateur apparaît grisé ou hors ligne, commencez par vérifier le fonctionnement de l'agent Medulla sur la machine.
Important :
Il est inutile de poursuivre le diagnostic de la PMAD tant que la machine n'est pas correctement connectée à Medulla.
2. Vérifier le protocole de prise en main à distance
Si la machine est en ligne, vérifiez que le protocole utilisé pour la prise en main à distance est correctement disponible sur le poste.
Connexion VNC
Pour une connexion VNC, vérifiez notamment que TightVNC est correctement lancé sur la machine.
Sous Windows, vous pouvez vérifier si le port VNC est en écoute avec :
netstat -an | find "5900"
Si aucune ligne n'est retournée, vérifiez l'état et l'exécution de TightVNC.
Connexion RDP
Pour une connexion RDP, vérifiez que le Bureau à distance Windows est activé sur la machine.
Vous pouvez également vérifier que le service RDP est en écoute sur le poste.
Connexion SSH
Lorsqu'une connexion SSH est utilisée, vérifiez que le serveur OpenSSH est installé, activé et démarré sur la machine.
3. Workflow de la prise en main à distance
Le schéma suivant présente le workflow utilisé pour l'établissement d'une connexion de prise en main à distance :
4. Logs à consulter
En cas de problème persistant, plusieurs journaux peuvent être utilisés pour identifier à quel niveau la connexion échoue.
Serveur Medulla / relais
/var/log/apache2/*.log
/var/log/mmc/mmc-agent.log
/var/log/pulse/xmpp-agent-relay.log
/var/log/mmc/master-mast.log
/var/log/tomcat9/*.log
/var/log/tomcat9/*.txt
Machine Windows
C:\Program Files\Medulla\var\log\xmpp-agent-machine.log
Guacamole
Pour suivre en temps réel les journaux du service guacd :
journalctl -u guacd -f
Pour afficher les derniers événements :
journalctl -u guacd -n 100
5. Vérifier les connexions Guacamole enregistrées pour la machine
Si la machine est en ligne et que le protocole de prise en main à distance fonctionne, vérifiez que les connexions Guacamole ont correctement été enregistrées dans Medulla.
Sur la base xmppmaster, exécutez :
USE xmppmaster;
SELECT jid,
hostname,
machine_id,
idguacamole,
protocol
FROM machines
JOIN has_guacamole
ON machines.id = has_guacamole.machine_id
WHERE jid LIKE '%nom_machine%';
Exemple de résultat :
+-------------------------------------------+-------------+------------+-------------+----------+
| jid | hostname | machine_id | idguacamole | protocol |
+-------------------------------------------+-------------+------------+-------------+----------+
| nom_machine.7wg@server-ars01/bc241109f61e | nom_machine | 23 | 386 | SSH |
| nom_machine.7wg@server-ars01/bc241109f61e | nom_machine | 23 | 387 | VNC |
| nom_machine.7wg@server-ars01/bc241109f61e | nom_machine | 23 | 388 | RDP |
+-------------------------------------------+-------------+------------+-------------+----------+
Vérifiez que la connexion correspondant au protocole que vous souhaitez utiliser est présente.
Par exemple, pour une PMAD VNC, une ligne avec le protocole VNC doit être présente.
Si aucune connexion n'est présente :
Relancez un enregistrement de la machine. Si les connexions ne sont toujours pas créées après le réenregistrement, vérifiez sur la machine cliente que les protocoles concernés sont correctement activés : VNC lancé, RDP activé ou démon OpenSSH démarré.
6. Vérifier le détail de la connexion Guacamole
Une fois l'idguacamole identifié, il est possible de contrôler la configuration de la connexion correspondante.
Architecture avec serveur relais :
Si la machine est connectée à un serveur relais Medulla, cette requête doit être exécutée sur le relais auquel la machine est connectée.
Dans l'exemple précédent, la connexion VNC possède l'identifiant 387.
USE guacamole;
SELECT guacamole_connection.protocol AS protocol,
guacamole_connection.connection_id AS connection_id,
parameter_name,
parameter_value
FROM guacamole_connection_parameter
JOIN guacamole_connection
ON guacamole_connection_parameter.connection_id = guacamole_connection.connection_id
WHERE guacamole_connection.connection_id = 387;
Remplacez 387 par l'idguacamole correspondant à la connexion que vous souhaitez diagnostiquer.
Exemple de résultat pour une connexion VNC :
+----------+---------------+----------------+-----------------+
| protocol | connection_id | parameter_name | parameter_value |
+----------+---------------+----------------+-----------------+
| vnc | 387 | color-depth | 24 |
| vnc | 387 | hostname | localhost |
| vnc | 387 | password | xxxxxxxx |
| vnc | 387 | port | 60381 |
+----------+---------------+----------------+-----------------+
Dans cet exemple, Guacamole doit se connecter à :
localhost:60381
Le port 60381 correspond au port utilisé localement pour atteindre la machine à travers le reverse SSH.
7. Vérifier l'établissement du reverse SSH
Lorsque la connexion Guacamole utilise :
hostname = localhost
vérifiez que le port indiqué dans la configuration Guacamole correspond bien à un reverse SSH actif sur le serveur ou le relais concerné.
Par exemple, si le port retourné est 60381 :
netstat -vatpn | grep 60381
Exemple de résultat :
tcp 0 0 0.0.0.0:60381 0.0.0.0:* LISTEN 420161/sshd: revers
tcp6 0 0 :::60381 :::* LISTEN 420161/sshd: revers
tcp6 0 0 ::1:44178 ::1:60381 ESTABLISHED 420167/guacd
tcp6 0 0 ::1:60381 ::1:44178 ESTABLISHED 420161/sshd: revers
Vous devez notamment retrouver :
- un processus
sshd: reversen écoute sur le port concerné ; - lorsqu'une connexion PMAD est en cours, une communication entre
guacdet ce port.
Information :
Une redirection du port de guacd vers le tunnel est effectuée lors du montage du reverse. Lors d'une tentative de connexion, vérifiez donc la présence d'une ligne guacd en plus des lignes sshd: revers.
Si aucune ligne sshd: revers n'est présente :
Le problème doit être recherché au niveau du reverse SSH.
Consultez alors la FAQ suivante :
SUPPORT - Reverse SSH - Support
8. Diagnostic complémentaire VNC
Pour une connexion VNC, plusieurs contrôles supplémentaires peuvent être effectués.
Sur la machine cliente
Vérifiez que le serveur VNC est en écoute :
netstat -an | find "5900"
Si ce n'est pas le cas, vérifiez l'exécution de TightVNC.
Vérifiez ensuite la présence d'une connexion SSH :
netstat | find "ssh"
Sur le serveur relais
Vérifiez que le reverse SSH est correctement établi :
netstat -vatpn | grep sshd
Information :
Le reverse SSH utilisé pour la PMAD est établi sur un port dynamique. Le numéro du port peut donc varier d'une connexion à l'autre.
9. Diagnostic complémentaire RDP
Pour une connexion RDP, vérifiez en premier lieu que le Bureau à distance est correctement activé sur le poste Windows.
Vérifiez également :
- que le service RDP Windows est démarré ;
- que le poste autorise les connexions Bureau à distance ;
- que la connexion
RDPest présente dans la tablehas_guacamole; - que la connexion Guacamole possède un port de reverse valide ;
- que le reverse SSH correspondant est présent sur le serveur ou le relais.
Conseil :
La même méthode que pour VNC peut être utilisée : récupérez l'idguacamole correspondant au protocole RDP, puis contrôlez les paramètres de la connexion et le port du reverse associé.
10. Le reverse fonctionne mais Guacamole ne s'ouvre toujours pas
Si les contrôles précédents sont corrects :
- la machine est en ligne ;
- la connexion Guacamole existe ;
- le protocole est correctement configuré ;
- le reverse SSH est présent ;
guacdcommunique avec le port du reverse ;
mais que la session Guacamole ne s'ouvre toujours pas depuis l'interface Medulla, vérifiez alors la configuration HTTP utilisée pour autoriser l'accès à Guacamole.
Il faut notamment contrôler le Referer HTTP envoyé par le navigateur et, selon l'architecture, sa transmission par le reverse proxy.
Consultez la FAQ dédiée :
PMAD - Vérifier le Referer HTTP en cas d'échec de connexion Guacamole
Information :
Dans Chrome, les Developer Tools permettent de vérifier la valeur du Referer dans Network > Fetch/XHR > Headers. Une valeur incorrecte ou absente peut empêcher le fonctionnement de la PMAD.
11. Ordre de diagnostic recommandé
En cas de problème de PMAD, effectuez les contrôles dans l'ordre suivant :
- Vérifier que la machine apparaît en ligne dans Medulla.
- Vérifier le fonctionnement de l'agent Medulla.
- Vérifier que VNC, RDP ou SSH est disponible sur la machine.
- Vérifier la présence des connexions dans
xmppmaster.has_guacamole. - Réenregistrer la machine si les connexions Guacamole sont absentes.
- Récupérer l'
idguacamolecorrespondant au protocole concerné. - Vérifier les paramètres de la connexion dans la base
guacamole. - Identifier le port dynamique utilisé par le reverse SSH.
- Vérifier la présence du processus
sshd: revers. - Lors d'une tentative de PMAD, vérifier la communication de
guacdavec le reverse. - Consulter les journaux si l'origine du problème n'est toujours pas identifiée.
- Si toute la chaîne technique fonctionne, vérifier le
RefererHTTP et la configuration Guacamole.
12. Résumé
| Symptôme | Contrôle prioritaire |
|---|---|
| Machine grisée / hors ligne | Agent Medulla et connexion de la machine |
| VNC indisponible | TightVNC et port VNC |
| RDP indisponible | Activation du Bureau à distance Windows |
| Aucune connexion VNC/RDP/SSH enregistrée | Réenregistrement de la machine |
| Connexion Guacamole présente mais PMAD impossible | Paramètres de la connexion Guacamole |
Aucun sshd: revers |
Diagnostic du reverse SSH |
Reverse présent mais aucune connexion guacd |
Guacamole / guacd et logs |
| Toute la chaîne fonctionne mais l'interface refuse la PMAD | Referer HTTP / configuration Guacamole / reverse proxy |
Recommandation :
Pour diagnostiquer efficacement une PMAD Medulla, procédez toujours de la machine vers Guacamole : machine en ligne → protocole VNC/RDP → enregistrement Guacamole → reverse SSH → guacd → accès HTTP Guacamole. Cette méthode permet d'identifier rapidement à quel niveau de la chaîne la connexion est interrompue.
