Apache Guacamole est une application de bureau à distance gratuite, open source, basée sur le Web et sans client qui prend en charge les protocoles standard tels que VNC, RDP et SSH. Il vous permet d'accéder à Linux et Windows PC à partir d'un navigateur Web via RDP, SSH ou VNC. Il est sans client, vous n'avez donc pas besoin d'installer de plugins ou de logiciel client. Il est composé de deux composants Guacamole Server et Guacamole Client. Le serveur Guacamole fournit les composants côté serveur et natifs nécessaires pour se connecter à un PC distant, tandis que le client Guacamole est une application Web HTML 5 utilisée pour se connecter au PC distant.
Dans ce tutoriel, nous allons vous montrer comment installer le serveur Guacamole sur CentOS 8.
Prérequis
- Un serveur exécutant CentOS 8.
- Un mot de passe root est configuré sur le serveur.
Mise en route
Tout d'abord, vous devrez installer certains packages requis sur votre serveur. Vous pouvez tous les installer avec la commande suivante :
dnf install -y unzip curl make cmake wget gcc zlib-devel compat-openssl10
Après avoir installé tous les packages requis, vous devrez activer le dépôt EPEL, PowerTools et Devel sur votre système. Vous pouvez les activer avec la commande suivante :
dnf install epel-release -y
dnf config-manager --set-enabled PowerTools
dnf config-manager --enable Devel
Ensuite, installez les autres outils requis avec la commande suivante :
dnf install cairo-devel libuv-devel libjpeg-turbo-devel libjpeg-devel libpng-devel libtool uuid-devel freerdp-devel pango-devel libvncserver-devel pulseaudio-libs-devel openssl-devel libvorbis-devel libwebp-devel libssh2-devel libtheora opus lame-libs
Ensuite, désactivez le référentiel Devel avec la commande suivante :
dnf config-manager --disable Devel
Ensuite, vous devrez compiler la bibliothèque telnet dans votre système.
Tout d'abord, téléchargez-le avec la commande suivante :
curl -s https://api.github.com/repos/seanmiddleditch/libtelnet/releases/latest | grep browser_download_url | cut -d '"' -f 4 | wget -qi -
Une fois téléchargé, extrayez le fichier téléchargé avec la commande suivante :
tar -xf libtelnet-*.tar.gz
Ensuite, changez le répertoire en répertoire extrait et configurez-le avec la commande suivante :
cd libtelnet-*/
./configure
Ensuite, installez-le sur votre système avec la commande suivante :
make
make install
Une fois installé, vous pouvez passer à l'étape suivante.
Installer Java
Guacamole est un logiciel basé sur Java, Java doit donc être installé sur votre serveur. S'il n'est pas installé, vous pouvez l'installer avec la commande suivante :
dnf install java-11-openjdk-devel
Une fois installé, vérifiez la version de Java à l'aide de la commande suivante :
java -version
Vous devriez obtenir le résultat suivant :
openjdk version "11.0.9.1" 2020-11-04 OpenJDK Runtime Environment (build 11.0.9.1+1-Ubuntu-0ubuntu1.20.04) OpenJDK 64-Bit Server VM (build 11.0.9.1+1-Ubuntu-0ubuntu1.20.04, mixed mode, sharing)
Installer Tomcat
Apache Tomcat est utilisé pour servir le contenu du client guacamole. Vous devrez donc installer Tomcat sur votre serveur.
Commencez par créer un utilisateur et un groupe distincts pour Tomcat avec la commande suivante :
groupadd --system tomcat
useradd -d /usr/share/tomcat -r -s /bin/false -g tomcat tomcat
Ensuite, téléchargez la dernière version de Tomcat avec la commande suivante :
wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.43/bin/apache-tomcat-9.0.43.tar.gz
Une fois le téléchargement terminé, extrayez le fichier téléchargé avec la commande suivante :
tar -xvf apache-tomcat-9.0.43.tar.gz
Ensuite, déplacez le Tomcat vers le répertoire /usr/share
mv apache-tomcat-9.0.43 /usr/share/tomcat
Ensuite, définissez la propriété appropriée sur le répertoire Tomcat :
chown -R tomcat:tomcat /usr/share/tomcat/
Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.
Créer un fichier de service Systemd pour Tomcat
Ensuite, vous devrez créer un fichier de service systemd pour Tomcat. Vous pouvez le créer avec la commande suivante :
nano /etc/systemd/system/tomcat.service
Ajoutez les lignes suivantes :
[Unit] Description=Tomcat Server After=syslog.target network.target [Service] Type=forking User=tomcat Group=tomcat Environment=JAVA_HOME=/usr/lib/jvm/jre Environment='JAVA_OPTS=-Djava.awt.headless=true' Environment=CATALINA_HOME=/usr/share/tomcat Environment=CATALINA_BASE=/usr/share/tomcat Environment=CATALINA_PID=/usr/share/tomcat/temp/tomcat.pid Environment='CATALINA_OPTS=-Xms512M -Xmx1024M' ExecStart=/usr/share/tomcat/bin/catalina.sh start ExecStop=/usr/share/tomcat/bin/catalina.sh stop [Install] WantedBy=multi-user.target
Enregistrez et fermez le fichier puis rechargez le démon systemd avec la commande suivante :
systemctl daemon-reload
Ensuite, démarrez le service Tomcat et activez-le pour qu'il démarre au redémarrage du système :
systemctl start tomcat
systemctl enable tomcat
Vous pouvez également vérifier l'état de Tomcat avec la commande suivante :
systemctl status tomcat
Vous devriez obtenir le résultat suivant :
? tomcat.service - Tomcat Server Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: disabled) Active: active (running) since Tue 2021-02-16 09:34:45 EST; 6s ago Process: 26546 ExecStart=/usr/share/tomcat/bin/catalina.sh start (code=exited, status=0/SUCCESS) Main PID: 26551 (java) Tasks: 35 (limit: 12523) Memory: 89.7M CGroup: /system.slice/tomcat.service ??26551 /usr/lib/jvm/jre/bin/java -Djava.util.logging.config.file=/usr/share/tomcat/conf/logging.properties -Djava.util.logging.man> Feb 16 09:34:45 centos8 systemd[1]: Starting Tomcat Server... Feb 16 09:34:45 centos8 systemd[1]: Started Tomcat Server.
Installer Apache Guacamole
Tout d'abord, téléchargez la dernière version de Guacamole avec la commande suivante :
wget https://downloads.apache.org/guacamole/1.3.0/source/guacamole-server-1.3.0.tar.gz
Une fois le téléchargement terminé, extrayez le fichier téléchargé avec la commande suivante :
tar -xvzf guacamole-server-1.3.0.tar.gz
Ensuite, remplacez le répertoire par le répertoire extrait et configurez-le avec la commande suivante :
cd guacamole-server-1.3.0
./configure --with-init-dir=/etc/init.d
Ensuite, installez-le sur votre système avec la commande suivante :
make
make install
ldconfig
Ensuite, rechargez le démon systemd avec la commande suivante :
systemctl daemon-reload
Ensuite, démarrez le service Guacamole et activez-le au redémarrage du système :
systemctl start guacd
systemctl enable guacd
Vous pouvez vérifier l'état du Guacamole avec la commande suivante :
systemctl status guacd
Vous devriez obtenir le résultat suivant :
? guacd.service - LSB: Guacamole proxy daemon Loaded: loaded (/etc/rc.d/init.d/guacd; generated) Active: active (running) since Tue 2021-02-16 09:37:15 EST; 4s ago Docs: man:systemd-sysv-generator(8) Process: 35723 ExecStart=/etc/rc.d/init.d/guacd start (code=exited, status=0/SUCCESS) Tasks: 1 (limit: 12523) Memory: 12.1M CGroup: /system.slice/guacd.service ??35726 /usr/local/sbin/guacd -p /var/run/guacd.pid Feb 16 09:37:15 centos8 systemd[1]: Starting LSB: Guacamole proxy daemon... Feb 16 09:37:15 centos8 guacd[35723]: Starting guacd: guacd[35724]: INFO: Guacamole proxy daemon (guacd) version 1.3.0 started Feb 16 09:37:15 centos8 guacd[35723]: SUCCESS Feb 16 09:37:15 centos8 guacd[35726]: Listening on host 127.0.0.1, port 4822 Feb 16 09:37:15 centos8 systemd[1]: Started LSB: Guacamole proxy daemon.
Installer le client Guacamole
Ensuite, créez un répertoire pour Guacamole et téléchargez le fichier client Guacamole avec la commande suivante :
mkdir /etc/guacamole
wget https://downloads.apache.org/guacamole/1.3.0/binary/guacamole-1.3.0.war
Une fois téléchargé, déplacez le fichier téléchargé dans le répertoire /etc/guacamole :
mv guacamole-1.3.0.war /etc/guacamole/guacamole.war
Ensuite, créez un lien symbolique du fichier guacamole.war vers le répertoire /usr/share/tomcat :
ln -s /etc/guacamole/guacamole.war /usr/share/tomcat/webapps/
Ensuite, définissez le répertoire d'accueil de Guacamole avec la commande suivante :
echo "GUACAMOLE_HOME=/etc/guacamole" | tee -a /etc/default/tomcat
Ensuite, créez un fichier de configuration Guacamole avec la commande suivante :
nano /etc/guacamole/guacamole.properties
Ajoutez les lignes suivantes :
guacd-hostname: localhost guacd-port: 4822 user-mapping: /etc/guacamole/user-mapping.xml auth-provider: net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider
Enregistrez et fermez le fichier puis créez le lien symbolique du répertoire /etc/guacamole :
ln -s /etc/guacamole /usr/share/tomcat/.guacamole
Configurer Guacamole
Ensuite, vous devrez créer un fichier de mappage utilisateur Guacamole pour définir le serveur distant auquel vous souhaitez vous connecter depuis Guacamole.
Tout d'abord, générez un mot de passe secret avec la commande suivante :
echo -n your-password | openssl md5
Vous devriez voir le résultat suivant :
(stdin)= 0f6e4a1df0cf5ee97c2066953bed21b2
Créez ensuite un fichier user-mapping.xml avec la commande suivante :
nano /etc/guacamole/user-mapping.xml
Ajoutez les détails de votre serveur Windows et Linux distant comme indiqué ci-dessous :
<user-mapping> <authorize username="admin" password="0f6e4a1df0cf5ee97c2066953bed21b2" encoding="md5"> <!-- First authorized Remote connection --> <connection name="CentOS 8"> <protocol>ssh</protocol> <param name="hostname">69.87.218.51</param> <param name="port">22</param> </connection> <connection name="Windows Server"> <protocol>rdp</protocol> <param name="hostname">15.185.162.149</param> <param name="port">3389</param> <param name="username">administrator</param> </connection> </authorize> </user-mapping>
Enregistrez et fermez le fichier, puis redémarrez les services Guacamole et Tomcat pour appliquer les modifications :
systemctl restart tomcat guacd
Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.
Configurer le pare-feu
Ensuite, vous devrez autoriser les ports 4822 et 8080 via un pare-feu. Vous pouvez les autoriser avec la commande suivante :
firewall-cmd --permanent --add-port=4822/tcp
firewall-cmd --permanent --add-port=8080/tcp
Ensuite, rechargez le pare-feu pour appliquer les modifications :
firewall-cmd --reload
Accéder à l'interface Web Guacamole
Maintenant, ouvrez votre navigateur Web et accédez à l'interface Web Guacamole en utilisant l'URL http://your-server-ip:8080/guacamole . Vous devriez voir l'écran suivant :
Indiquez votre nom d'utilisateur et votre mot de passe d'administrateur et cliquez sur Connexion bouton. Vous devriez voir le tableau de bord Guacamole dans l'écran suivant :
Sur l'écran ci-dessus, vous pouvez voir les serveurs Windows et Linux. Vous pouvez cliquer sur pour vous connecter et gérer les serveurs distants.
Conclusion
Toutes nos félicitations! vous avez installé et configuré avec succès le serveur Guacamole sur CentOS 8. Vous pouvez maintenant ajouter d'autres serveurs distants à votre serveur Guacamole et les gérer via un navigateur Web.