GNU/Linux >> Linux Esercitazione >  >> Debian

Come installare Apache Guacamole su Debian 11

Apache Guacamole è un gateway desktop remoto gratuito e open source che ti consente di connetterti al tuo computer/server in remoto utilizzando diversi protocolli come SSH, RDP e VNC. Apache Guacamole è gestito da Apache Software Foundation e concesso in licenza con Apache License 2.0.

Apache Guacamole è un gateway desktop remoto senza client. Puoi accedere ad Apache Guacamole utilizzando solo un browser web da qualsiasi luogo e in qualsiasi momento. L'utilizzo di Apache Guacamole è consigliato se si dispone di più sistemi operativi remoti con protocolli diversi, come Windows con RDP, sistema Linux con VNC e SSH.

In questo tutorial, installerai e configurerai Apache Guacamole su una Debian 11 Bullseye. Ciò include l'installazione di alcune dipendenze dei pacchetti e Apache Tomcat 9, quindi la creazione del server Guacamole e l'installazione dell'applicazione Java, l'applicazione web Guacamole. Alla fine, configurerai Nginx come proxy inverso per l'applicazione web Guacamole che ti consente di accedere ai tuoi server da qualsiasi luogo, purché tu abbia un browser web.

Prerequisiti

Per completare questo tutorial, avrai bisogno dei seguenti requisiti:

  • Un server con almeno 2 GB di RAM che esegue Debian 11 Bullseye.
  • Un utente use o non root con privilegi di root.
  • Conoscenze di base con nano editor. Oppure puoi usare il tuo editor preferito come vim.

Installazione delle dipendenze di build

All'inizio, installerai alcune dipendenze di build per la creazione del server Apache Guacamole. Ciò include alcuni pacchetti di base come 'libvncserver-dev ' che abilita il supporto per il protocollo VNC, 'libssh2-1 ' per il protocollo SSH, 'freerdp2-dev ' per il protocollo RDP e 'libwebsockets-dev ' per il supporto di Kubernetes.

Per considerazione, non installerai 'libtelnet-dev' per i supporti Telnet. Questo perché telnet è considerato un protocollo vecchio e non sicuro.

1. Ora aggiorna l'elenco dei pacchetti eseguendo il comando apt di seguito.

sudo apt update

2. Successivamente, installa le dipendenze per la creazione del server Apache Guacamole eseguendo il comando seguente.

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

Il completamento di questo comando potrebbe richiedere del tempo, a seconda della connessione Internet del server.

Installazione di Apache Tomcat 9

Dopo aver installato le dipendenze di build, installerai Apache Tomcat 9. Questo pacchetto è necessario per l'applicazione web Guacamole, che è un'applicazione web scritta in Java.

1. Esegui il comando seguente per installare Apache Tomcat 9 sul tuo sistema.

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

2. Dopo aver installato Apache Tomcat 9, avviare e abilitare il servizio Apache Tomcat eseguendo il comando seguente. Sui sistemi basati su Debian, Apache Tomcat 9 viene fornito con il servizio chiamato 'tomcat9 '.

sudo systemctl enable --now tomcat9

3. Ora, se tutto sembra a posto, verifica lo stato di 'tomcat9 ' servizio eseguendo il comando seguente.

sudo systemctl status tomcat9

Riceverai il seguente output. Assicurati che 'tomcat9 ' il servizio è 'attivo (in esecuzione) '.

Compilazione del server Guacamole

In questa sezione scaricherai e compilerai il server Guacamole. Questo è il componente principale di Apache Guacamole, che contiene librerie per la connessione a server e desktop remoti. Il server Guacamole contiene la libreria C 'libguacd' e tutte le librerie per i protocolli supportati, nonché il cuore di Guacamole, guacd.

Il guacd gestisce tutte le connessioni client che vengono canalizzate dall'applicazione web guacamole, quindi si connette a server e desktop remoti per loro conto. Creando e compilando Guacamole-server, avrai un nuovo servizio 'guacd' sul tuo sistema.

1. Inizia navigando nella directory di lavoro in '/usr/src '. Tutto il codice sorgente per la creazione e la compilazione va in questa directory.

cd /usr/src

2. Ora scaricherai il codice sorgente del server Guacamole eseguendo il comando wget di seguito. Assicurati di controllare la pagina di download di Guacamole e di copiare l'ultima versione di Guacamole-server. Al momento in cui scrivo, l'ultima versione è la 1.3.0.

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

3. Quindi, estrai il codice sorgente e otterrai una nuova directory 'guacamole-server-VERSION-NUMBER' . Naviga in quella directory.

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

4. Ora verifica tutti i requisiti di sistema per la creazione del server Guacamole e configura il tuo ambiente eseguendo il comando seguente. L'opzione '--with-systemd-dir=/etc/systemd/system/' viene utilizzato per configurare il file di servizio systemd, che sarà disponibile nella directory '/etc/systemd/system/ '.

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

Riceverai un output simile a questo:

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

   Library status:

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

   Protocol support:

      Kubernetes .... yes
      RDP ........... yes
      SSH ........... yes
      Telnet ........ no
      VNC ........... yes

   Services / tools:

      guacd ...... yes
      guacenc .... yes
      guaclog .... yes

   FreeRDP plugins: /usr/lib/x86_64-linux-gnu/freerdp2
   Init scripts: no
   Systemd units: /etc/systemd/system/

Type "make" to compile guacamole-server.

Dai un'occhiata allo 'Stato delle biblioteche ' e 'Supporto protocollo ' sezioni. Puoi regolare i supporti dei protocolli installando dipendenze e librerie aggiuntive.

5. Quindi, compila e installa Guacamole-server eseguendo il comando seguente.

make
make install

Il completamento del processo di compilazione e installazione potrebbe richiedere del tempo.

6. Ora, dopo aver completato tutto, esegui il seguente comando per applicare tutte le nuove librerie di sistema.

sudo ldconfig

In questa sezione hai installato il pacchetto Guacamole-server. Successivamente, creerai alcune configurazioni necessarie per il server Guacamole.

Configurazione del server Guacamole

Per far funzionare Guacamole-server, creerai la directory di configurazione '/etc/guacamole/ ', quindi crea un nuovo file 'guacamole.properties ' come configurazione predefinita del server Guacamole, file 'logback.xml' per il sistema di registrazione Guacamole e il file 'user-mapping.xml' per definire l'autenticazione degli utenti Guacamole e le connessioni a server e desktop remoti.

1. Per iniziare, esegui il comando seguente per creare una nuova directory '/etc/guacamole/ ' all'interno di directory aggiuntive 'estensioni ' e 'lib' dentro. Quindi aggiungi la variabile di ambiente 'GUACAMOLE_HOME=/etc/guacamole ' nel file '/etc/default/tomcat9'. Questo dirà al contenitore servlet Tomcat 9 di cercare 'GUACAMOLE_HOME ' nella directory '/etc/guacamole/ '.

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

2. Ora, crea la configurazione principale 'guacamole.properties ' utilizzando nano o il tuo editor preferito.

sudo nano /etc/guacamole/guacamole.properties

Immettere la seguente configurazione:

# Hostname and port of guacamole proxy
guacd-hostname: localhost
guacd-port:     4822

# user mapping and user connections
user-mapping:    /etc/guacamole/user-mapping.xml
  • L'opzione 'guacd-hostname' definisce il nome host o l'indirizzo IP su cui verrà eseguito il servizio guacd. Questo tutorial utilizza localhost per eseguire il servizio guacd.
  • L'opzione 'guacd-port ' definisce la porta predefinita per il servizio guacd. Questo tutorial utilizza la porta '4822 ' per il servizio guacd.
  • L'opzione 'mappatura utente' definisce la configurazione del file per l'autenticazione degli utenti e un elenco di connessioni disponibili. Questo tutorial utilizza il file '/etc/guacamole/user-mapping.xml' definire utenti e connessioni per il Guacamole-server. Potresti essere interessato ad utilizzare un altro metodo di autenticazione, controlla la Documentazione Guacamole.

Salva e chiudi il file.

3. Quindi, crea una nuova configurazione 'loogback.xml ' per la registrazione e il debug. Per impostazione predefinita, Guacamole si registrerà solo sulla console. L'utilizzo di questa configurazione consente a Guacamole di accedere tramite il framework di registrazione Logback.

sudo nano /etc/guacamole/logback.xml

Aggiungi le seguenti righe di configurazione.

<configuration>

    <!-- Appender for debugging -->
    <appender name="GUAC-DEBUG" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- Log at DEBUG level -->
    <root level="debug">
        <appender-ref ref="GUAC-DEBUG"/>
    </root>

</configuration>

Salva e chiudi il file di configurazione.

4. Ora genererai un nuovo hash della password md5 e creerai un nuovo file per l'autenticazione e le connessioni dell'utente Guacamole.

Esegui il comando seguente per generare l'hash della password md5. E assicurati di cambiare la password con la tua password complessa.

echo -n StrongPasswordUserJohnDoe | openssl md5

Riceverai un output della password con hash mod5. Copialo nella tua nota.

(stdin)= aca22211ffcfb8aa8ad7627195ad4fce

5. Successivamente, crea un nuovo file 'user-mapping.xml ' usando l'editor nano.

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

Immettere queste seguenti configurazioni. E assicurati di cambiare 'nome utente' e 'password '. Inoltre, dai un'occhiata a '... ' e aggiungi i dettagli della tua connessione a server o desktop.

<user-mapping>

    <!-- Another user, but using md5 to hash the password
         (example below uses the md5 hash of "PASSWORD") -->
    <authorize
            username="johndoe"
            password="aca22211ffcfb8aa8ad7627195ad4fce"
            encoding="md5">

        <!-- First authorized connection -->
        <connection name="SSH localhost">
            <protocol>ssh</protocol>
            <param name="hostname">localhost</param>
            <param name="port">22</param>
            <param name="username">johndoe</param>
            <param name="password">SSHPASSWORD</param>
        </connection>

        <!-- Second authorized connection -->
        <connection name="localhost">
            <protocol>vnc</protocol>
            <param name="hostname">localhost</param>
            <param name="port">5901</param>
            <param name="password">VNCPASS</param>
        </connection>

        <!-- Third authorized connection -->
        <connection name="otherhost">
            <protocol>vnc</protocol>
            <param name="hostname">otherhost</param>
            <param name="port">5900</param>
            <param name="password">VNCPASS</param>
        </connection>

    </authorize>

</user-mapping>

Salva e chiudi il file.

Ora hai completato la configurazione del server Guacamole. Successivamente, installerai e configurerai l'applicazione web Guacamole, che è l'applicazione web che vedrai sul tuo browser.

Installazione dell'applicazione Web client Guacamole

In questa sezione, installerai l'applicazione web Guacamole sul tuo sistema. Questo può essere fatto scaricando il file binario compilato dell'applicazione web Guacamole e distribuendolo nella directory 'webaps' di Tomcat.

1. Naviga nella tua directory di lavoro su '/usr/src' e scarica l'applicazione web Guacamole compilata '.war ' usando il comando wget. Assicurati di visitare la pagina di download di Guacamole e di copiare il link per l'ultima versione dell'applicazione web Guacamole.

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

2. Ora, distribuisci l'applicazione binaria Java 'guacamole-VERSION.war ' nella directory Tomcat '/var/lib/tomcat9/webapps/' eseguendo il comando seguente. Ciò rende l'applicazione web Guacamole accessibile tramite il contenitore servlet Apache Tomcat.

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

3. Successivamente, riavvia il servizio Tomcat 9 per applicare una nuova applicazione web.

sudo systemctl restart tomcat9

4. Quindi, avvia e abilita 'guacd ' servizio eseguendo il comando seguente.

sudo systemctl enable --now guacd

Quindi verificalo usando il seguente comando.

sudo systemctl status guacd

Riceverai l'output come lo screenshot qui sotto.

A questo punto, hai completato l'installazione dell'applicazione Guacamole-server (backend) e dell'applicazione web Guacamole (front-end). Successivamente, configurerai Nginx come proxy inverso per l'applicazione web Guacamole.

Imposta Nginx proxy inverso per Guacamole

In questa sezione, installerai il server web Nginx e lo configurerai come proxy inverso per l'applicazione web Guacamole. Ciò ti consente di impostare il nome di dominio per la tua applicazione web Guacamole e di proteggerla con certificati SSL.

1. Per iniziare, esegui il seguente 'apt ' comando per installare i pacchetti Nginx.

sudo apt install nginx -y

2. Dopo aver installato tutti i pacchetti Nginx, creare un nuovo file host virtuale 'guacamole' nella directory '/etc/nginx/sites-available '. Tutte le configurazioni relative al proxy inverso Guacamole verranno archiviate in questo file.

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

Immettere la seguente configurazione. E assicurati di cambiare il nome di dominio e il percorso dei certificati SSL. Questo esempio utilizza il dominio 'example.io' con la chiave privata SSL 'privkey.pem ' e la chiave pubblica 'fullchain.pem ' e certificati bot disponibili nella directory '/etc/letsencrypt/live/exmaple.io/'.

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

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

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

    location / {
       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 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;
        access_log off;
    }
}

Salva e chiudi il file.

3. Ora, attiva il file host virtuale 'guacamole ' creando un nuovo collegamento simbolico alla directory '/etc/nginx/sites-enabled/ '. Quindi verifica tutte le configurazioni di Nginx per verificare se ci sono errori di sintassi.

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

Riceverai un output "Sintassi OK ', il che significa che la configurazione non ha errori.

4. Quindi, riavvia il servizio Nginx per applicare una nuova configurazione, quindi verifica il suo stato eseguendo il comando seguente.

sudo systemctl restart nginx
sudo systemtl status nginx

Riceverai l'output simile allo screenshot qui sotto. Il servizio Nginx è "attivo (in esecuzione) '.

5. Inoltre, se desideri distribuire l'applicazione web Guacamole in un sottoURL diverso, cambia l'opzione 'location /guacamole/ { ... } ' al nuovo percorso 'posizione /nuovo-percorso/ { ... } ' e aggiungi l'opzione 'proxy_cookie_path ' al tuo nuovo percorso come di seguito.

location /new-path/ {
    proxy_pass http://127.0.0.1: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/ /new-path/;
    access_log off;
}

In questa sezione, hai completato l'installazione e la configurazione di Nginx come proxy inverso per l'applicazione web Guacamole. A questo punto, la tua installazione di Apache Guacamole è completata ed è accessibile dal tuo nome di dominio.

Verifica l'installazione di Apache Guacamole

In questa sezione verificherai l'installazione di Apache Guacamole.

Per prima cosa, apri il tuo browser web e digita il nome di dominio per la tua installazione di Guacamole con il percorso predefinito '/guacamole' .

https://example.io/guacamole/

Ora vedrai la pagina di accesso di Guacamole qui sotto. Inserisci il nome utente e la password che hai configurato nel file 'user-mapping.xml' , quindi fai clic sul pulsante Accedi.

Dopo aver effettuato l'accesso, vedrai un elenco di connessioni definite per i tuoi utenti.

Fare clic sul nome della connessione per connettersi al server di destinazione. Questo esempio si connetterà al server locale con il protocollo SSH.

Ora vedrai una nuova sessione di terminale ssh sul tuo server.

Conclusione

Congratulazioni! In questo tutorial, hai imparato come installare Apache Guacamole su Debian 11 Bullseye. Inoltre, hai imparato a configurare l'autenticazione utente e le connessioni utilizzando il file di configurazione 'user-mapping.xml ' e configura Nginx come proxy inverso per l'applicazione Web Guacamole, che ti consente di eseguire Guacamaloe utilizzando il nome di dominio e proteggerlo utilizzando certificati SSL.


Debian
  1. Come installare Apache su Debian 9

  2. Come installare Apache Cassandra su Debian 9

  3. Come installare Apache Maven su Debian 10

  4. Come installare Apache Maven su Debian 11

  5. Come installare Apache Cassandra su Debian 11 / Debian 10

Come installare Apache Cassandra su Debian 10

Come installare Apache Groovy su Debian 10

Come installare Apache Spark su Debian 10

Come installare Apache Ant su Debian 10

Come installare Apache Kafka su Debian 10

Come installare Apache Guacamole su Debian 11