Table des matières

GUACAMOLE

Contribution: Jules Catherine/Vincent Beaufils/Paul Grégoire/ Clément Groult Debian 10 - 2020

Installation

Prérequis

Avant toute opération, on effectue une mise à niveau ainsi qu’une actualisation des mises à jours avec ​apt update -y && apt upgrade -y.​

Un accès en root est impératif pour l'exécution des commandes qui vont suivre.

Installation Apache Guacamole

  1. Installer les dépendances
     apt -y install libcairo2-dev libjpeg62-turbo-dev libossp-uuid-dev libavcodec-dev libavutil-dev  libswscale-dev libfreerdp-dev libpango1.0-dev libssh2-1-dev libtelnet-dev libvncserver-dev  libpulse-dev libssl-dev libvorbis-dev libwebp-dev mariadb-server tomcat9 libmysql-java 
  2. Télécharger guacamole-server et le décompresser
     cd /tmp
    wget https://mirror.dkd.de/apache/guacamole/1.1.0/source/guacamole-server-1.1.0.tar.gz
    tar vfx guacamole-server-1.1.0.tar.gz
  3. Décompiler le fichier de guacamole-server téléchargé
    <code lscript>cd guacamole-server-1.1.0/
    autoreconf -fi
    ./configure --with-init-dir=/etc/init.d

Vérifications des éléments pris en charge

Il faut alors vérifier que les protocoles ainsi que les services suivants sont comme cela :

Protocoles :

RDP yes 
SSH yes 
TELNET yes 
VNC yes

Services : guacd

guacenc

Compilation

Un fois vérification que tout soit OK, on lance la compilation :

make
make install

Mise à jour des caches système des librairies installées

/usr/sbin/ldconfig

Activer le service guacd

systemctl enable guacd
systemctl start guacd

Créer dossiers pour configuration plus simple

 mkdir -p /etc/guacamole/lib
 mkdir -p /etc/guacamole/exten

Télécharger le fichier guacamole client tout fait

cd /tmp
 wget  http://mirror.ibcp.fr/pub/apache/guacamole/0.9.14/binary/guacamole-0.9.14.war

Création de lien symbolique et configuration librairie freerdp

Se déplacer dans /etc/guacamole et créer les liens symboliques pour intégrer tomcat et configurer la librairie freerdp et le connecteur java mysql

mv guacamole-1.1.0.war /etc/guacamole/guacamole.war
ln -s /etc/guacamole/guacamole.war /var/lib/tomcat8/webapps/
mkdir /usr/lib/x86_64-linux-gnu/freerdp/
ln -s /usr/local/lib/freerdp/guac*.so /usr/lib/x86_64-linux-gnu/freerdp/
ln -s /usr/share/java/mysql-connector-java.jar /etc/guacamole/lib

Telecharger l’extension de base de donnée

Il faudra alors télécharger l’extension de la base de donnée mysql et la placer dans /etc/guacamole/extension

 cd /tmp
 wget http://mirror.ibcp.fr/pub/apache/guacamole/1.1.0/binary/guacamole-auth-jdbc-1.1.0.tar.gz
 tar -xvf guacamole-auth-jdbc-1.1.0.tar.gz
 cp guacamole-auth-jdbc-1.1.0/mysql/guacamole-auth-jdbc-mysql-1.1.0.jar /etc/guacamole/extensions

Créer le fichier de propriété

nano /etc/guacamole/guacamole.properties

Configurer le fichier pour la connexion à la base mysql

mysql-hostname: localhost
 mysql-port: 3306
 mysql-database: guacamole_db
 mysql-username: guacamole_user
 mysql-password: mpguaca //mot de passe à adapter

Redémarrer tomcat

Une fois la configuration faite, on peut donc redémarrer le service tomcat8

service tomcat9 restart

Initialisation de la BDD et attribution des droits

Se connecter au service mysql et créer la base guacamole, l’utilisateur guacamole_user et lui donner les droits

mysql -u root -p 
create database guacamole_db;
create user 'guacamole_user'@'localhost' identified by 'mpguaca';
GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole_db.* TO 'guacamole_user'@'localhost' identified by "P@ssw0rd";
flush privileges; 
quit

Copier les schémas

cat guacamole-auth-jdbc-0.9.14/mysql/schema/*.sql | mysql -u root -pSQLgu@c@
guacamole_db

On redémarre guacd

Le service est maintenant configuré, il faut alors le redémarrer.

service guacd restart

Test

L’installation est terminée, on peut accéder via http://IP_GUACAMOLE_SERVER:8080/guacamole/.

Les identifiants de base sont guacadmin:guacadmin

Liaison LDAP

Pré-requis

Avant toute configuration, on créer un utilisateur sur l’Active Directory dans la même UO que les autres utilisateurs, ici nous avons décidé de créer l’utilisateur “Guacamole Bind” avec le mot de passe P@ssword1

Configuration

Dans /etc/guacamole/guacamole.properties il faudra ajouter les lignes suivantes à modifier selon les besoins :

# LDAP
ldap-hostname : SCT-2K12-ADDNS.sio.bts
ldap-port: 389
# Racine AD de recherche utilisateur par Guacamole 
ldap-user-base-dn: OU=2017,DC=sio,DC=bts ldap-user-search-filter:(objectClass=user)(!(objectCategory=computer))
# Racine AD de recherche groupe par Guacamole 
ldap-group-base-dn: CN=Users,DC=sio,DC=bts
# Compte Guacamole permettant la liaison AD
ldap-search-bind-dn: CN=”Guacamole Bind”, OU=2017,DC=sio,DC=bts ldap-search-bind-password: P@ssword1
# Attribut de Login pour identifier le Guacamole via l’AD 
ldap-username-attribute: sAMAccountName

Finalisation de la configuration des comptes utilisateurs

Afin de finaliser le bon fonctionnement des comptes LDAP sur notre serveur Guacamole, il faut impérativement ajouter manuellement l’organisation “SIOBTS” pour chaque utilisateur, sans quoi ils n’auront pas les permissions liées à leur groupe

Gestion des droits de connexions

Les utilisateurs de Guacamole auront des limitations selon leurs besoins pour les connexions aux équipements : Membres des groupes définis dans l’AD (Exemple : Erwin Caillaud se trouve membre du groupe SISR1)

Un groupe GENERIQUE est créé manuellement en MySQL sur Guacamole possédant toutes les connexions

Les groupes LDAP SISR1 / SISR2 / etc sont ajoutés en tant que membre du groupe MySQL GENERIQUE

La gestion des droits des groupes SISR1 et SISR2 limite les droits (Exemple : On retire des connexions au groupe SISR1)

L’utilisateur final aura donc accès aux équipements du groupe dont les droits sont limités puisqu’il se trouve lié à son groupe LDAP (Ici Erwin Caillaud aura donc accès aux droits du groupe SISR1).

Ajout d'une connexion guacamole pour un serveur Windows

Sur le serveur Windows installer le logiciel tighvnc. https://www.tightvnc.com/

Lors de l'installation laisser tout les paramètres par défaut.

Sur Guacamole renseigner les paramètres comme suit.

Ouvrir session Windows

raccourci : ctrl+alt+maj