version: '3.8' 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=Root_Password_here - MYSQL_DATABASE=guacamole_db - MYSQL_USER=guacamole_user - MYSQL_PASSWORD=Mysql_Password_here expose: - 3306 guacd: container_name: guacd hostname: guacd image: guacamole/guacd:latest restart: always volumes: - ./guacd_drive:/drive:rw - ./guacd_record:/record:rw expose: - 4822 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=guacamole_db - MYSQL_USER=guacamole_user - MYSQL_PASSWORD=Mysql_Password_here - REMOTE_IP_VALVE_ENABLED=true
Récupérer le script d’initialisation de la base :
docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > initdb.sql
Injecter le fichier de la base de données :
docker exec -i guacamole_db mysql --user guacamole --password=change-me guacamole_db < initdb.sql
sudo docker compose pull && sudo docker compose up -d
Pour la configuration de Guacamole:
docker volume create Guacamole_config
Pour enregistrer les recordings Typecript ou Session Vidéo:
docker volume create Guacamole_config
docker run -d \ --name=guacamole \ -p 8080:8080 \ -v Guacamole_config:/config \ -v Guacamole_recording:/recording \ -e "EXTENSIONS=auth-totp" \ --restart unless-stopped \ oznu/guacamole:armhf
Les Extensions type authentifications sont disponibles dans :
/var/lib/docker/volumes/Guacamole_config/_data/guacamole/extensions-available/
-rw-r--r-- 1 root root 3849511 Mar 29 18:03 guacamole-auth-cas-1.2.0.jar -rw-r--r-- 1 root root 3738097 Mar 29 18:03 guacamole-auth-duo-1.2.0.jar -rw-r--r-- 1 root root 754032 Mar 29 18:03 guacamole-auth-header-1.2.0.jar -rw-r--r-- 1 root root 7582007 Mar 29 18:03 guacamole-auth-ldap-1.2.0.jar -rw-r--r-- 1 root root 1017661 Mar 29 18:03 guacamole-auth-openid-1.2.0.jar -rw-r--r-- 1 root root 23331 Mar 29 18:03 guacamole-auth-quickconnect-1.2.0.jar -rw-r--r-- 1 root root 4983944 Mar 29 18:03 guacamole-auth-totp-1.2.0.jar
Il est possible de les mettre à jour ici
Voici les paramètres à mettre en place pour loguer les actions de session.
Chemin Typescript : /recording/Nom_de_mon_serveur Nom Typescript : ${GUAC_DATE}-${GUAC_TIME}-SSH-${GUAC_USERNAME} Créer automatiquement le chemin typescript : Cocher la Case
Si vous aller voir dans votre serveur Docker dans :
/var/lib/docker/volumes/Guacamole_recording/_data/Mon_Serveur/20250329-235013-SSH-sylvain
Vous pourrez observer se qu'il c'est passé sur la machine:
██████╗ █████╗ ███████╗ ██████╗ ██████╗ ██████╗ █████╗ ██████╗██╗ ██╗██████╗ ██╗
██╔══██╗██╔══██╗╚══███╔╝██╔═══██╗██╔══██╗██╔══██╗██╔══██╗██╔════╝██║ ██╔╝██╔══██╗██║
██████╔╝███████║ ███╔╝ ██║ ██║██████╔╝██████╔╝███████║██║ █████╔╝ ██████╔╝██║
██╔══██╗██╔══██║ ███╔╝ ██║ ██║██╔══██╗██╔══██╗██╔══██║██║ ██╔═██╗ ██╔═══╝ ██║
██║ ██║██║ ██║███████╗╚██████╔╝██║ ██║██████╔╝██║ ██║╚██████╗██║ ██╗██║ ██║
╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝ ╚═════╝ ╚═╝ ╚═╝╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝
Powered By Minos® Corp© Certified™.
Last login: Sun Mar 30 00:41:41 2025 from 192.168.xxx.xxx (ip du bastion)
Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur
/dev/root 59G 9,0G 48G 16% /
.~~. .~~. dimanche, 30 mars 2025, 00:50
'. \ ' ' / .' Linux 5.10.103-v7+ armv7l GNU/Linux
.~ .~~~..~.
: .~.'~'.~. : Uptime.............: 6 days, 09h27m19s
~ ( ) ( ) ~ Memory.............: 73MB (Free) / 972MB (Total)
( : '~'.~.'~' : ) Load Averages......: 0.35, 0.08, 0.03 (1, 5, 15 min)
~ .~ ( ) ~. ~ Running Processes..: 153
( : '~' : ) IP Addresses.......: and 93.126.xxx.xxx
'~ .~~~. ~' Temperature........: 39.5'C
'~' Volume...../home/pi: 2,4G .
pi@RazorbackPi:~ $echo 'Trop cool !!'
pi@RazorbackPi:~ $ Trop cool !!
pi@RazorbackPi:~ $ exit
déconnexion
[END TYPESCRIPT]
Pour vous connecter, “ip_de_seveur_hôte:port_d'écoute”. Depuis un navigateur:
http:ip_de_seveur_hôte:8080//
Une fois l'extension TOTP activée, vous devrez vous enroller pour vous permettre de vous authentifer:
Depuis le compte guacadmin vous devrez allez dans les paramètres pour commencer à creer vos comptes et configurations.
Créer votre utilisateur pour ne pas utiliser le compte guacadmin !!
Vous pourrez faire de même avec les groupes, afin de créer des groupes d'utilisateur et ainsi régir leurs accès et droits.
Dans l'onglet connexion, vous pourrez également créer des groupes pour classer vos assets avec le bouton Nouveau Groupe.
Pour Créer une nouvelle connexion, vous pouvez déplier vos groupes puis cliquer sur “Nouvelle Connexion”
Voici les étapes minimales, pour configurer une connexion SSH avec enregistrement Typescript des sessions.
Chemin Typescript :
/recording/SRV1
Nom Typescript : \\
${GUAC_DATE}-${GUAC_TIME}-SSH-${GUAC_USERNAME}