Table des matières
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é
<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.