Remote-access
Difficulte: Advanced
4 min de lecture

Apache Guacamole : Bureau à distance via navigateur

Tutoriel pour installer et configurer Apache Guacamole, une passerelle de bureau à distance sans client, pour accéder à vos machines via un navigateur web.

Retour aux tutoriels
Qu'est-ce qu'Apache Guacamole ?
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
Changez le mot de passe !
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).

Guacamole est déployé !
Votre instance de Guacamole est maintenant fonctionnelle. Vous pouvez commencer à ajouter vos connexions.

Ajouter une connexion

  1. Connectez-vous en tant qu'administrateur.
  2. Allez dans "Paramètres" -> "Connexions" -> "Nouvelle connexion".
  3. Donnez un nom à votre connexion (ex: "Serveur Web - SSH").
  4. Choisissez le protocole (SSH, RDP, VNC...).
  5. 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).
  6. 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.