====== 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|}}