
Installation d’Apache Guacamole
Dans cet article, nous allons voir l’installation d’Apache Guacamole, Un outil intéressant basé sur un logiciel libre qui nous permettra de nous connecter aux ordinateurs de manière sécurisée, grâce à HTML5 et HTTPS, nous pourrons accéder aux ordinateurs avec RDP, VNC, SSH ou TELNET.
Ce que j’ai dit, dans cet article, nous allons voir ce qu’est l’installation d’Apache Guacamole, qui, grâce à son interface web, permettra aux utilisateurs d’accéder à leurs ordinateurs. L’idée est d’utiliser le guacamole comme passerelle, puisque ce n’est qu’en publiant le service HTTPS qu’il pourra encapsuler les protocoles mentionnés ci-dessus, les utilisateurs pourront travailler de la même manière grâce à HTML5 en intégrant leur ordinateur distant dans le navigateur. A la fin de l’article nous verrons comment sécuriser un peu plus l’environnement à l’aide d’un reverse proxy. Il est vrai qu’avec Apache Guacamole, en plus de leur permettre de se connecter aux ordinateurs de bureau, Nous pouvons publier des applications, ainsi que d’intégrer l’authentification Windows ou d’introduire 2FA (Authentification à deux facteurs).
Dans cet article, je travaille avec un Ubuntu 20.04, Nous commençons donc par l’installation sur une machine mise à jour et prête à démarrer! Comme d'habitude, Nous commençons par les dépendances, Nous les exhortons d’abord:
Sudo apt-get install libcairo2-dev libjpeg-turbo8-dev libjpeg-dev libpng-dev libtool-bin libossp-uuid-dev make maven -y sudo apt-get install libavcodec-dev libavformat-dev libavutil-dev libswscale-dev freerdp2-dev libpango1.0-dev libssh2-1-dev libtelnet-dev libvncserver-dev libwebsockets-dev libpulse-dev -y
Nous devons installer Tomcat:
sudo apt install tomcat9 tomcat9-admin tomcat9-common tomcat9-user -y
Il est temps de télécharger Guacamole, nous commençons par le composant Serveur, Voir quelle version est la plus récente, Nous le téléchargeons, Nous le compilons et l’installons:
tar -xzf guacamole-server-1.2.0.tar.gz cd guacamole-server-1.2.0/ ./configure --with-init-dir=/etc/init.d make sudo make install
Nous exécutons ldconfig pour créer des liens et mettre en cache, En plus d’ouvrir le port 8080TCP dans le pare-feu:
sudo LDCONFIG sudo UFW Allow 8080/TCP
Ensuite, nous installerons le client Guacamole que nous téléchargerons à partir du même site Web, ainsi que le dossier WAR. Nous les décompressons et procédons à leur installation:
CD .. tar -xzf guacamole-client-1.2.0.tar.gz cd guacamole-client-1.2.0/ mvn package sudo mkdir /etc/guacamole sudo cp guacamole-1.2.0.war /etc/guacamole sudo ln -s /etc/guacamole/guacamole.war /var/lib/tomcat9/webapps/
Commençons maintenant par quelle est la configuration, nous avons créé le répertoire pour les extensions et les bibliothèques Guacamole, et ajoutez la variable d’environnement suivante:
sudo mkdir /etc/guacamole/{Extensions,Lib} écho de sueur "GUACAMOLE_HOME=/etc/guacamole" >> /etc/default/tomcat9
Nous créons le fichier de configuration de Guacamole (/etc/guacamole/guacamole.properties) pour se connecter avec guacd et nous ajoutons:
guacd-nom-hôte: localhost guacd-port: 4822 mappage des utilisateurs: /etc/guacamole/user-mapping.xml fournisseur d’authentification: net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider
Nous lions le répertoire de configuration Guacamole au servlet Tomcat:
sudo ln -s /etc/guacamole /usr/share/tomcat9/.guacamole
Avant d’aller plus loin, nous devons générer le hachage MD5 pour le mot de passe que nous allons vouloir utiliser, Nous le sortirons facilement en exécutant:
echo -n MOT DE PASSE | OpenSSL MD5 (Puer)= d287200e83ee04f67294de90dd72f9c6
Nous allons maintenant pouvoir modifier le fichier où nous allons définir les accès à Apache Guacamole, C’est, Si nous utilisons des utilisateurs locaux, nous pouvons les définir ici ainsi que les ressources que nous leur présentons, Exemple de '/etc/guacamole/user-mapping.xml’ que nous devrons développer:
<mappage des utilisateurs> <!-- Authentification par utilisateur et informations de configuration --> <!-- Un utilisateur utilisant md5 pour hacher le mot de passe guacadmin user et son mot de passe haché md5 ci-dessous est utilisé pour se connecter à Guacamole Web UI--> <autoriser nom d’utilisateur="guacadmin" mot de passe="D287200E83EE04F67294DE90DD72F9C6" encodage="moyen5"> <!-- Première connexion à distance autorisée --> <nom de la connexion="Serveur Centos"> <Protocole>Sh</Protocole> <nom du param="nom d’hôte">192.168.1.46</Param> <nom du param="port">22</Param> </connexion> <!-- Deuxième connexion à distance autorisée --> <nom de la connexion="Windows 2019"> <Protocole>Rdp</Protocole> <nom du param="nom d’hôte">192.168.1.100</Param> <nom du param="port">3389</Param> <nom du param="nom d’utilisateur">administrateur</Param> <nom du param="ignore-cert">Vrai</Param> </connexion> </autoriser> </mappage des utilisateurs>
Et, D’ailleurs, qu’après avoir effectué toutes les modifications d’installation et de configuration, il sera indispensable de redémarrer les services, ainsi que de leur permettre de démarrer automatiquement avec le système:
sudo systemctl restart tomcat9 sudo systemctl enable tomcat9 sudo systemctl restart guacd sudo systemctl enable guacd
Et il est temps de l’essayer! Non?
Nous y accéderons via un navigateur Web, Pointage sur HTTP://DIRECCION_IP_GUACAMOLE:8080/guacamole et selon le nom d’utilisateur et le mot de passe définis dans le fichier précédent.
Ce serait l’interface la première fois que nous l’avons vue, où nous aurons les ressources qui nous ont été publiées ;. Et si nous nous sommes récemment connectés à un ordinateur, nous l’aurons en haut d’un coup d’œil rapide.
![]() |
![]() |
Et lorsque vous cliquez sur n’importe quelle connexion, la connexion RDP s’ouvre intégrée au navigateur, ou VNC, o SSH, o Telnet… Je vous laisse ce lien avec tout le manuel et le guide officiel pour pouvoir le configurer selon vos besoins, Une application, l’authentification avec LDAP, OTP/Jeton…
Une explosion, Non? le mauvais pour l’instant est la sécurité puisqu’il s’agit de HTTP, Donc, au moins, nous devrons y mettre un proxy inverse, et aussi qu’il passe par SSL…
Activation du proxy inverse avec Apache
Puits, Eh bien, si nous voulons lui donner une couche de sécurité supplémentaire, Nous devrons installer Apache sur une autre machine (ou dans le même…) pour agir en tant que proxy inverse:
sudo apt-get install apache2
Nous activons les modules Apache suivants:
sudo A2ensite Default-SSL sudo A2Enmod SSL sudo A2Enmod proxy sudo A2Enmod proxy_http sudo A2Enmod proxy_balancer sudo A2Enmod lbmethod_byrequests sudo SystemCTL Redémarrer Apache2
Et nous modifions le fichier SSL par défaut (/etc/apache2/sites-available/default-ssl.conf), à laquelle nous devrons indiquer nos certificats du site, ainsi que l’URL de notre Guacamole, laissant quelque chose comme:
<IfModule mod_ssl.c> <VirtualHost _default_:443> ServerAdmin webmaster@localhost DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combiné SSLEngine sur SSLCertificateFile /etc/apache2/ssl/bujarra.crt SSLCertificateKeyFile /etc/apache2/ssl/bujarra.key SSLProxyEngine sur SSLProxyVerify none SSLProxyCheckPeerCN off SSLProxyCheckPeerName off SSLProxyCheckPeerName off SSLProxyCheckPeerExpire off <Localisation /guacamole/> Ordonnance autoriser,deny Allow de tous les ProxyPass http://DIRECCION_IP_GUACAMOLE:8080/guacamole/ flushpackets=sur ProxyPassReverse http://DIRECCION_IP_GUACAMOLE:8080/guacamole/ </Emplacement> SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key <FichiersMatch "\.(CGI|shtml|Phtml|php)$"> SSLOptions +StdEnvVars </FichiersMatch> <Répertoire /usr/lib/cgi-bin> SSLOptions +StdEnvVars </Répertoire> </Hôte virtuel> </IfModule>
Nous redémarrons Apache et lui demandons de démarrer à chaque fois que je démarre la machine avec:
sudo systemctl restart apache2 sudo systemctl enable apache2
Et il n’y a plus qu’à essayer! Nous ouvrons un navigateur contre: https://DIRECCION_IP_PROXY/guacamole/ et notre déploiement devrait être un peu plus sûr.
Comme toujours en espérant que vous les trouverez intéressants, Mais ces types de solutions sont très bons pour les petites entreprises, Micro-PME, les empêchant de pouvoir publier RDP directement sur Internet. Avec ce type de solution, nous ouvrons un seul port vers Internet, Le 443TCP, Le reste fermé. Facile et rapide, À un moment donné, nous avons un outil pour permettre le télétravail dans les entreprises sans ressources, Centres d’études, Collèges…
Un câlin!