Recherche de site Web

Installez Guacamole pour l'accès à distance Linux/Windows dans Ubuntu


En tant qu'administrateur système, vous pourriez vous retrouver (aujourd'hui ou dans le futur) à travailler dans un environnement où Windows et Linux coexistent.

Ce n’est un secret pour personne que certaines grandes entreprises préfèrent (ou doivent) exécuter certains de leurs services de production sur des boîtiers Windows et d’autres sur des serveurs Linux.

Si tel est votre cas, vous accueillerez ce guide à bras ouverts (sinon allez-y et assurez-vous au moins de l’ajouter à vos favoris).

Dans cet article, nous allons vous présenter guacamole, une passerelle de bureau à distance optimisée par Tomcat qui doit uniquement être installée sur un serveur central.

Guacamole fournira un panneau de contrôle basé sur le Web qui vous permettra de passer rapidement d'une machine à une autre, le tout dans la même fenêtre de navigateur Web.

Environnement de test

Dans cet article, nous avons utilisé les machines suivantes. Nous allons installer Guacamole dans une machine Ubuntu et l'utiliser pour accéder à une machine Windows 10 via le Remote Desktop Protocol ( RDP) et un boitier RHEL utilisant le protocole réseau SSH :

Guacamole server: Ubuntu 20.04 - IP 192.168.0.100
Remote SSH box: RHEL 8 – IP 192.168.0.18
Remote desktop box: Windows 10 – IP 192.168.0.19

Cela dit, commençons.

Installation du serveur Guacamole dans Ubuntu

1. Avant d'installer guacamole, vous devrez d'abord vous occuper de ses dépendances.

sudo apt update
sudo apt install -y gcc vim curl wget g++ libcairo2-dev libjpeg-turbo8-dev libpng-dev \
libtool-bin libossp-uuid-dev libavcodec-dev libavutil-dev libswscale-dev build-essential \
libpango1.0-dev libssh2-1-dev libvncserver-dev libtelnet-dev freerdp2-dev libwebsockets-dev \
libssl-dev libvorbis-dev libwebp-dev tomcat9 tomcat9-admin tomcat9-user

2. Téléchargez et extrayez l'archive tar. Depuis début février 2021, la dernière version de Guacamole est la 1.3.0. Vous pouvez vous référer à la page Téléchargements de Guacamole pour connaître la dernière version à un moment donné.

wget https://dlcdn.apache.org/guacamole/1.3.0/source/guacamole-server-1.3.0.tar.gz 
tar zxf guacamole-server-1.3.0.tar.gz  

3. Compilez le logiciel.

cd guacamole-server-1.3.0/
./configure

Comme on pouvait s'y attendre, configure vérifiera votre système pour la présence des dépendances requises et pour les protocoles de communication pris en charge (comme on peut le voir dans le carré en surbrillance, Remote Desktop Protocol ). (RDP) et SSH sont supportés par les dépendances installées précédemment).

Si tout se passe comme prévu, vous devriez voir ceci une fois le processus terminé (sinon, assurez-vous d'avoir installé toutes les dépendances nécessaires) :

Comme le suggère la dernière ligne de l'image ci-dessus, exécutez make et make install pour compiler le programme :

make 
sudo make install

4. Mettez à jour le cache des bibliothèques installées.

sudo ldconfig 

et appuyez sur Entrée.

Installation du client Guacamole dans Ubuntu

Après avoir terminé les étapes ci-dessus, le serveur guacamole aura été installé. Les instructions suivantes vont maintenant vous aider à configurer guacd (le démon proxy qui intègre Javascript aux protocoles de communication tels que RDP ou SSH) et guacamole.war (le client), le composant qui constitue l'application HTML5 finale qui vous sera présentée.

Notez que les deux composants (serveur guacamole et client) doivent être installés sur la même machine – il n'est pas nécessaire d'installer un soi-disant client sur les machines que vous souhaitez se connecter à).

Pour télécharger le client, procédez comme suit :

5. Téléchargez l'archive de l'application Web et changez son nom en guacamole.war.

Remarque : Selon votre distribution, le répertoire des bibliothèques Tomcat peut se trouver dans /var/lib/tomcat.

cd /var/lib/tomcat9/
sudo wget https://dlcdn.apache.org/guacamole/1.3.0/binary/guacamole-1.3.0.war
sudo mv guacamole-1.3.0.war webapps/guacamole.war

6. Créez le fichier de configuration (/etc/guacamole/guacamole.properties). Ce fichier contient les instructions permettant à Guacamole de se connecter à guacd :

sudo mkdir /etc/guacamole
sudo mkdir /usr/share/tomcat9/.guacamole
sudo nano /etc/guacamole/guacamole.properties

Insérez le contenu suivant dans /etc/guacamole/guacamole.properties. Notez que nous faisons référence à un fichier que nous créerons à l'étape suivante (/etc/guacamole/user-mapping.xml) :

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

Et créez un lien symbolique pour que Tomcat puisse lire le fichier :

sudo ln -s /etc/guacamole/guacamole.properties /usr/share/tomcat9/.guacamole/

7. Guacamole utilise le user-mapping.xml, créez ce fichier pour définir quels utilisateurs sont autorisés à s'authentifier auprès de l'interface Web de Guacamole (entre <authorize>) et quelles connexions ils peuvent utiliser (entre les balises <connection>) :

sudo nano /etc/guacamole/user-mapping.xml

Le mappage utilisateur suivant accorde l'accès à l'interface Web Guacamole à un utilisateur tecmint avec le mot de passe tecmint01. Ensuite, dans la connexion SSH, nous devons placer un nom d'utilisateur valide pour nous connecter à la boîte RHEL (vous serez invité à saisir le mot de passe correspondant lorsque Guacamole initiera la connexion).

Dans le cas de la boîte Windows 10, il n'est pas nécessaire de le faire car l'écran de connexion via RDP nous sera présenté.

Pour obtenir le hachage md5 du mot de passe tecmint01, tapez la commande suivante :

printf '%s' "tecmint01" | md5sum

Insérez ensuite le résultat de la commande dans le champ du mot de passe à l'intérieur des balises <authorize> :

<user-mapping>
        <authorize 
                username="tecmint" 
                password="8383339b9c90775ac14693d8e620981f" 
                encoding="md5">
                <connection name="RHEL 8">
                        <protocol>ssh</protocol>
                        <param name="hostname">192.168.0.18</param>
                        <param name="port">22</param>
                        <param name="username">gacanepa</param>
                </connection>
                <connection name="Windows 10">
                        <protocol>rdp</protocol>
                        <param name="hostname">192.168.0.19</param>
                        <param name="port">3389</param>
                </connection>
        </authorize>
</user-mapping>

Comme c'est le cas pour tous les fichiers contenant des informations sensibles, il est important de restreindre les autorisations et de modifier la propriété du fichier user-mapping.xml :

sudo chmod 600 /etc/guacamole/user-mapping.xml
sudo chown tomcat:tomcat /etc/guacamole/user-mapping.xml

Démarrez Tomcat et guacd.

sudo service tomcat9 start
sudo /usr/local/sbin/guacd &

Lancement de l'interface Web Guacamole

8. Pour accéder à l'interface Web de Guacamole, lancez un navigateur et pointez-le vers http://server:8080/guacamole où le serveur est le nom d'hôte ou l'adresse IP de votre serveur (dans notre cas, il s'agit de http://192.168.0.100:8080/guacamole) et connectez-vous avec les informations d'identification fournies précédemment (nom d'utilisateur : tecmint, mot de passe : tecmint01) :

9. Après avoir cliqué sur Connexion, vous serez redirigé vers l'interface d'administration où vous verrez la liste des connexions auxquelles l'utilisateur tecmint a accès, selon user- mapping.xml :

10. Allez-y et cliquez sur la case RHEL 8 pour vous connecter en tant que gacanepa (le nom d'utilisateur spécifié dans la définition de connexion).

Notez comment la source de connexion est définie sur 192.168.0.100 (l'adresse IP du serveur Guacamole), quelle que soit l'adresse IP de la machine que vous utilisez pour ouvrir l'interface Web :

11. Si vous souhaitez fermer la connexion, tapez exit et appuyez sur Entrée. Vous serez invité à revenir à l'interface principale (Accueil), à vous reconnecter ou à vous déconnecter de Guacamole :

12. Il est maintenant temps d'essayer la connexion du bureau à distance à Windows 10 :

Toutes nos félicitations! Vous pouvez désormais accéder à une machine Windows 10 et à un serveur RHEL 8 depuis un navigateur Web.

Résumé

Dans cet article, nous avons expliqué comment installer et configurer Guacamole pour autoriser l'accès aux machines distantes via RDP et SSH. Le site Web officiel fournit une documentation complète pour vous aider à configurer l'accès à l'aide d'autres protocoles, tels que VNC et d'autres mécanismes d'authentification, tels que ceux basés sur la base de données…

Comme toujours, n'hésitez pas à nous envoyer un message si vous avez des questions ou des suggestions concernant cet article. Nous sommes également impatients d’entendre vos histoires de réussite.