Apache Guacamole

Apache Guacamole

C'est quoi ?

Apache Guacamole est une passerelle de bureau à distance qui s'utilise depuis un navigateur. L'utilisateur ouvre une page web, choisit une machine dans sa liste, et le serveur Guacamole ouvre pour lui la session RDP, VNC, SSH, telnet ou Kubernetes. Le projet se dit « clientless » : aucun plugin ni logiciel client ne s'installe sur le poste de l'utilisateur.

Guacamole se distingue de RustDesk et de MeshCentral côté machine cible. RustDesk y fait tourner sa propre application, MeshCentral y pose un agent. Guacamole n'y installe rien : il se branche sur le serveur RDP, VNC ou SSH que la machine expose. Le comparatif des logiciels de bureau à distance open source détaille ce que chaque approche demande au réseau et au serveur.

Pourquoi c'est intéressant ?

  • Un navigateur suffit : le client est une application HTML5 que le serveur envoie au navigateur, mobiles compris, avec un clavier virtuel qui envoie Ctrl-Alt-Suppr à la machine distante sans le déclencher sur le poste local.
  • Bureaux et terminaux dans la même liste : guacd charge chaque protocole sous forme de plugin, et l'utilisateur passe d'un bureau RDP à un shell SSH sans changer d'outil.
  • Authentification au choix : base de données, Active Directory et LDAP, second facteur TOTP ou Duo, SSO par CAS, OpenID Connect, SAML ou carte à puce, RADIUS.
  • Sessions enregistrées : tous les protocoles s'enregistrent graphiquement, se rejouent dans le navigateur ou se convertissent en vidéo avec guacenc. Depuis la 1.6.0, une permission d'audit donne accès à l'historique en lecture seule.
  • Partage et fichiers : le menu Share génère un lien vers la session en cours. Les fichiers passent par glisser-déposer, par SFTP ou par le lecteur virtuel que Guacamole émule pour RDP.
  • Des bibliothèques réutilisables : guacamole-common (Java) et guacamole-common-js servent à intégrer un bureau distant dans une autre application web.

À savoir

Trois composants en production. Le premier est guacd, le démon en C qui parle les protocoles de bureau à distance. Compilé à la main, il n'active un protocole que si sa bibliothèque est présente : FreeRDP 2.0.0 ou plus pour RDP, libssh2 pour SSH, libVNCServer pour VNC. Le deuxième est l'application web Java du dépôt guacamole-client, un .war à déployer dans Tomcat ou un autre conteneur de servlets. Le troisième est la base des comptes : l'authentification par défaut, un simple fichier user-mapping.xml, n'est « pas destinée à la production », et la documentation recommande fortement MariaDB/MySQL, PostgreSQL ou SQL Server. C'est cette base qui ajoute l'interface d'administration web, les liens de partage et les groupes de répartition de charge. Les images Docker officielles séparent guacd et l'application web, et la seconde refuse de démarrer tant qu'aucun mécanisme d'authentification n'est configuré.

Des machines joignables depuis la passerelle. Le démon guacd ouvre lui-même la connexion vers chaque serveur RDP, VNC ou SSH, « au nom de l'utilisateur » selon la documentation d'architecture. Chaque machine doit donc faire tourner ce serveur et être accessible depuis le réseau de guacd. L'agent de MeshCentral se connecte au contraire au serveur en sortie, et atteint ainsi une machine derrière un NAT sans ouvrir de port chez elle.

Un projet de la fondation Apache, sans offre commerciale propre. Le support passe par les listes de diffusion et le JIRA du projet. La page de support de Guacamole liste des sociétés tierces qui vendent de l'assistance, en précisant que la fondation ne les a ni recommandées ni vérifiées.

Une 1.6.1 en préparation, quinze mois après la 1.6.0. La dernière version publiée est la 1.6.0, du 22 juin 2025. De la 1.0.0 (janvier 2019) à la 1.5.0 (février 2023), au moins une version mineure sortait chaque année ; la suivante a demandé vingt-huit mois et cinq correctifs 1.5.x. En septembre 2026, les deux dépôts reçoivent des correctifs sur une branche staging/1.6.1, sans version publiée au 7 octobre 2026.