Installation du serveur Guacamole
Installer Apache Guacamole sur Debian
Installer les prérequis d’Apache Guacamole
Tout d’abord, nous devons installer un ensemble de paquets indispensables au bon fonctionnement d’Apache Guacamole. Certains paquets sont spécifiques à certaines fonctionnalités, comme les connexions RDP par exemple. Cette liste de dépendance est consultable dans la documentation.
Pour connaître les dépendances nécessaires, voir la documentation officielle d’apache guacamole.
Mise à jour de tous les dépôts
pour partir su de bonnes bases, on mettra à jour la machine Debian
apt update -y && apt upgrade -y
Installation des outils de compilation
Pour pouvoir compiler les sources de guacamole, nous allons avoir besoin de divers logiciels
apt install build-essential git curl wget gcc make -y
Installation des dépendances
Afin d’avoir tous les prérequis à l’installation de guacamole nous allons installer quelques paquets qui permettront la prise en charge des différents protocoles de contrôle à distance
apt install libcairo2-dev libjpeg62-turbo-dev libjpeg62-dev libpng-dev libpng12-dev libtool-bin \
uuid-dev libossp-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 -y
Installation du serveur Guacamole
Téléchargement et installation des sources
Guacamole s’installera en plusieurs parties, la partie client et la partie serveur, on va commencer par la partie serveur de guacamole, pour cela il faudra récupérer les sources sur le site officiel d’apache guacamole avec la commande suivante
cd /tmp/ ; wget https://apache.org/dyn/closer.lua/guacamole/1.5.5/source/guacamole-server-1.5.5.tar.gz?action=download \
mv guacamole-server-1.5.5.tar.gz\?action\=download guacamole-server-1.5.5.tar.gz
Après avoir téléchargé les sources dans le dossier /tmp ; on peut les extraire de l’archive téléchargée
tar -xvzf guacamole-server-1.5.5.tar.gz ; cd guacamole-server-1.5.5
Configuration des dépendances téléchargées
Dans cette première étape, les sources de guacamole ont été téléchargées, et la commande ./configure va nous permettre de faire un check-up complet des dépendances installées et de générer les Makefiles
./configure --with-init-dir=/etc/init.d
Compilation des sources du serveur
Une fois les chemin d’installation et de configuration crées dans l’étape précédente, on peut lancer la compilation du guacamole-server
make
Installation
Enfin, après avoir compilé le logiciel, on peut maintenant lancer l’installation via la commande suivante
make install
Puis on fera une dernière vérification pour mettre à jour le cache des bibliothèques installées sur le système
ldconfig
Installation du serveur Tomcat
pour pouvoir faire fonctionner l’interface web, nous aurons besoin d’un serveur web applicatif, Guacamole fonctionne avec Tomcat. Nous allons donc installer Tomcat 9; mais comme nous somme sur la version 12 de Debian (Bookworm) nous devrons installer tomcat9 depuis les sources de la version précédente de Debian.
Installation de java
Pour faire fonctionner tomcat9, il faudra installer java, avant de créer le service tomcat9 dans le dossier init.d
apt install default-jdk -y
Téléchargement et installation des sources
Commençons par ajouter les dépôts de Debian Bullseye pour tomcat9
echo "deb http://deb.debian.org/debian/ bullseye main" > /etc/apt/sources.list.d/bullseye.list
Ensuite nous allons faire la mise à jour des dépôts et installer le serveur web TOMCAT9
apt update -y ;
apt install tomcat9 tomcat9-admin tomcat9-common tomcat9-user -y
Activation du service tomcat9
systemctl daemon-reload ;
systemctl start tomcat9 ;
systemctl enable tomcat9 ;
systemctl status tomcat9
Installation du client Guacamole
Téléchargement et installation des sources
Normalement, vous n’avez pas besoin de créer guacamole-client, car il est écrit en Java et est multiplateforme. Vous pouvez facilement obtenir la dernière version de guacamole-client à partir des archives de versions du site Web du projet Guacamole, y compris toutes les extensions prises en charge, sans avoir à le créer vous-même.
Si vous ne souhaitez pas créer guacamole-client à partir des sources, téléchargez simplement guacamole.war à partir du site Web du projet, ainsi que les extensions souhaitées, et passez directement à Déploiement de Guacamole.
Commençons par télécharger les sources pour le client
cd /tmp ; wget https://apache.org/dyn/closer.lua/guacamole/1.5.5/source/guacamole-client-1.5.5.tar.gz?action=download ;
mv guacamole-client-1.5.5.tar.gz?action=download guacamole-client-1.5.5.tar.gz
On peut maintenant décompresser l’archive téléchargée depuis le site officiel d’apache guacamole
tar -xzf guacamole-client-1.5.5.tar.gz ; cd guacamole-client-1.5.5
Compilation des sources java
pour compiler les sources logicielles de guacamole-client , nous aurons besoin de l’outil maven qu’il faudra installer avec la commande suivante
apt install maven -y
Ensuite pour éviter un maximum d’erreurs de compilation avec java, on va définir sa HOME directory JAVA_HOME, pour ça on fera d’abord la commande suivante
update-alternatives --config java
Il faudra sélectionner l’option automatique; puis on ajoute la variable d’environnement JAVA_HOME
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
Ensuite il suffira de lancer la compilation depuis le dossier guacamole-client
cd /tmp/guacamole-client-1.5.5 ; \
mvn package
Pour créer guacamole-client, exécutez simplement « mvn package ». Cela invoquera Maven pour créer et empaqueter automatiquement tous les composants, produisant un seul fichier .war, qui contient l’intégralité de l’application Web
En cas d’erreurs de compilation
Dans le cas ou la compilation présente des erreurs et ne génère pas le fichier, il faudra télécharger la webapp directement sur le site officiel d’apache guacamole pour le lier symboliquement à TOMCAT9
wget https://apache.org/dyn/closer.lua/guacamole/1.5.5/binary/guacamole-1.5.5.war?action=download ;
mkdir /etc/guacamole;
mv guacamole-1.5.5.war?action=download guacamole-1.5.5.war;
mv guacamole-1.5.5.war /etc/guacamole/
Création des liens symboliques pour le serveur TOMCAT9
ln -s /etc/guacamole/guacamole-1.5.5.war /var/lib/tomcat9/webapps/
Une fois ceci fait, on peut actualiser le tout en relançant les services guacd et tomcat9
systemctl restart tomcat9 guacd
Création des répertoires d’extensions de guacamole
Pour pouvoir greffer des extensions comme l’extension MFA, l’extension SQL, ou encore SSO, on va créer des répertoires pour aller chercher ces données
mkdir -p /etc/guacamole/{extensions,lib}
Installation de la base de données MySQL pour Guacamole
Pour stocker les données de guacamole, nous aurons besoin d’une base de données, que nous installerons avec le paquet mariadb-server
apt install -y mariadb-server
Puis on va sécuriser l’accès à la base de données
mysql_secure_installation
On peut maintenant se connecter sur la base de données
mysql -u root -p
Puis un peut créer la base de données
CREATE DATABASE guacadb;
CREATE USER 'guacadmin'@'localhost' IDENTIFIED BY 'P@ssword!';
GRANT SELECT,INSERT,UPDATE,DELETE ON guacadb.* TO 'guacadmin'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Ajout de l’extension MySQL pour guacamole
Maintenant que la base de données de guacamole est crée et opérationnelle, nous devons ajouter l’extension MySQL à guacamole pour qu’il soit capable d’interpréter le langage SQL
Téléchargement des sources
Pour récupérer les extensions nécessaires à guacamole il faudra se rendre sur le site officiel d’apache guacamole et télécharger l’extension guacamole-auth-jdbc-1.5.5
cd /tmp ; \
wget https://apache.org/dyn/closer.lua/guacamole/1.5.5/binary/guacamole-auth-jdbc-1.5.5.tar.gz?action=download ; \
mv guacamole-auth-jdbc-1.5.5.tar.gz?action=download guacamole-auth-jdbc-1.5.5.tar.gz
On peut maintenant décompresser l’archive puis la déplacer dans e répertoire de guacamole
tar -xvzf guacamole-auth-jdbc-1.5.5.tar.gz
Puis on va déplacer ces extensions dans le répertoire dédié aux extensions de guacamole
mv guacamole-auth-jdbc-1.5.5/mysql/guacamole-auth-jdbc-mysql-1.5.5.jar /etc/guacamole/extensions/
Ajout du connecteur MySQL
Pour permettre à l’extension de guacamole guacamole-auth-jdbc-1.5.5 de communiquer correctement avec MySQL on va aller chercher le connecteur MySQL pour java sur le site officiel de MySQL en sélectionnant l’option Platform independent
Cliquer sur download
puis on va copier le lien de téléchargement pour le télécharger dans /etc/guacamole/lib
cd /etc/guacamole/lib ; \
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-j-8.4.0.tar.gz
Puis extraire l’archive
tar -xvzf mysql-connector-j-8.4.0.tar.gz ; \
rm -rf mysql-connector-j-8.4.0.tar.gz
Import de la base de données dans MySQL
pour remplir notre base de données qui est vierge pour le moment on va se rendre dans le dossier de l’extension guacamole qui a été téléchargé dans /tmp
; soit /tmp/guacamole-auth-jdbc-1.5.5/mysql/schema
; puis on va importer les tables avec la commande suivante
cat *.sql | mysql -u root -p guacadb
Déclarer la connexion BDD dans un fichier de configuration
On va créer le fichier de configuration avec vi /etc/guacamole/guacamole.properties
qui va nous permettre de déclarer la connexion à notre base de données
# MySQL
mysql-hostname: 127.0.0.1
mysql-port: 3306
mysql-database: guacadb
mysql-username: guacadmin
mysql-password: P@ssword!
Créer le fichier de configuration du service guacd
On devra créer le fichier de configuration du serveur guacd avec vi /etc/guacamole/guacd.conf
pour donner les instructions de connexion (port)
[server]
bind_host = 0.0.0.0
bind_port = 4822
Redémarrage de l’ensemble des services
Pour finir de bien appliquer la configuration on va relancer tous les services installés précédemment
systemctl restart tomcat9 guacd mariadb
Accès à l’interface Web de guacamole
Pour accéder à l’interface web de guacamole, on rentrera http://IP_DU_SERVEUR:8080/guacamole dans le navigateur internet