Guacamole est un panneau de contrôle de bureau à distance gratuit, open source et basé sur le Web, utilisé pour gérer les systèmes Linux et Windows à partir du navigateur Web. Il prend en charge les protocoles standard tels que VNC, RDP, SSH et Kubernetes, et vous n'avez pas besoin d'installer de logiciel sur l'ordinateur client. Il prend en charge le presse-papiers, le transfert de fichiers via SFTP et vous permet de gérer plusieurs sessions de bureau à distance.
Dans ce tutoriel, nous allons vous montrer comment installer et configurer le client de bureau à distance Guacamole sur le serveur Ubuntu 20.04.
Prérequis
- Un serveur exécutant Ubuntu 20.04 avec au moins 2 Go de RAM.
- Un mot de passe root est configuré sur le serveur.
Mise en route
Tout d'abord, vous devrez mettre à jour votre système vers la dernière version stable. Vous pouvez le faire en mettant à jour tous les packages système à l'aide de la commande suivante :
apt-get update -y
Une fois votre système mis à jour, redémarrez votre système pour appliquer les modifications.
Installer les dépendances requises
Tout d'abord, vous devrez installer certaines dépendances sur votre serveur pour compiler le Guacamole à partir des sources. Vous pouvez tous les installer avec la commande suivante :
apt-get install make gcc g++ libcairo2-dev libjpeg-turbo8-dev libpng-dev libtool-bin libossp-uuid-dev libavcodec-dev libavutil-dev libswscale-dev freerdp2-dev libpango1.0-dev libssh2-1-dev libvncserver-dev libtelnet-dev libssl-dev libvorbis-dev libwebp-dev -y
Une fois toutes les dépendances installées, vous pouvez passer à l'étape suivante.
Installer le serveur Tomcat
Guacamole utilise Tomcat pour servir le contenu du client guacamole aux utilisateurs qui se connectent au serveur guacamole via le navigateur Web. Le serveur Tomcat doit donc être installé sur votre serveur. S'il n'est pas installé, vous pouvez l'installer avec la commande suivante :
apt-get install tomcat9 tomcat9-admin tomcat9-common tomcat9-user -y
Après avoir installé le serveur Tomcat, démarrez le service Tomcat et activez-le pour qu'il démarre au redémarrage du système avec la commande suivante :
systemctl start tomcat9
systemctl enable tomcat9
Vous pouvez également vérifier l'état du service Tomcat avec la commande suivante :
systemctl status tomcat9
Vous devriez obtenir le résultat suivant :
? tomcat9.service - Apache Tomcat 9 Web Application Server Loaded: loaded (/lib/systemd/system/tomcat9.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2020-08-25 14:48:50 UTC; 29min ago Docs: https://tomcat.apache.org/tomcat-9.0-doc/index.html Process: 27982 ExecStartPre=/usr/libexec/tomcat9/tomcat-update-policy.sh (code=exited, status=0/SUCCESS) Main PID: 27990 (java) Tasks: 38 (limit: 4691) Memory: 241.5M CGroup: /system.slice/tomcat9.service ??27990 /usr/lib/jvm/default-java/bin/java -Djava.util.logging.config.file=/var/lib/tomcat9/conf/logging.properties -Djava.util.l>
Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.
Installer Guacamole
Par défaut, le package Guacamole n'est pas disponible dans le référentiel par défaut d'Ubuntu 20.04. Vous devrez donc le compiler à partir de la source.
Tout d'abord, téléchargez la dernière version du Guacamole à partir du site Web d'Apache à l'aide de la commande suivante :
wget https://downloads.apache.org/guacamole/1.1.0/source/guacamole-server-1.1.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.1.0.tar.gz
Ensuite, remplacez le répertoire par le répertoire extrait et exécutez le script de configuration pour vérifier si une dépendance requise est manquante ou non :
cd guacamole-server-1.1.0
./configure --with-init-dir=/etc/init.d
Si tout va bien, vous devriez voir le résultat suivant :
freerdp2 ............ yes pango ............... yes libavcodec .......... yes libavutil ........... yes libssh2 ............. yes libssl .............. yes libswscale .......... yes libtelnet ........... yes libVNCServer ........ yes libvorbis ........... yes libpulse ............ no libwebsockets ....... no libwebp ............. yes wsock32 ............. no Protocol support: Kubernetes .... no RDP ........... yes SSH ........... yes Telnet ........ yes VNC ........... yes Services / tools: guacd ...... yes guacenc .... yes guaclog .... yes FreeRDP plugins: /usr/lib/x86_64-linux-gnu/freerdp2 Init scripts: /etc/init.d Systemd units: no Type "make" to compile guacamole-server.
Maintenant, compilez et installez Guacamole Server en exécutant la commande suivante :
make
make install
Ensuite, exécutez la commande suivante pour mettre à jour le cache des bibliothèques installées de votre système :
ldconfig
Ensuite, activez et démarrez le service Guacamole à l'aide de la commande suivante
systemctl enable guacd
systemctl start guacd
Vous pouvez maintenant vérifier l'état du service Guacamole avec la commande suivante :
systemctl status guacd
Vous devriez obtenir le résultat suivant :
? guacd.service - LSB: Guacamole proxy daemon Loaded: loaded (/etc/init.d/guacd; generated) Active: active (running) since Tue 2020-08-25 12:02:26 UTC; 4s ago Docs: man:systemd-sysv-generator(8) Process: 27536 ExecStart=/etc/init.d/guacd start (code=exited, status=0/SUCCESS) Tasks: 1 (limit: 4691) Memory: 10.1M CGroup: /system.slice/guacd.service ??27555 /usr/local/sbin/guacd -p /var/run/guacd.pid Aug 25 12:02:26 ubuntu2004 systemd[1]: Starting LSB: Guacamole proxy daemon... Aug 25 12:02:26 ubuntu2004 guacd[27551]: Guacamole proxy daemon (guacd) version 1.1.0 started Aug 25 12:02:26 ubuntu2004 guacd[27536]: Starting guacd: Aug 25 12:02:26 ubuntu2004 guacd[27551]: Starting guacd: Aug 25 12:02:26 ubuntu2004 guacd[27551]: uacd[27551]: INFO: Guacamole proxy daemon (guacd) versio Aug 25 12:02:26 ubuntu2004 systemd[1]: Started LSB: Guacamole proxy daemon. Aug 25 12:02:26 ubuntu2004 guacd[27555]: Listening on host 127.0.0.1, port 4822 Aug 25 12:02:26 ubuntu2004 guacd[27536]: uacd[275
Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.
Installer le client Guacamole
Ensuite, vous devrez installer le client Guacamole sur votre serveur. Le client Guacamole est écrit en Java et est multiplateforme. Cela constituera l'application HTML5 finale qui vous sera présentée.
Tout d'abord, téléchargez le binaire Guacamole à l'aide de la commande suivante :
wget https://mirrors.estointernet.in/apache/guacamole/1.1.0/binary/guacamole-1.1.0.war
Après avoir téléchargé le binaire Guacamole, copiez-le dans le répertoire /etc/guacamole à l'aide de la commande suivante :
mkdir /etc/guacamole
mv guacamole-1.1.0.war /etc/guacamole/guacamole.war
Créez ensuite un lien symbolique du client guacamole vers le répertoire des applications Web de Tomcat avec la commande suivante :
ln -s /etc/guacamole/guacamole.war /var/lib/tomcat9/webapps/
Enfin, redémarrez le service Tomcat et Guacamole pour déployer la nouvelle application Web :
systemctl restart tomcat9
systemctl restart guacd
Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.
Configurer Guacomole
Ensuite, vous devez configurer les utilisateurs et les connexions afin de faire fonctionner Guacamole correctement.
Tout d'abord, créez un fichier de configuration principal Guacamole nommé guacamole.properties.
nano /etc/guacamole/guacamole.properties
Ajoutez les lignes suivantes :
guacd-hostname: localhost guacd-port: 4822 user-mapping: /etc/guacamole/user-mapping.xml
Enregistrez et fermez le fichier lorsque vous avez terminé.
Ensuite, vous devrez créer des répertoires pour la bibliothèque et l'extension. Vous pouvez les créer avec la commande suivante :
mkdir /etc/guacamole/{extensions,lib}
Ensuite, définissez la variable d'environnement du répertoire de base de guacamole et ajoutez-la au fichier de configuration /etc/default/tomcat9.
echo "GUACAMOLE_HOME=/etc/guacamole" >> /etc/default/tomcat9
Ensuite, vous devrez créer un fichier appelé user-mapping.xml pour définir l'utilisateur autorisé à accéder à l'interface utilisateur Web de Guacamole.
Avant de le créer, générez un hash md5 pour le mot de passe avec la commande suivante :
echo -n yoursecurepassword | openssl md5
Vous devriez voir le résultat suivant :
(stdin)= 55b38b03e7587a45fd886977842ff9b8
Remarque :Souvenez-vous du mot de passe md5 ci-dessus. Vous devrez le définir dans le fichier user-mapping.xml.
Ensuite, créez un nouveau user-mapping.xml avec la commande suivante :
nano /etc/guacamole/user-mapping.xml
<user-mapping> <authorize username="admin" password="55b38b03e7587a45fd886977842ff9b8" encoding="md5"> <connection name="Ubuntu20.04-Server"> <protocol>ssh</protocol> <param name="hostname">192.168.10.50</param> <param name="port">22</param> <param name="username">root</param> </connection> <connection name="Windows Server"> <protocol>rdp</protocol> <param name="hostname">192.168.10.51</param> <param name="port">3389</param> </connection> </authorize> </user-mapping>
Enregistrez et fermez le fichier lorsque vous avez terminé.
Où :
- 192.168.10.50 est l'adresse IP du serveur Ubuntu distant.
- 192.168.10.51 est l'adresse IP du serveur Windows de suppression.
Ensuite, redémarrez le service Tomcat et Guacamole pour appliquer les modifications :
systemctl restart tomcat9
systemctl restart guacd
À ce stade, le serveur et le client Guacamole ont été installés et configurés.
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 serez redirigé vers la page de connexion de Guacamole :
Fournissez le nom d'utilisateur et le mot de passe que vous avez définis dans le user-mapping.xml fichier, et cliquez sur Connexion bouton. Vous devriez voir le tableau de bord Guacamole sur la page suivante :
Maintenant, cliquez sur Ubuntu20.04-Server pour connecter le serveur distant en utilisant le protocole SSH. Vous devriez voir l'écran de connexion du serveur Ubuntu comme indiqué ci-dessous :
Fournissez le mot de passe root de votre serveur Ubuntu et appuyez sur Entrée . Vous serez connecté au serveur Ubuntu comme indiqué ci-dessous :
Configurer Nginx pour Guacamole
Il est recommandé de configurer le Nginx en proxy inverse pour accéder au Guacamole via le port 80.
Tout d'abord, installez le serveur Web Nginx à l'aide de la commande suivante :
apt-get install nginx -y
Après avoir installé Nginx, créez un nouveau fichier de configuration d'hôte virtuel Nginx :
nano /etc/nginx/sites-available/guacamole.conf
Ajoutez les lignes suivantes :
server { listen 80; server_name your-server-ip; access_log /var/log/nginx/guac_access.log; error_log /var/log/nginx/guac_error.log; location / { proxy_pass http://your-server-ip:8080/guacamole/; proxy_buffering off; proxy_http_version 1.1; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $http_connection; proxy_cookie_path /guacamole/ /; } }
Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, activez l'hôte virtuel Nginx avec la commande suivante :
ln -s /etc/nginx/sites-available/guacamole.conf /etc/nginx/sites-enabled/
Ensuite, redémarrez le service Nginx pour appliquer les modifications de configuration :
systemctl restart nginx
Maintenant, vous pouvez accéder à votre Guacamole en utilisant l'URL http://your-server-ip.
Conclusion
Toutes nos félicitations! vous avez installé et configuré avec succès le client de bureau à distance Guacamole sur le serveur Ubuntu 20.04. Vous pouvez maintenant ajouter plus de connexions RDP ou VNC à votre Guacamole et commencer à les gérer à partir de l'interface Web.