Installer et utiliser Guacamole Remote Desktop sur CentOS 8

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 comme VNC, RDP et SSH. Elle te permet d’accéder à un PC Linux et Windows depuis un navigateur Web via RDP, SSH ou VNC. Il est sans client, tu n’as donc pas besoin d’installer de plugins ou de logiciel client. Il est constitué de deux composants : Guacamole Server et Guacamole Client. Le serveur Guacamole fournit les composants côté serveur et natifs nécessaires pour se connecter au 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 te montrer comment installer le serveur Guacamole sur CentOS 8.

Conditions préalables

  • Un serveur exécutant CentOS 8.
  • Un mot de passe root est configuré sur le serveur.

Pour commencer

Tout d’abord, tu dois installer certains paquets nécessaires sur ton serveur. Tu peux les installer tous à l’aide de la commande suivante :

dnf install -y unzip curl make cmake wget gcc zlib-devel compat-openssl10

Après avoir installé tous les paquets requis, tu devras activer les repo EPEL, PowerTools et Devel dans ton système. Tu peux les activer avec la commande suivante :

dnf install epel-release -y
dnf config-manager --set-enabled PowerTools
dnf config-manager --enable Devel

Ensuite, installe 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ésactive le repo Devel avec la commande suivante: :

dnf config-manager --disable Devel

Ensuite, tu devras compiler la bibliothèque telnet dans ton système.

Tout d’abord, télécharge-la 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é, extrais le fichier téléchargé avec la commande suivante :

tar -xf libtelnet-*.tar.gz

Ensuite, change le répertoire en répertoire extrait et configure-le avec la commande suivante :

cd libtelnet-*/
./configure

Ensuite, installe-le sur ton système avec la commande suivante :

make 
make install

Une fois installé, tu peux passer à l’étape suivante.

Installer Java

Guacamole est un logiciel basé sur Java. Java doit donc être installé sur ton serveur. S’il n’est pas installé, tu peux l’installer avec la commande suivante :

dnf install java-11-openjdk-devel

Une fois installé, vérifie la version de Java à l’aide de la commande suivante :

java -version

Tu devrais obtenir la sortie suivante :

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 des clients de Guacamole. Tu dois donc installer Tomcat sur ton serveur.

Tout d’abord, crée un utilisateur et un groupe séparés pour Tomcat avec la commande suivante :

groupadd --system tomcat
useradd -d /usr/share/tomcat -r -s /bin/false -g tomcat tomcat

Ensuite, télécharge 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é, extrais le fichier téléchargé avec la commande suivante :

tar -xvf apache-tomcat-9.0.43.tar.gz

Ensuite, déplace le Tomcat dans le répertoire /usr/share

mv apache-tomcat-9.0.43 /usr/share/tomcat

Ensuite, définis la propriété appropriée au répertoire Tomcat :

chown -R tomcat:tomcat /usr/share/tomcat/

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Crée un fichier de service Systemd pour Tomcat

Ensuite, tu devras créer un fichier de service systemd pour Tomcat. Tu peux le créer avec la commande suivante :

nano /etc/systemd/system/tomcat.service

Ajoute 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

Sauvegarde et ferme le fichier puis recharge le démon systemd avec la commande suivante :

systemctl daemon-reload

Ensuite, démarre le service Tomcat et active-le pour qu’il démarre au redémarrage du système :

systemctl start tomcat
systemctl enable tomcat

Tu peux aussi vérifier l’état de Tomcat avec la commande suivante :

systemctl status tomcat

Tu devrais obtenir la sortie suivante :

? 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.

Installe Apache Guacamole

Tout d’abord, télécharge 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é, extrais le fichier téléchargé avec la commande suivante :

tar -xvzf guacamole-server-1.3.0.tar.gz

Ensuite, change le répertoire pour le répertoire extrait et configure-le avec la commande suivante :

cd guacamole-server-1.3.0
./configure --with-init-dir=/etc/init.d

Ensuite, installe-le sur ton système avec la commande suivante :

make
make install
ldconfig

Ensuite, recharge le démon systemd avec la commande suivante: :

systemctl daemon-reload

Ensuite, démarre le service Guacamole et active-le pour qu’il démarre au redémarrage du système :

systemctl start guacd
systemctl enable guacd

Tu peux vérifier l’état du Guacamole avec la commande suivante :

systemctl status guacd

Tu devrais obtenir la sortie suivante :

? 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.

Installe le client Guacamole

Ensuite, crée un répertoire pour Guacamole et télécharge le fichier du 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éplace le fichier téléchargé dans le répertoire /etc/guacamole :

mv guacamole-1.3.0.war /etc/guacamole/guacamole.war

Ensuite, crée 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éfinis le répertoire d’accueil de Guacamole avec la commande suivante :

echo "GUACAMOLE_HOME=/etc/guacamole" | tee -a /etc/default/tomcat

Ensuite, crée un fichier de configuration Guacamole avec la commande suivante :

nano /etc/guacamole/guacamole.properties

Ajoute les lignes suivantes :

guacd-hostname: localhost
guacd-port:    4822
user-mapping:    /etc/guacamole/user-mapping.xml
auth-provider:    net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider

Sauvegarde et ferme le fichier puis crée un lien symbolique du répertoire /etc/guacamole :

ln -s /etc/guacamole /usr/share/tomcat/.guacamole

Configurer Guacamole

Ensuite, tu devras créer un fichier de mappage des utilisateurs Guacamole pour définir le serveur distant auquel tu veux te connecter depuis Guacamole.

Tout d’abord, génère un mot de passe secret à l’aide de la commande suivante :

echo -n your-password | openssl md5

Tu devrais voir la sortie suivante :

(stdin)= 0f6e4a1df0cf5ee97c2066953bed21b2

Ensuite, crée un fichier user-mapping.xml avec la commande suivante :

nano /etc/guacamole/user-mapping.xml

Ajoute les détails de tes serveurs Windows et Linux distants 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>

Enregistre et ferme le fichier puis redémarre le service Guacamole et Tomcat pour appliquer les modifications :

systemctl restart tomcat guacd

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Configurer le pare-feu

Ensuite, tu devras autoriser les ports 4822 et 8080 à travers un pare-feu. Tu peux les autoriser avec la commande suivante :

firewall-cmd --permanent --add-port=4822/tcp
firewall-cmd --permanent --add-port=8080/tcp

Ensuite, recharge le firewalld pour appliquer les modifications :

firewall-cmd --reload

Accède à l’interface Web de Guacamole

Maintenant, ouvre ton navigateur Web et accède à l’interface Web de Guacamole en utilisant l’URL http://your-server-ip:8080/guacamol e. Tu devrais voir l’écran suivant :

Guacamole Login

Indique ton nom d’utilisateur admin, ton mot de passe et clique sur le bouton Connexion. Tu devrais voir le tableau de bord de Guacamole dans l’écran suivant :

Bureau à distance Guacamole

Sur l’écran ci-dessus, tu peux voir les serveurs Windows et Linux. Tu peux cliquer sur pour te connecter et gérer les serveurs distants.

Conclusion

Félicitations ! Tu as réussi à installer et à configurer le serveur Guacamole sur CentOS 8. Tu peux maintenant ajouter d’autres serveurs distants à ton serveur Guacamole et les gérer via un navigateur Web.

Vous aimerez aussi...