====== GUACAMOLE ======
Pour installer sur Debian 12 : https://www.it-connect.fr/tuto-apache-guacamole-bastion-rdp-ssh-debian/
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 ====
- 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
- 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
- Décompiler le fichier de guacamole-server téléchargé
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
{{ :wiki:guacaorganisation.png?200 |}}
==== 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)
{{ :wiki:guacagroupe.png?300 |}}
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
{{ :wiki:guacapermissions.png?300 |}}
La gestion des droits des groupes SISR1 et SISR2 limite les droits (Exemple : On retire des connexions au groupe SISR1)
{{ :wiki:guacarestrictions.png?300 |}}
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
{{:guacamole_ajoutwindowsserver.png?400|}}