Aller au contenu

Installation d'Apache Guacamole (v1.6.0)

Source : Documentation officielle Apache Guacamole

Contexte d'installation

Cette documentation utilise la distribution Linux Debian 12.

1 - Installation

1.1 - Installation des librairies

sudo apt install -y make libcairo2-dev libjpeg62-turbo-dev libpng-dev libtool-bin uuid-dev libavcodec-dev libavformat-dev libavutil-dev libswscale-dev freerdp2-dev libpango1.0-dev libssh2-1-dev libtelnet-dev libvncserver-dev libwebsockets-dev libpulse-dev libssl-dev libvorbis-dev libwebp-dev

1.2 - Installation de guacamole-server (guacd)

Astuce

Pour effectuer les extractions, on se placera systématiquement dans le répertoire /tmp, qui sera vidé à chaque redémarrage de la machine.

# On se place dans le répertoire /tmp
cd /tmp

# Téléchargement de guacamole-server
wget https://dlcdn.apache.org/guacamole/1.6.0/source/guacamole-server-1.6.0.tar.gz
# Extraction du fichier
tar -xzf guacamole-server-1.6.0.tar.gz

# On se place dans le dossier guacamole-server-1.6.0
cd guacamole-server-1.6.0

Exécutez les commandes ci-dessous une par une :

sudo ./configure --with-systemd-dir=/usr/local/lib/systemd/system

sudo make

sudo make install

sudo ldconfig

1.3 - Installation de tomcat9

On ajoute le dépôt Debian 11 pour installer tomcat9, en créant le fichier /etc/apt/sources.list.d/bullseye.list :

bullseye.list
deb http://deb.debian.org/debian/ bullseye main

On actualise la liste des paquets et on installe tomcat9 :

sudo apt update
sudo apt install -y tomcat9 tomcat9-admin tomcat9-common tomcat9-user

1.4 - Installation de guacamole-client

cd /tmp
wget https://dlcdn.apache.org/guacamole/1.6.0/binary/guacamole-1.6.0.war
sudo cp guacamole-1.6.0.war /var/lib/tomcat9/webapps/guacamole.war

2 - Configuration

2.1 - Création des fichiers de configuration

# Création de l'arborescence dossier de configuration guacamole
sudo mkdir -p /etc/guacamole/{extensions,lib}

Créez le fichier /etc/guacamole/guacd.conf :

sudo nano /etc/guacamole/guacd.conf

guacd.conf
1
2
3
[server]
bind_host = 0.0.0.0
bind_port = 4822

2.2 - Redirection automatique vers /guacamole

Lorsque l'on accède au serveur web sans préciser /guacamole dans l'URL, la page par défaut de tomcat9 apparaît. Il est possible de remédier à cela en effectuant une modification dans le répertoire /var/lib/tomcat9/webapps/ROOT :

# Placement dans le répertoire
cd /var/lib/tomcat9/webapps/ROOT

# Suppression du fichier index.html
rm index.html

Créez ensuite un fichier index.jsp :

sudo nano /var/lib/tomcat9/webapps/ROOT/index.jsp

index.jsp
<% response.sendRedirect("/guacamole");%>

2.3 - Base de données MariaDB

Installez la base de données MariaDB, puis sécurisez-la.

# Installation de MariaDB
sudo apt -y install mariadb-server

# Sécurisation du serveur MariaDB
sudo mysql_secure_installation

Dans MariaDB, créez une base de données destinée à Guacamole :

# Connexion à l'administration MariaDB
mariadb -u root -p

Informations de la base de données Guacamole / MariaDB

Remplacez les variables ci-dessous par votre propre valeur :

Variable Définition Exemple
guacadb Nom de la base de données pour Guacamole guacamole_db_prod
guacauser Nom de l'utilisateur MariaDB guacamole_user_prod
guacapassword Mot de passe de l'utilisateur #v2i!j%KYECL@w523yD#kdZ9fgmT@U^L

Une fois connecté la console MariaDB, exécutez le script ci-dessous (en ayant remplacé les variables) :

-- Création de la base de données
CREATE DATABASE guacadb;

-- Création de l'utilisateur et affectation des pleins pouvoirs à la base de données
GRANT ALL PRIVILEGES ON guacadb.* TO 'guacauser'@'localhost' IDENTIFIED BY 'guacapassword';

-- Actualisation des permissions
FLUSH PRIVILEGES;

-- Quittez MariaDB
EXIT;

Téléchargez l'extension Guacamole pour l'authentification via MariaDB :

cd /tmp

wget https://downloads.apache.org/guacamole/1.6.0/binary/guacamole-auth-jdbc-1.6.0.tar.gz
tar -xzf guacamole-auth-jdbc-1.6.0.tar.gz

sudo cp guacamole-auth-jdbc-1.6.0/mysql/guacamole-auth-jdbc-mysql-1.6.0.jar /etc/guacamole/extensions/

Importez la structure de la base de données Guacamole :

cd /tmp/guacamole-auth-jdbc-1.6.0/mysql/schema/
cat *.sql | mariadb -u root -p guacadb

Téléchargez le connecteur MariaDB, puis copiez le fichier .jar dans /etc/guacamole/lib :

cd /tmp

wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-j-9.3.0.tar.gz
tar -xzf mysql-connector-j-9.3.0.tar.gz

sudo cp mysql-connector-j-9.3.0/mysql-connector-j-9.3.0.jar /etc/guacamole/lib/

Créez le fichier /etc/guacamole/guacamole.properties et saisissez les informations de la base de connexion MariaDB :

sudo nano /etc/guacamole/guacamole.properties
guacamole.properties
1
2
3
4
5
6
# Base de données MariaDB
mysql-hostname: 127.0.0.1
mysql-port: 3306
mysql-database: guacadb
mysql-username: guacauser
mysql-password: guacapassword

3 - Redémarrage des services

Vous pouvez désormais redémarrer les services tomcat9 et guacd.

sudo systemctl restart tomcat9
sudo systemctl enable guacd --now

Un reboot du serveur également ne mange pas de pain !

Installé !

Votre Guacamole devrait être accessible à l'adresse http://serveur:8080/guacamole

Informations de connexion
  • Les identifiants de connexion par défaut sont guacadmin / guacadmin.

Avertissement

Il est vivement conseillé de changer ces informations d'identification par défaut.

Astuce

Grâce au fichier index.jsp, vous serez également redirigé si vous tentez d'accéder à Guacamole l'adresse http://serveur:8080/ (sans le /guacamole).