Intégration d'un serveur Guacamole dans une architecture RDS, RDP et SSH.
1. Installation
Il existe différent type d'installation de Guacamole.
Soit un mode natively sur une Debian soit à partir d'un composant docker.
Je vous propose les 2 méthodes
2. Installation natively sur une Debian
2.1 Téléchargement de Guacamole Serveur
Commençons par se connecter au serveur en SSH.
Passons en mode Root.
su - root
Nous mettons à jour le serveur comme toujours.
apt update apt full-upgrade
apt install build-essential libcairo2-dev libjpeg62-turbo-dev libpng-dev libtool-bin uuid-dev \ libossp-uuid-dev libavcodec-dev libavformat-dev libavutil-dev libswscale-dev \ freerdp2-dev libpango1.0-dev libssh2-1-dev libtelnet-dev libvncserver-dev \ libwebsockets-dev libpulse-dev libssl-dev libvorbis-dev libwebp-dev
cd /tmp wget https://dlcdn.apache.org/guacamole/1.5.2/source/guacamole-server-1.5.2.tar.gz
2.2 Installation de Guacamole Serveur
Une fois le téléchargement terminé, on décompresse l'archive tar.gz et on se positionne dans le répertoire obtenu
tar -xzf guacamole-server-1.5.2.tar.gz cd guacamole-server-1.5.2/
Nous exécutons la commande ci-dessous pour se préparer à la compilation, ce qui va permettre de vérifier la présence des dépendances :
./configure --with-init-dir=/etc/init.d
Avant de passer à la suite, on vérifie la sortie de cette commande.
Normalement, les librairies principales et dont nous avons besoin sont sur le statut yes.
Nous compilons le code source de guacamole-server :
make
Nous terminons par installer le composant Guacamole Serveur
make install
ldconfig
systemctl daemon-reload systemctl start guacd systemctl enable guacd
systemctl status guacd
2.3 Configuration de Guacamole Serveur
Nous créons l'arborescence pour la configuration.
mkdir -p /etc/guacamole/{extensions,lib}
2.4 Installation de Tomcat
Puis nous installons l'ensemble des paquets dont nous avons besoin.
apt install tomcat9 tomcat9-admin tomcat9-common tomcat9-user
Nous éditons le fichier des comptes utilisateurs
nano /var/lib/tomcat9/conf/tomcat-users.xml
<role rolename="manager-gui"/> <role rolename="manager-script"/> <role rolename="manager-jmx"/> <role rolename="manager-status"/> <user username="tomcat" password="P@$$w0rd!" roles="manager-gui"/>
Nous sauvegarde le fichier
systemctl daemon-reload systemctl start tomcat9 systemctl enable tomcat9
Nous allons nous positionner dans le répertoire "/tmp" et télécharger l'archive tar.gz :
cd /tmp wget https://downloads.apache.org/guacamole/1.5.2/binary/guacamole-1.5.2.war
2.7 Mise en place de l'application de Guacamole
Nous déplaçons la librairie de Web App vers Tomcat9
cp guacamole-1.5.2.war /var/lib/tomcat9/webapps/guacamole.war
systemctl restart tomcat9 guacd
Nous commençons par installer le paquet MySQL
wget https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
dpkg -i mysql-apt-config_0.8.24-1_all.deb
apt update
apt install mysql-server
2.9 Configuration MySQL
Nous allons se connecter en tant que root.
mysql -u root -p
Nous créons une base de données et un utilisateur dédié pour Guacamole.
(ne pas oublié de la mettre dans votre centraliser de mot de passe)
CREATE DATABASE guacamole_db; CREATE USER 'guacamole_user'@'localhost' IDENTIFIED BY 'P@$$w0rd!'; GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole_db.* TO 'guacamole_user'@'localhost'; FLUSH PRIVILEGES; EXIT;
systemctl daemon-reload systemctl start mysql systemctl enable mysql
Nous allons nous positionner dans le répertoire "/tmp" et télécharger l'archive tar.gz :
cd /tmp wget https://downloads.apache.org/guacamole/1.5.2/binary/guacamole-auth-jdbc-1.5.2.tar.gz
Nous décompressons l'archive tar.gz obtenue
tar -xzf guacamole-auth-jdbc-1.5.2.tar.gz
cp guacamole-auth-jdbc-1.5.2/mysql/guacamole-auth-jdbc-mysql-1.5.2.jar /etc/guacamole/extensions/
cd /tmp wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-j-8.0.33.tar.gz
Nous décompressons l'archive tar.gz obtenue
tar -xzf mysql-connector-j-8.0.33.tar.gz
cp mysql-connector-j-8.0.33/mysql-connector-j-8.0.33.jar /etc/guacamole/lib/
cd guacamole-auth-jdbc-1.5.2/mysql/schema/ cat *.sql | mysql -u root -p guacamole_db
Nous créons et éditer le fichier guacamole.properties
nano /etc/guacamole/guacamole.properties
# MySQL mysql-hostname: localhost mysql-port: 3306 mysql-database: guacamole_db mysql-username: guacamole_user mysql-password: P@$$w0rd!
2.11 Relance des services
Nous relançons les services Tomcat9, guacd, mysql
systemctl daemon-reload systemctl restart tomcat9 guacd mysql
guacadmin
2.10 Téléchargement d'autre extension
Nous allons nous positionner dans le répertoire "/tmp" et télécharger l'archive tar.gz :
cd /tmp
wget https://dlcdn.apache.org/guacamole/1...o-1.5.3.tar.gz
wget https://dlcdn.apache.org/guacamole/1...r-1.5.3.tar.gz
wget https://dlcdn.apache.org/guacamole/1...t-1.5.3.tar.gz
wget https://dlcdn.apache.org/guacamole/1...o-1.5.3.tar.gz
wget https://dlcdn.apache.org/guacamole/1...e-1.5.3.tar.gz
wget https://dlcdn.apache.org/guacamole/1.5.3/binary/guacamole-vault-1.5.3.tar.gz
tar -xzf guacamole-auth-duo-1.5.3.tar.gz
tar -xzf guacamole-auth-header-1.5.3.tar.gz
tar -xzf guacamole-auth-quickconnect-1.5.3.tar.gz
tar -xzf guacamole-auth-sso-1.5.3.tar.gz
tar -xzf guacamole-history-recording-storage-1.5.3.tar.gz
tar -xzf guacamole-vault-1.5.3.tar.gz
Nous déplacons le fichier ".jar" de l'extension dans le répertoire
mv guacamole-auth-duo-1.5.3/guacamole-auth-duo-1.5.3.jar /etc/guacamole/extensions/
mv guacamole-auth-header-1.5.3/guacamole-auth-header-1.5.3.jar /etc/guacamole/extensions/
mv guacamole-auth-quickconnect-1.5.3/guacamole-auth-quickconnect-1.5.3.jar /etc/guacamole/extensions/
mv guacamole-auth-sso-1.5.3/guacamole-auth-sso-1.5.3.jar /etc/guacamole/extensions/
mv guacamole-history-recording-storage-1.5.3/guacamole-history-recording-storage-1.5.3.jar /etc/guacamole/extensions/
mv guacamole-vault-1.5.3/guacamole-vault-1.5.3.jar /etc/guacamole/extensions/
# TOTP totp-issuer: Guacamole Tips-Of-Mine totp-digits: 6 totp-period: 60 totp-mode: sha1
# ActiveDirectory # ldap-hostname: swdcop01.tips-of-mine.local ldap-port: 389 ldap-encryption-method: none #Utilisateur de service ldap-search-bind-dn: [email protected] ldap-search-bind-password: P@ssword! # Recherche des utilisateurs ldap-user-base-dn: OU=,DC=local ldap-username-attribute: sAMAccountName ldap-user-search-filter: (&(objectClass=User) (sAMAccountName=*)(memberof:1.2.840.113556.1.4.1941:=CN=GDL-Guacamole-Access,Ou=DC=local)) # Recherche des groupes ldap-group-base-dn: OU=,DC=local ldap-group-search-filter: (objectClass=Group) # force le mode Extension-priority: ldap
Nous relancons les services Tomcat9, guacd, mariadb
systemctl daemon-reload
systemctl restart tomcat9 guacd mysql
3. Installer les prérequis sur un environnement Docker
test
test
4. Configuration de l'interface
