Il est possible à travers le portail Web de gérer plusieurs utilisateurs et connexions, de les regrouper dans des groupes, de configurer des contraintes d’accès (horaire, nombre de connexion …) et d’enregistrer les sessions en vidéo.

Guacamole est souvent présenté comme une solution utilisée à la « maison » afin d’avoir accès à son ordinateur avec un navigateur…

Utilisation de Guacamole dans un environnement professionnel

Ce qui nous intéresses ici, c’est pourquoi et comment utiliser Guacamole dans un environnement professionnel pour gérer les accès aux prestataires et les sécuriser.

Aujourd’hui beaucoup d’entreprises sont confrontées au problème de gestion des prestataires et surtout comment leur donner accès au système d’information le plus sécurisé possible.

La solution est le bastion, qui est une solution logicielle d’accès à distance qui va permettre de gérer cela en gérant des comptes et en limitant leur accès et en ajoutant des couches de sécurités diverses.

Le problème des solutions de bastion est leur coût qui est peu vite être un vrai frein à leur adoption.

Sans solution bastion, les entreprises continuent de faire comme ils le peuvent et souvent en « subissant » les modes de fonctionnement des prestataires :

  • Multiple solution de prise de main à distance (Teamviewer, AnyDesk, Bureau à distance, VPN …)

  • Souvent les mots de passe sont donnés aux prestataires

  • Non-surveillance des accès

  • Peu ou pas de contrôle sur les heures d’accès

Guacamole va nous permettre de répondre en partie à ces problématiques :

  • Solution unique de connexion au système d’information par un navigateur Internet

  • Comme il est possible de configurer les connexions aux équipements (SSH, RDP) en indiquant les identifiants, il n’est plus nécessaire de les communiquer, il faut seulement donner les identifiants d’accès au portail web qui doivent être différents. Cette solution permet aussi de limiter le rebond des prestataires sur d’autre équipement.

  • Tous les accès sont enregistrés dans Guacamole, il est donc facile de suivre l’activité des prestataires et il est possible d’enregistrer en vidéo les sessions.

  • Il est possible de configurer des horaires d’accès sur les comptes, ce qui évite certain débordement.

Fonctionnement de Guacamole

Nous n’allons pas rentrer dans les détails du fonctionnement de Guacamole, voici un diagramme qui vous permet de vous faire une idée :

Apache Guacamole comprend 2 composants principaux :

  • Guacamole Serveur : Cela fournit tous les composants côté serveur et natifs requis par Guacamole pour se connecter à des ordinateurs de bureau distants.

  • Guacamole Client : Il s’agit d’une application Web HTML 5 et d’un client qui vous permet de vous connecter à vos serveurs/ordinateurs de bureau distants. Ceci est soutenu par le serveur Tomcat.

Maintenant nous allons voir comment installer Guacamole (version1.3.0 sur Debian 10.9.0)
Installer les Dependances
#apt-get install make gcc g++ libcairo2-dev libjpeg62-turbo-dev libpng-dev libtool-bin libossp-uuid-dev libavcodec-dev libavformat-dev libavutil-dev libswscale-dev freerdp2-dev libpango1.0-dev libssh2-1-dev libtelnet-dev libvncserver-dev libpulse-dev libssl-dev libwebp-dev
Télécharger Guacamole server
#wget https://downloads.apache.org/guacamole/1.3.0/source/guacamole-server-1.3.0.tar.gz
Décompresser et se déplacer dans le dossier décompresser
#tar -xvf guacamole-server-1.3.0.tar.gz
#cd guacamole-server-1.3.0
Ensuite, exécutez le script de configuration pour vérifier s’il manque des dépendances
#./configure --with-init-dir=/etc/init.d --enable-allow-freerdp-snapshots
Puis compiler et installer le tout
#make
#make install
Exécutez ensuite la commande ldconfig pour créer les liens avec les bibliothèques installés
#ldconfig
Démarrer et activer le service
#systemctl enable guacd
#systemctl start guacd
#systemctl status guacd
Installer le serveur web apache tomcat
#apt install tomcat9 tomcat9-admin tomcat9-common tomcat9-user
Vérifier le statut de tomcat
#systemctl status tomcat9
Si tomcat n’est pas en cours d’exécution, démarrez-le et activez-le au démarrage
#systemctl start tomcat9
#systemctl enable tomcat9
Nous allons télécharger le binaire client Guacamole dans le répertoire /etc/guacamole en utilisant la commande
#mkdir /etc/guacamole
#wget https://downloads.apache.org/guacamole/1.3.0/binary/guacamole-1.3.0.war -O /etc/guacamole/guacamole.war
Une fois téléchargé, créez un lien symbolique avec tomcat
#ln -s /etc/guacamole/guacamole.war /var/lib/tomcat9/webapps/
Redémarrer guacd et tomcat
#systemctl restart tomcat9 guacd
Créer des répertoires pour les extensions et les bibliothèques
#mkdir /etc/guacamole/{extensions,lib}
Configurer l’authentification des utilisateurs installer mysql
#apt install mariadb-server-10.3
#mysql_secure_installation
(Changer ou non le mot de passe pour ROOT et
répondre Yes pour le reste ou Entrer à chaque étape.)
Créer une base de données Guacamole
#mysql -u root -p

Copier et coller la suite en une seule fois

CREATE DATABASE guacamole_db;

CREATE USER 'guacamole_user'@'localhost' IDENTIFIED BY 'tssr';

GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole_db.* TO 'guacamole_user'@'localhost';

FLUSH PRIVILEGES;

quit;
Télécharger le module mysql de guacamole
#wget https://downloads.apache.org/guacamole/1.3.0/binary/guacamole-auth-jdbc-1.3.0.tar.gz
Puis décompresser
#tar -xvf guacamole-auth-jdbc-1.3.0.tar.gz
Installer l’extention mysql de guacamole
#cp guacamole-auth-jdbc-1.3.0/mysql/guacamole-auth-jdbc-mysql-1.3.0.jar /etc/guacamole/extensions/
Importer le schéma dans la base de données créer
#cat guacamole-auth-jdbc-1.3.0/mysql/schema/*.sql | mysql -u root -p guacamole_db
Télécharger le pilote mysql JDBC
#wget https://cdn.mysql.com//Downloads/Connector-J/mysql-connector-java-8.0.26.tar.gz
#tar xvzf mysql-connector-java-8.0.26.tar.gz
#cp mysql-connector-java-8.0.26/mysql-connector-java-8.0.26.jar /etc/guacamole/lib/
Redémarrer Mysql
#systemctl restart mariadb.service
Créer et éditer le fichier guacamol.properties
#touch /etc/guacamole/guacamole.properties
#echo "

Copier et coller la suite en une seule fois

Hostname and Guacamole server port
guacd-hostname: localhost
guacd-port: 4822
#MySQL properties
mysql-hostname: localhost
mysql-port: 3306
mysql-database: guacamole_db
mysql-username: guacamole_user
mysql-password: tssr
" > /etc/guacamole/guacamole.properties
Redémarrer les services
#systemctl restart tomcat9 guacd
Se connecter via l’interface

http://adresseIP:8080/guacamole

Les identifiants par défaut sont : guacadmin / guacadmin

Pour aller plus loin, mélangez au pilon :

2 avocats bien mur écrasés avec un demi citron pressé, quelques tomates cerises évidées et coupées en petits morceaux, une botte de coriandre hachée, un demi-oignon rouge ciselé, une gousse d’ail hachée finement, une pincé de sel et de piment d’Espelette (ou de poivre) et pour finir, un filé (généreux) d’huile d’olive extra-vierge pressé à froid.

                                                                                                                           By Max