Guacamole è un pannello di controllo desktop remoto gratuito, open source e basato sul Web utilizzato per la gestione dei 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 appunti, 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 minimo 2 GB di RAM.
- Una password di root è configurata sul server.
Per 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 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 fornire 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 consentirne l'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 dal sorgente.
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
Quindi, esegui il comando seguente per aggiornare la cache di sistema delle librerie installate:
ldconfig
Quindi, abilita e avvia il servizio Guacamole usando 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 ubuntu2004 systemd[1]: Starting LSB: Guacamole proxy daemon... Aug 25 12:02:26 ubuntu2004 guacd[27551]: Guacamole proxy daemon (guacd) version 1.1.0 started Aug 25 12:02:26 ubuntu2004 guacd[27536]: Starting guacd: Aug 25 12:02:26 ubuntu2004 guacd[27551]: Starting guacd: Aug 25 12:02:26 ubuntu2004 guacd[27551]: uacd[27551]: INFO: Guacamole proxy daemon (guacd) versio Aug 25 12:02:26 ubuntu2004 systemd[1]: Started LSB: Guacamole proxy daemon. Aug 25 12:02:26 ubuntu2004 guacd[27555]: Listening on host 127.0.0.1, port 4822 Aug 25 12:02:26 ubuntu2004 guacd[27536]: uacd[275
Una volta terminato, puoi procedere al passaggio successivo.
Installa il client Guacamole
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.
Per prima cosa, 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 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 Tomcat webapps 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, dovrai creare directory per la libreria e l'estensione. Puoi crearli con il seguente comando:
mkdir /etc/guacamole/{extensions,lib}
Quindi, imposta la variabile d'ambiente della directory home di 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 di rimozione.
Quindi, 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 utilizzando 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 in user-mapping.xml e fai clic su Accedi pulsante. Dovresti vedere la dashboard Guacamole nella pagina seguente:
Ora, fai clic sul Server Ubuntu20.04 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 al Guacamole attraverso la porta 80.
Innanzitutto, installa il server web Nginx usando 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/
Quindi, riavvia il servizio Nginx per applicare le modifiche alla configurazione:
systemctl restart nginx
Ora puoi accedere al tuo Guacamole utilizzando 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 basata sul web.