Ricerca nel sito web

Come installare Guacamole Remote Desktop Client basato sul Web su Ubuntu 20.04 LTS


Questo tutorial esiste per queste versioni del sistema operativo

  • Ubuntu 20.04 (Focal Fossa)
  • Ubuntu 18.04 (Bionic Beaver)

Su questa pagina

  1. Prerequisiti
  2. Per iniziare
  3. Installa le dipendenze richieste
  4. Installa Tomcat Server
  5. Installa Guacamole
  6. Installa Guacamole Client
  7. Configura Guacomole
  8. Accedi all'interfaccia web di Guacamole
  9. Configura Nginx per Guacamole
  10. Conclusione

Guacamole è un pannello di controllo desktop remoto gratuito, open source e basato sul web utilizzato per la gestione di sistemi Linux e Windows dal browser web. Supporta protocolli standard come VNC, RDP, SSH e Kubernetes e non è necessario installare alcun software sul computer client. Supporta gli appunti, il trasferimento di file tramite SFTP e consente di gestire più sessioni di desktop remoto.

In questo tutorial, ti mostreremo come installare e configurare il client desktop remoto Guacamole sul server Ubuntu 20.04.

Prerequisiti

  • Un server che esegue Ubuntu 20.04 con almeno 2 GB di RAM.
  • Il server è configurato con una password di root.

Iniziare

Innanzitutto, dovrai aggiornare il tuo sistema all'ultima versione stabile. Puoi farlo aggiornando tutti i pacchetti di sistema usando il seguente comando:

apt-get update -y

Una volta aggiornato il sistema, riavvia il sistema per applicare le modifiche.

Installa le dipendenze richieste

Innanzitutto, dovrai installare alcune dipendenze nel tuo server per compilare il Guacamole dal sorgente. Puoi installarli tutti con il seguente comando:

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

Una volta installate tutte le dipendenze, puoi procedere al passaggio successivo.

Installa il server Tomcat

Guacamole utilizza Tomcat per servire il contenuto del client guacamole agli utenti che si connettono al server guacamole tramite il browser web. Quindi il server Tomcat deve essere installato nel tuo server. Se non è installato puoi installarlo con il seguente comando:

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

Dopo aver installato il server Tomcat, avviare il servizio Tomcat e abilitarlo all'avvio al riavvio del sistema con il seguente comando:

systemctl start tomcat9
systemctl enable tomcat9

Puoi anche verificare lo stato del servizio Tomcat con il seguente comando:

systemctl status tomcat9

Dovresti ottenere il seguente output:

? 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>

Una volta terminato, puoi procedere al passaggio successivo.

Installa Guacamole

Per impostazione predefinita, il pacchetto Guacamole non è disponibile nel repository predefinito di Ubuntu 20.04. Quindi dovrai compilarlo dalla fonte.

Innanzitutto, scarica l'ultima versione di Guacamole dal sito Web di Apache utilizzando il seguente comando:

wget https://downloads.apache.org/guacamole/1.1.0/source/guacamole-server-1.1.0.tar.gz

Una volta completato il download, estrai il file scaricato con il seguente comando:

tar -xvzf guacamole-server-1.1.0.tar.gz

Quindi, cambia la directory nella directory estratta ed esegui lo script di configurazione per verificare se manca o meno una dipendenza richiesta:

cd guacamole-server-1.1.0
./configure --with-init-dir=/etc/init.d

Se tutto va bene, dovresti vedere il seguente output:

     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.

Ora, compila e installa Guacamole Server eseguendo il seguente comando:

make
make install

Successivamente, esegui il seguente comando per aggiornare la cache di sistema delle librerie installate:

ldconfig

Successivamente, abilita e avvia il servizio Guacamole utilizzando il seguente comando

systemctl enable guacd
systemctl start guacd

Ora puoi controllare lo stato del servizio Guacamole con il seguente comando:

systemctl status guacd

Dovresti ottenere il seguente output:

? 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 ubunt4 systemd[1]: Starting LSB: Guacamole proxy daemon...
Aug 25 12:02:26 ubunt4 guacd[27551]: Guacamole proxy daemon (guacd) version 1.1.0 started
Aug 25 12:02:26 ubunt4 guacd[27536]: Starting guacd:
Aug 25 12:02:26 ubunt4 guacd[27551]: Starting guacd:
Aug 25 12:02:26 ubunt4 guacd[27551]: uacd[27551]: INFO:        Guacamole proxy daemon (guacd) versio
Aug 25 12:02:26 ubunt4 systemd[1]: Started LSB: Guacamole proxy daemon.
Aug 25 12:02:26 ubunt4 guacd[27555]: Listening on host 127.0.0.1, port 4822
Aug 25 12:02:26 ubunt4 guacd[27536]: uacd[275

Una volta terminato, puoi procedere al passaggio successivo.

Installa Guacamole Client

Successivamente, dovrai installare il client Guacamole sul tuo server. Il client Guacamole è scritto in Java ed è multipiattaforma. Questo costituirà l'applicazione HTML5 finale che ti verrà presentata.

Innanzitutto, scarica il binario Guacamole usando il seguente comando:

wget https://mirrors.estointernet.in/apache/guacamole/1.1.0/binary/guacamole-1.1.0.war

Dopo aver scaricato il binario di Guacamole, copialo nella directory /etc/guacamole usando il seguente comando:

mkdir /etc/guacamole
mv guacamole-1.1.0.war /etc/guacamole/guacamole.war

Quindi, crea un collegamento simbolico del client guacamole alla directory webapps di Tomcat con il seguente comando:

ln -s /etc/guacamole/guacamole.war /var/lib/tomcat9/webapps/

Infine, riavvia il servizio Tomcat e Guacamole per distribuire la nuova applicazione Web:

systemctl restart tomcat9
systemctl restart guacd

Una volta terminato, puoi procedere al passaggio successivo.

Configura Guacomole

Successivamente, è necessario configurare utenti e connessioni per far funzionare correttamente Guacamole.

Innanzitutto, crea un file di configurazione principale di Guacamole denominato guacamole.properties.

nano /etc/guacamole/guacamole.properties

Aggiungi le seguenti righe:

guacd-hostname: localhost
guacd-port:    4822
user-mapping:    /etc/guacamole/user-mapping.xml

Salva e chiudi il file quando hai finito.

Successivamente, sarà necessario creare directory per la libreria e l'estensione. Puoi crearli con il seguente comando:

mkdir /etc/guacamole/{extensions,lib}

Successivamente, imposta la variabile d'ambiente della directory home guacamole e aggiungila al file di configurazione /etc/default/tomcat9.

echo "GUACAMOLE_HOME=/etc/guacamole" >> /etc/default/tomcat9

Successivamente, dovrai creare un file chiamato user-mapping.xml per definire l'utente autorizzato ad accedere all'interfaccia utente web di Guacamole.

Prima di crearlo, genera l'hash md5 per la password con il seguente comando:

echo -n yoursecurepassword | openssl md5

Dovresti vedere il seguente output:

(stdin)= 55b38b03e7587a45fd886977842ff9b8

Nota: ricorda la password md5 sopra. Dovrai definirlo nel file user-mapping.xml.

Quindi, crea un nuovo user-mapping.xml con il seguente comando:

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>

Salva e chiudi il file quando hai finito.

Dove:

  • 192.168.10.50 è l'indirizzo IP del server Ubuntu remoto.
  • 192.168.10.51 è l'indirizzo IP del server Windows rimosso.

Successivamente, riavvia il servizio Tomcat e Guacamole per applicare le modifiche:

systemctl restart tomcat9
systemctl restart guacd

A questo punto, il server e il client Guacamole sono stati installati e configurati.

Accedi all'interfaccia web di Guacamole

Ora, apri il tuo browser web e accedi all'interfaccia web di Guacamole usando l'URL http://your-server-ip:8080/guacamole. Verrai reindirizzato alla pagina di accesso di Guacamole:

Fornisci il nome utente e la password che hai definito nel file user-mapping.xml e fai clic sul pulsante Accedi. Dovresti vedere la dashboard di Guacamole nella pagina seguente:

Ora, fai clic su Ubuntu20.04-Server per connettere il server remoto utilizzando il protocollo SSH. Dovresti vedere la schermata di accesso del server Ubuntu come mostrato di seguito:

Fornisci la password di root del tuo server Ubuntu e premi Invio. Accederai al server Ubuntu come mostrato di seguito:

Configura Nginx per Guacamole

Si consiglia di configurare Nginx come proxy inverso per accedere a Guacamole attraverso la porta 80.

Innanzitutto, installa il server Web Nginx utilizzando il seguente comando:

apt-get install nginx -y

Dopo aver installato Nginx, crea un nuovo file di configurazione dell'host virtuale Nginx:

nano /etc/nginx/sites-available/guacamole.conf

Aggiungi le seguenti righe:

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/ /;
        }

}

Salva e chiudi il file quando hai finito. Quindi, abilita l'host virtuale Nginx con il seguente comando:

ln -s /etc/nginx/sites-available/guacamole.conf /etc/nginx/sites-enabled/

Successivamente, riavvia il servizio Nginx per applicare le modifiche alla configurazione:

systemctl restart nginx

Ora puoi accedere al tuo Guacamole usando l'URL http://your-server-ip.

Conclusione

Congratulazioni! hai installato e configurato correttamente il client desktop remoto Guacamole sul server Ubuntu 20.04. Ora puoi aggiungere più connessioni RDP o VNC al tuo Guacamole e iniziare a gestirle dall'interfaccia web.