Apache Guacamole est une passerelle de bureau à distance sans client. Il vous permet d'accéder à vos ordinateurs (Linux, Windows, MacOS) depuis n'importe quel appareil disposant d'un simple navigateur web. Il traduit les protocoles standards comme VNC, RDP et SSH en un protocole HTML5 qui fonctionne dans votre navigateur.
Pourquoi utiliser Guacamole ?
- Accès Universel : Pas de client lourd à installer. Un navigateur suffit.
- Centralisation : Gérez tous vos accès (SSH, RDP, VNC) depuis une seule interface web.
- Sécurité : Exposez un seul service (HTTPS) sur Internet au lieu de multiples ports RDP/VNC/SSH. Peut s'intégrer à des systèmes d'authentification existants (LDAP, SAML, OpenID).
- Partage de session : Partagez une session en lecture seule ou en contrôle total, idéal pour le support ou la formation.
- Enregistrement de session : Enregistrez les sessions RDP/VNC/SSH sous forme de vidéo pour l'audit ou la formation.
Prérequis
- Un serveur Linux avec Docker et Docker Compose installés. (C'est la méthode d'installation la plus simple et la plus recommandée).
- Accès root ou privilèges sudo.
- Un minimum de 2 Go de RAM sur le serveur.
Installation avec Docker Compose
Déployer Guacamole manuellement peut être complexe. L'utilisation de Docker simplifie énormément le processus en gérant tous les composants (guacd, l'application web, et la base de données) dans des conteneurs isolés.
Étape 1 : Créer le fichier docker-compose.yml
Créez un répertoire pour votre configuration Guacamole et créez-y un fichier `docker-compose.yml`.
mkdir guacamole
cd guacamole
nano docker-compose.yml
Collez la configuration suivante :
version: "3"
services:
guacd:
image: guacamole/guacd
container_name: guacd
restart: unless-stopped
volumes:
- ./data/guacd/drive:/drive:rw
- ./data/guacd/record:/record:rw
networks:
- default
postgres:
image: postgres:13
container_name: postgres_guacamole
restart: unless-stopped
environment:
POSTGRES_DB: guacamole_db
POSTGRES_USER: guacamole_user
POSTGRES_PASSWORD: "CHANGEME_A_STRONG_PASSWORD"
volumes:
- ./data/postgres:/var/lib/postgresql/data
networks:
- default
# Script d'initialisation de la base de données
db-init:
image: guacamole/guacamole
container_name: db_init_guacamole
command: ["/opt/guacamole/bin/initdb.sh", "--postgresql"]
depends_on:
- postgres
environment:
POSTGRES_DATABASE: guacamole_db
POSTGRES_USER: guacamole_user
POSTGRES_PASSWORD: "CHANGEME_A_STRONG_PASSWORD"
POSTGRES_HOSTNAME: postgres
networks:
- default
guacamole:
image: guacamole/guacamole
container_name: guacamole
restart: unless-stopped
depends_on:
- guacd
- postgres
ports:
- "8080:8080"
environment:
GUACD_HOSTNAME: guacd
POSTGRES_DATABASE: guacamole_db
POSTGRES_USER: guacamole_user
POSTGRES_PASSWORD: "CHANGEME_A_STRONG_PASSWORD"
POSTGRES_HOSTNAME: postgres
networks:
- default
networks:
default:
driver: bridge
Avant de continuer, modifiez les trois occurrences de
CHANGEME_A_STRONG_PASSWORD dans le fichier avec un mot de passe robuste.
Étape 2 : Lancer les conteneurs
Depuis le répertoire `guacamole`, lancez les services :
docker-compose up -d
Docker va télécharger les images et démarrer les conteneurs. Le premier démarrage peut prendre quelques minutes, le temps que la base de données soit initialisée.
Étape 3 : Accéder à Guacamole
Ouvrez votre navigateur et allez à l'adresse http://<ip_de_votre_serveur>:8080/guacamole/.
L'identifiant et le mot de passe par défaut sont :
- Utilisateur :
guacadmin - Mot de passe :
guacadmin
Changez immédiatement ce mot de passe après votre première connexion ! (Allez dans Préférences -> Utilisateurs -> guacadmin).
Votre instance de Guacamole est maintenant fonctionnelle. Vous pouvez commencer à ajouter vos connexions.
Ajouter une connexion
- Connectez-vous en tant qu'administrateur.
- Allez dans "Paramètres" -> "Connexions" -> "Nouvelle connexion".
- Donnez un nom à votre connexion (ex: "Serveur Web - SSH").
- Choisissez le protocole (SSH, RDP, VNC...).
- Remplissez les paramètres requis :
- Pour SSH : Nom d'hôte (ou IP), Port (22), Nom d'utilisateur, Clé privée (recommandé) ou mot de passe.
- Pour RDP : Nom d'hôte (ou IP), Port (3389), Nom d'utilisateur, Mot de passe, Domaine (si nécessaire).
- Sauvegardez la connexion.
Retournez à l'écran d'accueil, et votre nouvelle connexion devrait apparaître dans la liste. Cliquez dessus pour vous connecter.
Passer en HTTPS (Recommandé)
En production, il est indispensable d'exposer Guacamole via HTTPS. Le plus simple est d'utiliser un reverse proxy comme Nginx Proxy Manager, Traefik ou Caddy pour gérer le certificat SSL/TLS.
Conclusion
Apache Guacamole est un outil de productivité et de sécurité formidable. Il simplifie radicalement l'accès à distance en le rendant accessible depuis n'importe quel navigateur moderne. L'utilisation de Docker pour le déploiement élimine la complexité de l'installation manuelle et permet de mettre en place une instance fonctionnelle en quelques minutes. C'est la solution parfaite pour centraliser et sécuriser les accès à votre parc de serveurs ou de postes de travail.