Installation d’Apache Guacamole avec Docker

Introduction

Apache Guacamole est une passerelle d’accès à distance sans client qui vous permet de contrôler des systèmes via des protocoles tels que RDP, SSH ou VNC à partir de n’importe quel navigateur web. Utiliser Docker pour installer Guacamole simplifie grandement le processus en permettant de déployer ses services rapidement et efficacement, avec tous les conteneurs nécessaires regroupés dans un seul fichier docker-compose.

Dans ce guide, nous allons voir comment installer Apache Guacamole en utilisant Docker. Nous allons créer un environnement composé de trois conteneurs principaux : une base de données MariaDB pour stocker les données des utilisateurs et des connexions, un serveur Guacamole (guacd) pour gérer les connexions distantes, et l’interface web de Guacamole.

Installation

Dans un premier temps, vous devrez avoir docker d’installer sur votre machine !

Créez d’abord un dossier de travail et accédez-y :

sudo mkdir guacamole && cd guacamole

Ensuite, ouvrez le fichier docker-compose.yml pour y définir la configuration :

sudo nano docker-compose.yml 

Ajouter le contenu suivant :

services: 
    guacamole_db:
      container_name: guacamole_db
      hostname: guacamole_db
      image: mariadb:latest
      restart: always
      volumes:
        - ./guacamole_db:/var/lib/mysql
      environment:
        - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
        - MYSQL_DATABASE=${MYSQL_DATABASE}
        - MYSQL_USER=${MYSQL_USER}
        - MYSQL_PASSWORD=${MYSQL_PASSWORD}
      expose:
        - 3306
      networks:
        - guac_net
    guacd:
      container_name: guacd
      hostname: guacd
      image: guacamole/guacd:latest
      restart: always
      environment:
        - RECORDING_SEARCH_PATH=${RECORDING_SEARCH_PATH}
      volumes:
        - ./guacd_drive:/drive:rw
        - ./guacd_record:${RECORDING_SEARCH_PATH}:rw
      expose:
        - 4822
      networks:
        - guac_net
    guacamole:
      container_name: guacamole
      hostname: guacamole
      restart: always
      image: guacamole/guacamole:latest
      depends_on:
        - guacamole_db
        - guacd
      ports:
        - 8080:8080
      links:
        - guacd
      environment:
        - GUACD_HOSTNAME=guacd
        - MYSQL_HOSTNAME=guacamole_db
        - MYSQL_DATABASE=${MYSQL_DATABASE}
        - MYSQL_USER=${MYSQL_USER}
        - MYSQL_PASSWORD=${MYSQL_PASSWORD}
        - RECORDING_SEARCH_PATH=${RECORDING_SEARCH_PATH}
      volumes:
        - ./guacd_record:${RECORDING_SEARCH_PATH}:ro
      networks:
        - guac_net
  networks:
  guac_net:

Création d’un fichier .env pour stocker les variables d’environnement.

sudo nano .env 
# DATABASE CONFIG 
  MYSQL_ROOT_PASSWORD=your_password
  MYSQL_DATABASE=guacamole
  MYSQL_USER=guacamole
  MYSQL_PASSWORD=yout_password
RECORDING_SEARCH_PATH=/var/lib/guacamole/recordings

Le fichier Docker Compose est maintenant prêt. Il nous reste à initialiser la base de données pour Apache Guacamole.

Cette étape est indispensable pour éviter l’erreur suivante lors du démarrage des conteneurs :

### Cause: java.sql.SQLSyntaxErrorException: Table ‘guacamole_db.guacamole_user’ doesn’t exist

Pour les étapes suivantes, il est recommandé d’utiliser l’utilisateur root afin de garantir les permissions nécessaires pour les modifications.

La première étape consiste à récupérer le script d’initialisation de la base de données MySQL.

docker run --rm guacamole/guacamole:latest /opt/guacamole/bin/initdb.sh --mysql > initdb.sql

Ensuite, démarrez les conteneurs avec la commande suivante :

sudo docker compose up -d 

Puis, copiez et importez le script d’initialisation dans le conteneur de la base de données à l’aide des commandes suivantes :

cp initdb.sql guacamole_db:/initdb.sql 
  docker exec -it guacamole_db bash
  cat /initdb.sql | mariadb -u root -p guacamole
exit

Enfin, redémarrez le conteneur Guacamole pour appliquer les modifications :

sudo docker restart guacamole 

Apache Guacamole est maintenant opérationnel. Vous pouvez y accéder via l’URL suivante :
http://votre-ip:8080/guacamole

La page de connexion s’affichera, et vous pourrez vous connecter en utilisant les identifiants par défaut :


Nom d’utilisateur : guacadmin
Mot de passe : guacadmin

Une image contenant texte, capture d’écran, logo, Police

Description générée automatiquement

Création d’une session SSH

Dans cette section, nous allons aborder la création d’une session SSH et la liaison à un utilisateur que nous allons créer.

Tout d’abord, accédez à l’onglet « Connexions » puis sélectionnez « Nouvelle connexion ».

Une image contenant texte, Police, ligne, capture d’écran

Description générée automatiquement Entrez les informations suivantes en les adaptant à vos besoins :

Une image contenant texte, capture d’écran, nombre, Police

Description générée automatiquement

Une image contenant texte, capture d’écran, Parallèle, diagramme

Description générée automatiquement

Une image contenant texte, capture d’écran, Police, document

Description générée automatiquement

Votre première session est prête !

Pour se connecter à la session, il est nécessaire de se rendre dans l’onglet « Accueil » :

Une image contenant texte, Police, capture d’écran, nombre

Description générée automatiquement

Ensuite, cliquez sur la connexion que vous venez de créer.

Une image contenant texte, capture d’écran, Police, ligne

Description générée automatiquement

La console SSH s’ouvre !

Une image contenant texte, capture d’écran, Police

Description générée automatiquement

Créer un nouvel utilisateur

Nous allons maintenant créer un nouvel utilisateur.

Dans l’interface d’administration, choisissez « Paramètres » puis « Utilisateurs » et cliquez sur « Nouvel Utilisateur »

Une image contenant texte, capture d’écran, Police, nombre

Description générée automatiquement

Une image contenant texte, capture d’écran, logiciel, Police

Description générée automatiquement

Créez un utilisateur « test » sans privilèges, puis cochez la case en bas pour autoriser la connexion à la machine SSH que vous avez créée précédemment.

Une image contenant texte, capture d’écran, Police, nombre

Description générée automatiquement

En vous connectant avec cet utilisateur, vous verrez la connexion SSH que vous avez créée et pourrez y accéder facilement !

Astuce pour copier-coller

Pour effectuer un copier-coller, il faut réaliser la combinaison de touche « shift+alt+tab »

Dans l’onglet presse-papiers, sélectionner le texte que vous voulez copier.

Une image contenant texte, capture d’écran, affichage

Description générée automatiquement

Utilisez de nouveau « Shift+Alt+Tab » pour quitter les onglets, puis faites un clic droit dans l’éditeur de ligne de commande. Vous verrez que le copier-coller fonctionne correctement.

Conclusion

En suivant ce guide, vous avez réussi à installer Apache Guacamole avec Docker, créant ainsi un environnement d’accès à distance pratique et efficace.

Nous avons également vu la création d’une connexion SSH et d’un utilisateur.

N’hésitez pas à explorer davantage les fonctionnalités de Guacamole et à adapter votre installation selon vos besoins spécifiques. Avec Guacamole, vous avez à portée de main un outil puissant pour le contrôle à distance de vos systèmes, le tout accessible depuis n’importe quel navigateur.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Retour en haut