GNU/Linux >> Tutoriels Linux >  >> Debian

Comment installer Apache Guacamole sur Debian 11

Apache Guacamole est une passerelle de bureau à distance gratuite et open-source qui vous permet de vous connecter à distance à votre ordinateur/serveur en utilisant différents protocoles tels que SSH, RDP et VNC. Apache Guacamole est maintenu par Apache Software Foundation et sous licence Apache License 2.0.

Apache Guacamole est une passerelle de bureau à distance sans client. Vous pouvez accéder à Apache Guacamole en utilisant uniquement un navigateur Web de n'importe où et à tout moment. L'utilisation d'Apache Guacamole est recommandée si vous disposez de plusieurs systèmes d'exploitation distants avec différents protocoles, tels que Windows avec RDP, système Linux avec VNC et SSH.

Dans ce didacticiel, vous allez installer et configurer Apache Guacamole sur une Debian 11 Bullseye. Cela inclut l'installation de certaines dépendances de packages et d'Apache Tomcat 9, puis la construction du serveur Guacamole et l'installation de l'application Java, l'application Web Guacamole. En fin de compte, vous configurerez Nginx en tant que proxy inverse pour l'application Web Guacamole qui vous permet d'accéder à vos serveurs de n'importe où, tant que vous disposez d'un navigateur Web.

Prérequis

Pour suivre ce didacticiel, vous devez remplir les conditions suivantes :

  • Un serveur avec au moins 2 Go de RAM exécutant Debian 11 Bullseye.
  • Un utilisateur ou un utilisateur non root avec des privilèges root.
  • Connaissances de base avec l'éditeur nano. Ou vous pouvez utiliser votre éditeur préféré tel que vim.

Installation des dépendances de build

Dans un premier temps, vous allez installer certaines dépendances de construction pour construire le serveur Apache Guacamole. Cela inclut certains packages de base tels que 'libvncserver-dev ' qui active la prise en charge du protocole VNC, 'libssh2-1 ' pour le protocole SSH, 'freerdp2-dev ' pour le protocole RDP et 'libwebsockets-dev ' pour la prise en charge de Kubernetes.

Pour considération, vous n'installerez pas le 'libtelnet-dev' pour les supports Telnet. En effet, telnet est considéré comme un ancien protocole et non sécurisé.

1. Maintenant, mettez à jour votre liste de packages en exécutant la commande apt ci-dessous.

mise à jour sudo apt

2. Après cela, installez les dépendances pour créer le serveur Apache Guacamole en exécutant la commande suivante.

sudo apt install -y freerdp2-dev libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libcairo2-dev libjpeg62-turbo-dev libjpeg-dev libpng-dev libtool-bin libpango1.0-dev libpango1.0-0 libssh2-1 libwebsockets16 libwebsocketpp-dev libossp-uuid-dev libssl-dev libwebp-dev libvorbis-dev libpulse-dev libwebsockets-dev libvncserver-dev libssh2-1-dev openssl

Cette commande peut prendre un certain temps, selon la connexion Internet de votre serveur.

Installer Apache Tomcat 9

Après avoir installé les dépendances de construction, vous installerez Apache Tomcat 9. Ce package est requis pour l'application Web Guacamole, qui est une application Web écrite en Java.

1. Exécutez la commande suivante pour installer Apache Tomcat 9 sur votre système.

sudo apt install -y tomcat9 tomcat9-admin tomcat9-common tomcat9-user

2. Une fois Apache Tomcat 9 installé, démarrez et activez le service Apache Tomcat en exécutant la commande ci-dessous. Sur les systèmes basés sur Debian, Apache Tomcat 9 est livré avec le service appelé 'tomcat9 '.

sudo systemctl enable --now tomcat9

3. Maintenant, si tout semble correct, vérifiez l'état de 'tomcat9 ' en exécutant la commande ci-dessous.

sudo systemctl statut tomcat9

Vous recevrez la sortie suivante. Assurez-vous que le 'tomcat9 ' le service est 'actif (en cours d'exécution) '.

Compilation du serveur Guacamole

Dans cette section, vous allez télécharger et compiler le serveur Guacamole. Il s'agit du composant principal d'Apache Guacamole, qui contient des bibliothèques permettant de se connecter à des serveurs et des postes de travail distants. Le serveur Guacamole contient la bibliothèque C 'libguacd' et toutes les bibliothèques pour les protocoles pris en charge, ainsi que le cœur de Guacamole, guacd.

Le guacd gère toutes les connexions client qui sont tunnellisées à partir de l'application Web guacamole, puis se connecte aux serveurs et postes de travail distants en leur nom. En construisant et en compilant Guacamole-server, vous aurez un nouveau service 'guacd' sur votre système.

1. Commencez par naviguer dans le répertoire de travail vers '/usr/src '. Tout le code source pour construire et compiler des choses va dans ce répertoire.

cd /usr/src

2. Maintenant, vous allez télécharger le code source du serveur Guacamole en exécutant la commande wget ci-dessous. Assurez-vous de vérifier la page de téléchargement de Guacamole et de copier la dernière version de Guacamole-server. Au moment d'écrire ces lignes, la dernière version est la 1.3.0.

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

3. Ensuite, extrayez le code source et vous obtiendrez un nouveau répertoire 'guacamole-server-VERSION-NUMBER' . Accédez à ce répertoire.

tar -xzvf guacamole-server-1.3.0.tar.gz
cd guacamole-server-*/

4. Maintenant, vérifiez toutes les exigences système pour créer le serveur Guacamole et configurez votre environnement en exécutant la commande suivante. L'option '--with-systemd-dir=/etc/systemd/system/' est utilisé pour configurer le fichier de service systemd, qui sera disponible dans le répertoire '/etc/systemd/system/ '.

./configure --with-systemd-dir=/etc/systemd/system/

Vous recevrez une sortie semblable à celle-ci :

------------------------------------------------------------ -
guacamole-server version 1.3.0
----------------------------------------------- --------------

   État de la bibliothèque :

     freerdp2 ............ oui
     pango ............... oui
     libavcodec .......... oui
     libavformat.......... oui
     libavutil ........... oui
     libssh2 ............. oui
     libssl ......... ..... oui
     libswscale .......... oui
     libtelnet ........... non
     libVNCServer ...... .. oui
     libvorbis ........... oui
     libpulse ............ oui
     libwebsockets ....... oui
     libwebp ............. oui
     wsock32 ............. non

   Prise en charge du protocole :

      Kubernetes .... oui
      RDP ........... oui
      SSH ........... oui
      Telnet ........ non
      VNC ........... oui

   Services / outils :

      guacd ...... oui
      guacenc .... oui
      guaclog .... oui

   Plugins FreeRDP :/usr/lib/x86_64-linux-gnu/freerdp2
   Scripts d'initialisation :non
   Unités systemd :/ etc/systemd/system/

Tapez "make" pour compiler guacamole-server.

Jetez un œil au 'statut des bibliothèques ' et 'Prise en charge du protocole ' sections. Vous pouvez ajuster les supports de protocole en installant des dépendances et des bibliothèques supplémentaires.

5. Ensuite, compilez et installez le serveur Guacamole en exécutant la commande ci-dessous.

faire
faire installer

Le processus de compilation et d'installation peut prendre un certain temps.

6. Maintenant, une fois que tout est terminé, exécutez la commande suivante pour appliquer toutes les nouvelles bibliothèques système.

sudo ldconfig

Dans cette section, vous avez installé le package Guacamole-server. Ensuite, vous allez créer les configurations nécessaires pour le serveur Guacamole.

Configuration du serveur Guacamole

Pour faire fonctionner Guacamole-server, vous allez créer le répertoire de configuration '/etc/guacamole/ ', puis créez un nouveau fichier 'guacamole.properties ' comme configuration par défaut du serveur Guacamole, fichier 'logback.xml' pour le système de journalisation Guacamole, et le fichier 'user-mapping.xml' pour définir l'authentification des utilisateurs de Guacamole et les connexions aux serveurs et postes de travail distants.

1. Pour commencer, exécutez la commande suivante pour créer un nouveau répertoire '/etc/guacamole/ ' dans des répertoires supplémentaires 'extensions ' et 'lib' à l'intérieur. Ajoutez ensuite la variable d'environnement 'GUACAMOLE_HOME=/etc/guacamole ' dans le fichier '/etc/default/tomcat9'. Cela indiquera au conteneur de servlet Tomcat 9 de rechercher le 'GUACAMOLE_HOME ' dans le répertoire '/etc/guacamole/ '.

mkdir -p /etc/guacamole/{extensions,lib}
echo 'GUACAMOLE_HOME=/etc/guacamole'>> /etc/default/tomcat9

2. Maintenant, créez la configuration principale 'guacamole.properties ' en utilisant nano ou votre éditeur préféré.

sudo nano /etc/guacamole/guacamole.properties

Saisissez la configuration suivante :

# Nom d'hôte et port du proxy guacamole
guacd-hostname :localhost
guacd-port :     4822

# mappage utilisateur et connexions utilisateur
mappage utilisateur :/etc/guacamole/user-mapping.xml
  • L'option 'guacd-hostname' définit le nom d'hôte ou l'adresse IP sur lequel le service guacd sera exécuté. Ce didacticiel utilise l'hôte local pour exécuter le service guacd.
  • L'option 'guacd-port ' définit le port par défaut pour le service guacd. Ce tutoriel utilise le port '4822 ' pour le service guacd.
  • L'option 'user-mapping' définit la configuration du fichier pour l'authentification des utilisateurs et une liste des connexions disponibles. Ce tutoriel utilise le fichier '/etc/guacamole/user-mapping.xml' pour définir les utilisateurs et les connexions pour le serveur Guacamole. Vous pourriez être intéressé à utiliser une autre méthode d'authentification, consultez la documentation Guacamole.

Enregistrez et fermez le fichier.

3. Ensuite, créez une nouvelle configuration 'loogback.xml ' pour la journalisation et le débogage. Par défaut, le Guacamole se connectera uniquement à la console. L'utilisation de cette configuration permet à Guacamole de se connecter via le cadre de journalisation Logback.

sudo nano /etc/guacamole/logback.xml

Ajoutez les lignes de configuration suivantes.



   
   
       
            %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
       

   


   
   
       
   


Enregistrez et fermez le fichier de configuration.

4. Maintenant, vous allez générer un nouveau hachage de mot de passe md5 et créer un nouveau fichier pour l'authentification et les connexions des utilisateurs de Guacamole.

Exécutez la commande suivante pour générer le hachage du mot de passe md5. Et assurez-vous de changer le mot de passe avec votre mot de passe fort.

echo -n StrongPasswordUserJohnDoe | openssl md5

Vous recevrez une sortie du mot de passe haché mod5. Copiez-le dans votre note.

(stdin)=aca22211ffcfb8aa8ad7627195ad4fce

5. Après cela, créez un nouveau fichier 'user-mapping.xml ' à l'aide de l'éditeur nano.

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

Entrez ces configurations suivantes. Et assurez-vous de changer le 'nom d'utilisateur' et le 'mot de passe '. Jetez également un coup d'œil au '... ' et ajoutez vos détails de connexion aux serveurs ou aux postes de travail.



   
                username="johndoe"
            password="aca22211ffcfb8aa8ad7627195ad4fce"
            encoding="md5">

        
       
            ssh
            localhost
            22
            johndoe
            SSHPASSWORD
       


       
       
            vnc
            localhost
            5901
            VNCPASS
       


       
       
            vnc
            autre hôte
            5900
            VNCPASS
       


   

Enregistrez et fermez le fichier.

Vous avez maintenant terminé la configuration de Guacamole-server. Ensuite, vous allez installer et configurer l'application Web Guacamole, qui est l'application Web que vous verrez sur votre navigateur.

Installation de l'application Web client Guacamole

Dans cette section, vous allez installer l'application Web Guacamole sur votre système. Cela peut être fait en téléchargeant le fichier binaire compilé de l'application Web Guacamole et en le déployant dans le répertoire "webaps" de Tomcat.

1. Naviguez dans votre répertoire de travail jusqu'à '/usr/src' et téléchargez l'application Web Guacamole compilée '.war ' à l'aide de la commande wget. Assurez-vous de visiter la page de téléchargement de Guacamole et copiez le lien de la dernière version de l'application Web Guacamole.

cd /usr/src
wget https://dlcdn.apache.org/guacamole/1.3.0/binary/guacamole-1.3.0.war

2. Maintenant, déployez l'application binaire Java 'guacamole-VERSION.war ' dans le répertoire Tomcat '/var/lib/tomcat9/webapps/' en exécutant la commande suivante. Cela rend l'application Web Guacamole accessible via le conteneur de servlet Apache Tomcat.

sudo cp guacamole-1.3.0.war /var/lib/tomcat9/webapps/guacamole.war

3. Après cela, redémarrez le service Tomcat 9 pour appliquer une nouvelle application Web.

sudo systemctl redémarre tomcat9

4. Ensuite, démarrez et activez le 'guacd ' en exécutant la commande ci-dessous.

sudo systemctl enable --now guacd

Vérifiez-le ensuite à l'aide de la commande suivante.

sudo systemctl status guacd

Vous recevrez la sortie comme la capture d'écran ci-dessous.

À ce stade, vous avez terminé l'installation de l'application Guacamole-server (backend) et de l'application Web Guacamole (front-end). Ensuite, vous allez configurer Nginx en tant que proxy inverse pour l'application Web Guacamole.

Configurer le proxy inverse Nginx pour Guacamole

Dans cette section, vous allez installer le serveur Web Nginx et le configurer en tant que proxy inverse pour l'application Web Guacamole. Cela vous permet de configurer le nom de domaine de votre application Web Guacamole et de le sécuriser avec des certificats SSL.

1. Pour commencer, exécutez le 'apt suivant ' pour installer les packages Nginx.

sudo apt install nginx -y

2. Une fois tous les packages Nginx installés, créez un nouveau fichier d'hôte virtuel "guacamole" dans le répertoire "/etc/nginx/sites-available '. Toutes les configurations liées au proxy inverse Guacamole seront stockées dans ce fichier.

sudo nano /etc/nginx/sites-available/guacamole

Entrez cette configuration suivante. Et assurez-vous de changer le nom de domaine et le chemin des certificats SSL. Cet exemple utilise le domaine 'example.io' avec la clé privée SSL 'privkey.pem ' et la clé publique 'fullchain.pem ', et les certificats de bot disponibles dans le répertoire '/etc/letsencrypt/live/exmaple.io/'.

server {
    listen      80 ;
    server_name example.io ;
    rewrite     ^   https://$server_name$request_uri ? permanent ;
}

server {
    listen      443 ssl http2;
    nom_serveur example.io ;

    root /var/www/html;
    index index.html ;

    emplacement / {
       try_files $uri $uri/ =404 ;
    }

    ssl_certificate /etc /letsencrypt/live/example.io/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.io/privkey.pem;

    access_log /var/log/nginx/guacamole -access.log ;
    error_log /var/log/nginx/guacamole-error.log ;

    location /guacamole/ {
        proxy_pass http://127.0.0.1:8080 /guacamole/;
        proxy_buffering désactivé ;
        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 $ br />        access_log off;
    }
}

Enregistrez et fermez le fichier.

3. Maintenant, activez le fichier d'hôte virtuel 'guacamole ' en créant un nouveau lien symbolique vers le répertoire '/etc/nginx/sites-enabled/ '. Vérifiez ensuite toutes les configurations Nginx pour vérifier s'il y a des erreurs de syntaxe.

sudo ln -s /etc/nginx/sites-available/guacamole /etc/nginx/sites-enabled/
sudo nginx -t

Vous recevrez une sortie 'Syntaxe OK ', ce qui signifie que la configuration n'a pas d'erreur.

4. Ensuite, redémarrez le service Nginx pour appliquer une nouvelle configuration, puis vérifiez son état en exécutant la commande suivante.

sudo systemctl restart nginx
sudo systemtl status nginx

Vous recevrez une sortie similaire à la capture d'écran ci-dessous. Le service Nginx est 'actif (en cours d'exécution) '.

5. De plus, si vous souhaitez déployer l'application Web Guacamole dans une sous-URL différente, modifiez l'option 'location /guacamole/ { ... } ' vers le nouveau chemin 'emplacement /nouveau-chemin/ { ... } ' et ajoutez l'option 'proxy_cookie_path ' à votre nouveau chemin comme ci-dessous.

location /new-path/ {
    proxy_pass http://127.0.0.1:8080/guacamole/ ;
    proxy_buffering désactivé ;
    proxy_http_version 1.1 ;
    proxy_set_header X-Forwarded -Pour $proxy_add_x_forwarded_for ;
    proxy_set_header Upgrade $http_upgrade ;
    proxy_set_header Connection $http_connection ;
    proxy_cookie_path /guacamole/ /new-path/;
    access_log off ;
}

Dans cette section, vous avez terminé l'installation et la configuration de Nginx en tant que proxy inverse pour l'application Web Guacamole. À ce stade, votre installation d'Apache Guacamole est terminée et elle est accessible depuis votre nom de domaine.

Vérifier l'installation d'Apache Guacamole

Dans cette section, vous allez vérifier l'installation d'Apache Guacamole.

Tout d'abord, ouvrez votre navigateur Web et tapez le nom de domaine de votre installation Guacamole avec le chemin par défaut '/guacamole' .

https://example.io/guacamole/

Maintenant, vous verrez la page de connexion Guacamole ci-dessous. Entrez votre nom d'utilisateur et votre mot de passe que vous avez configurés dans le fichier 'user-mapping.xml' , puis cliquez sur le bouton Connexion.

Une fois connecté, vous verrez une liste de connexions définies pour vos utilisateurs.

Cliquez sur le nom de la connexion pour vous connecter au serveur cible. Cet exemple se connectera au serveur local avec le protocole SSH.

Maintenant, vous verrez une nouvelle session de terminal ssh sur votre serveur.

Conclusion

Félicitations ! Dans ce didacticiel, vous avez appris à installer Apache Guacamole sur Debian 11 Bullseye. De plus, vous avez appris à configurer l'authentification des utilisateurs et les connexions à l'aide du fichier de configuration 'user-mapping.xml ' et configurez Nginx en tant que proxy inverse pour l'application Web Guacamole, ce qui vous permet d'exécuter Guacamaloe en utilisant le nom de domaine et de le sécuriser à l'aide de certificats SSL.


Debian
  1. Comment installer Apache sur Debian 9

  2. Comment installer Apache Cassandra sur Debian 9

  3. Comment installer Apache Maven sur Debian 10

  4. Comment installer Apache Maven sur Debian 11

  5. Comment installer Apache Cassandra sur Debian 11 / Debian 10

Comment installer Apache Cassandra sur Debian 10

Comment installer Apache Groovy sur Debian 10

Comment installer Apache Spark sur Debian 10

Comment installer Apache Ant sur Debian 10

Comment installer Apache Kafka sur Debian 10

Comment installer Apache Guacamole sur Debian 11