diff --git a/HowtoGuacamole.md b/HowtoGuacamole.md new file mode 100644 index 00000000..ca5d2d82 --- /dev/null +++ b/HowtoGuacamole.md @@ -0,0 +1,97 @@ +--- +title: How to Guacamole +categories: vnc +... + +* Documentation : + +[Apache Guacamole](https://guacamole.apache.org/) est une application web permettant la connexion à des ordinateurs distants en utilisant les protocoles RDP, VNC et SSH. + +## Installation + +L'installation native de guacamole nécessite la compilation de guacd, pour cette raison, nous recommandons l'utilisation de docker. + +### Pré-requis + +* [Docker](https://wiki.evolix.org/HowtoDocker) +* [Docker compose](https://wiki.evolix.org/HowtoDockerCompose) (ou `apt install docker-compose-plugin` en utilisant les dépôts de docker) +* [PostgreSQL](https://wiki.evolix.org/HowtoPostgreSQL) + +### Création de la base de donnée + +``` +# sudo -u postgres -- createdb guacamole +# docker run --rm docker.io/guacamole/guacamole /opt/guacamole/bin/initdb.sh --postgresql > initdb.sql +# sudo -u postgres -- psql -d guacamole -f - < initdb.sql +# sudo -u postgres -- createuser -P guacamole +# sudo -u postgres -- psql -d guacamole -f - << EOF +GRANT SELECT,INSERT,UPDATE,DELETE ON ALL TABLES IN SCHEMA public TO guacamole; +GRANT SELECT,USAGE ON ALL SEQUENCES IN SCHEMA public TO guacamole; +EOF +``` + +Il faut aussi s'assurer que les containers du service puissent se connecter à PostgreSQL. + +### Création du service + +``` +# POSTGRESQL_PASSWORD="${POSTGRESQL_PASSWORD:?}" +# mkdir /etc/guacamole +# cat > /etc/guacamole/compose.yml << EOF +services: + guacd: + image: docker.io/guacamole/guacd + networks: + - guacamole + guacamole: + image: docker.io/guacamole/guacamole + depends_on: + - guacd + extra_hosts: + - "host.docker.internal:host-gateway" + ports: + - 8080:8080 + environment: + GUACD_HOSTNAME: 'guacd' + POSTGRESQL_HOSTNAME: 'host.docker.internal' + POSTGRESQL_DATABASE: 'guacamole' + POSTGRESQL_USER: 'guacamole' + POSTGRESQL_PASSWORD: '${POSTGRESQL_PASSWORD}' + # Active la fonctionnalité TOTP + TOTP_ENABLED: 'true' + networks: + - guacamole + +networks: + guacamole: + name: guacamole + attachable: true + driver: bridge + driver_opts: + com.docker.network.bridge.name: "guacamole0" + ipam: + driver: default + config: + - subnet: 172.18.0.0/16 + ip_range: 172.18.5.0/24 + gateway: 172.18.0.1 +EOF +# cd /etc/guacamole +# docker compose -f /etc/guacamole/compose.yml up -d +``` + +Il est ensuite possible de se connecté à guacamole en utilisant (remplacer `127.0.0.1` par l'IP ou le nom d'hôte du serveur) et en utilisant les identifiants `guacadmin`/`guacadmin`. + +Il est fortement recommandé de remplacer cet utilisateur par un autre compte administrateur dès la première connexion. + +## Administration + +L'interface d'administration est accessible à un utilisateur administrateur en cliquant sur leur nom d'utilisateur et en sélectionnant `Settings`. + +### Gestion des utilisateurs + +La gestion des utilisateurs se fait à partir de l'onglet `Users` et la gestion des groupes utilisateurs se fait à partir de l'onglet `Groups`. Les droits peuvent se définir au niveau des utilisateurs individuels ou au niveau des groupes. + +### Gestion des connexions + +Les connexions sont à prédéfinir dans l'onglet `Connections` de l'interface administrateur en cliquant sur le bouton `New connection`. \ No newline at end of file