My Personal Wiki

La théorie, c'est quand on sait tout et que rien ne fonctionne.... La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

Outils pour utilisateurs

Outils du site


linux:conteneur:docker:guacamole:guacamole

Déployer les conteneurs Guacamol/Guacacd et MariaDB


Amd64 Version

Fichier Compose

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

Paramètre BDD

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

Maj Conteneur

sudo docker compose pull && sudo docker compose up -d

Armhf Version

Création du Volume

Pour la configuration de Guacamole:

docker volume create Guacamole_config

Pour enregistrer les recordings Typecript ou Session Vidéo:

docker volume create Guacamole_config

Commande Docker

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


Record Typescript

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]

UI Config


TOTP

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:


Login


Paramètre

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.


Connexion

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}

linux/conteneur/docker/guacamole/guacamole.txt · Dernière modification : de sylvain

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki