Se sei un amministratore di sistema e responsabile della gestione di macchine Windows e Linux, spesso potresti aver bisogno di un software client desktop remoto per gestirle. Apache Guacamole è un'applicazione desktop remoto gratuita, open source e basata sul Web che ti consente di accedere alle tue macchine desktop tramite un browser web. È un'applicazione Web HTML5 senza client che supporta protocolli standard come VNC, RDP e SSH. Non è necessario installare e client software o plug-in sul server. Con Guacamole puoi passare facilmente da un computer desktop remoto all'altro con la stessa finestra del browser.
In questo tutorial, mostreremo come installare il gateway desktop remoto Apache Guacamole sul server Ubuntu 18.04 LTS.
Prerequisiti
- Un server che esegue Ubuntu 18.04.
- Una password di root è impostata sul tuo server.
Per iniziare
Prima di iniziare, è una buona idea aggiornare il pacchetto del sistema all'ultima versione. Puoi aggiornarli usando il seguente comando:
apt-get update -y
apt-get upgrade -y
Una volta aggiornati tutti i pacchetti, riavvia il sistema per applicare le modifiche.
Installa le dipendenze richieste
Prima di iniziare, dovrai installare alcune dipendenze nel tuo sistema per compilare Guacamole dal sorgente. Puoi installarli tutti usando il seguente comando:
apt-get install gcc-6 g++-6 libossp-uuid-dev libavcodec-dev libpango1.0-dev libssh2-1-dev libcairo2-dev libjpeg-turbo8-dev libpng-dev libavutil-dev libswscale-dev libfreerdp-dev libvncserver-dev libssl-dev libvorbis-dev libwebp-dev -y
Una volta installati tutti i pacchetti, puoi procedere al passaggio successivo.
Installa il server Tomcat
Successivamente, dovrai installare Tomcat nel tuo server per servire il contenuto del client guacamole agli utenti che si connettono al server guacamole tramite il browser web. Puoi installarlo usando il seguente comando:
apt-get install tomcat8 tomcat8-admin tomcat8-common tomcat8-user -y
Una volta installato Tomcat, puoi procedere al passaggio successivo.
Installa Guacamole Server
Guacamole è separato in due componenti, guacamole-server che fornisce il proxy guacd e le relative librerie, e guacamole-client che fornisce il client che deve essere servito dal tuo server Tomcat. Per impostazione predefinita, Guacamole Server non è disponibile nel repository predefinito di Ubuntu 18.04. Quindi dovrai compilarlo dal sorgente.
Innanzitutto, scarica l'ultima versione del sorgente Guacamole usando il seguente comando:
wget http://apachemirror.wuchna.com/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 e configurala con il seguente comando:
cd guacamole-server-1.1.0
./configure --with-init-dir=/etc/init.d
Una volta completata la configurazione, dovresti ottenere il seguente output:
Library status: freerdp2 ............ no pango ............... yes libavcodec .......... yes libavutil ........... yes libssh2 ............. yes libssl .............. yes libswscale .......... yes libtelnet ........... no libVNCServer ........ yes libvorbis ........... yes libpulse ............ no libwebsockets ....... no libwebp ............. yes wsock32 ............. no Protocol support: Kubernetes .... no RDP ........... no SSH ........... yes Telnet ........ no VNC ........... yes Services / tools: guacd ...... yes guacenc .... yes guaclog .... yes FreeRDP plugins: no Init scripts: /etc/init.d Systemd units: no Type "make" to compile guacamole-server.
Quindi, esegui il seguente comando per compilare guacamole-server:
make
Una volta completata con successo la compilazione, puoi installarla con il seguente comando:
make install
Una volta installato, esegui il comando seguente per aggiornare la cache di sistema delle librerie installate
ldconfig
Quindi, abilita l'avvio del servizio Guacamole all'avvio e avvialo con il seguente comando:
systemctl enable guacd
systemctl start guacd
Puoi anche 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 Sat 2020-04-11 14:48:03 UTC; 7s ago Docs: man:systemd-sysv-generator(8) Process: 28833 ExecStart=/etc/init.d/guacd start (code=exited, status=0/SUCCESS) Tasks: 1 (limit: 2359) CGroup: /system.slice/guacd.service ??28847 /usr/local/sbin/guacd -p /var/run/guacd.pid Apr 11 14:48:03 ubuntu1804 systemd[1]: Starting LSB: Guacamole proxy daemon... Apr 11 14:48:03 ubuntu1804 guacd[28834]: Guacamole proxy daemon (guacd) version 1.1.0 started Apr 11 14:48:03 ubuntu1804 guacd[28833]: Starting guacd: guacd[28834]: INFO: Guacamole proxy daemon (guacd) version 1.1.0 started Apr 11 14:48:03 ubuntu1804 guacd[28833]: SUCCESS Apr 11 14:48:03 ubuntu1804 systemd[1]: Started LSB: Guacamole proxy daemon. Apr 11 14:48:03 ubuntu1804 guacd[28847]: Listening on host 127.0.0.1, port 4822
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.
Innanzitutto, scarica il file binario Guacamole con il seguente comando:
wget https://mirrors.estointernet.in/apache/guacamole/1.1.0/binary/guacamole-1.1.0.war
Una volta completato il download, copialo nella directory /etc/guacamole:
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/tomcat8/webapps/
Infine, riavvia il servizio Tomcat e Guacamole per distribuire la nuova applicazione web
systemctl restart tomcat8
systemctl restart guacd
Configura Guacomole
Dopo aver installato Guacamole, è 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. Quindi, crea una directory lib e extensions con il seguente comando:
mkdir /etc/guacamole/{extensions,lib}
Successivamente, la variabile d'ambiente della directory home di guacamole nel file di configurazione predefinito di tomcat8.
echo "GUACAMOLE_HOME=/etc/guacamole" >> /etc/default/tomcat8
Il metodo di autenticazione predefinito di Guacamole legge tutti gli utenti e le connessioni da un unico file chiamato user-mapping.xml. Questo file definirà l'utente autorizzato ad accedere all'interfaccia utente web di Guacamole, i server a cui connettersi e il metodo di connessione.
Innanzitutto, genera l'hash md5 per la password con il seguente comando:
echo -n yoursecurepassword | openssl md5
Dovresti ottenere il seguente output:
(stdin)= 55b38b03e7587a45fd886977842ff9b8
Nota:ricorda questo hash, dovrai specificarlo nel file user-mapping.xml.
Quindi, crea un nuovo user-mapping.xml con il seguente comando:
nano /etc/guacamole/user-mapping.xml
Aggiungi le seguenti righe:
<user-mapping> <authorize username="admin" password="55b38b03e7587a45fd886977842ff9b8" encoding="md5"> <connection name="Ubuntu-Server"> <protocol>ssh</protocol> <param name="hostname">192.168.0.150</param> <param name="port">22<param> <param name="username">root</param> </connection> <connection name="Windows Server"> <protocol>rdp</protocol> <param name="hostname">192.168.0.100</param> <param name="port">3389</param> </connection> </authorize> </user-mapping>
Salva e chiudi il file quando hai finito. Quindi, riavvia il servizio Tomcat e Guacamole per applicare le modifiche:
systemctl restart tomcat8
systemctl restart guacd
Accedi all'interfaccia web di Guacamole
A questo punto il server Guacamole è installato e configurato. Ora è il momento di accedervi tramite un browser web.
Apri il tuo browser web e digita l'URL http://your-server-ip:8080/guacamole/. Verrai reindirizzato alla pagina di accesso di Apache Guacamole:
Fornisci il nome utente e la password che hai specificato nel file user-mapping.xml e fai clic su Accedi pulsante. Dovresti vedere la dashboard predefinita di Apache Guacamole con tutte le connessioni:
Ora, fai clic sul server Ubuntu e ti verrà chiesto di inserire la password per l'utente che hai definito in user-mapping.xml come mostrato di seguito:
Fornisci la password degli utenti del tuo sistema e premi Invio . Accederai al server Ubuntu come mostrato di seguito:
Configura Nginx come proxy inverso per Guacamole
Successivamente, dovrai configurare Nginx come proxy inverso per accedere alla dashboard di Guacamole. Innanzitutto, installa il server web Nginx usando il seguente comando:
apt-get install nginx -y
Una volta installato, 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, controlla Nginx per eventuali errori di sintassi con il seguente comando:
nginx -t
Dovresti ottenere il seguente output:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Infine, riavvia il servizio Nginx per applicare le modifiche:
systemctl restart nginx
Ora puoi accedere all'interfaccia web di Guacamole utilizzando l'URL http://your-server-ip.
Conclusione
Congratulazioni! hai installato correttamente il gateway desktop remoto Guacamole sul server Ubuntu 18.04. Ora puoi aggiungere un altro server remoto che desideri gestire in remoto tramite un browser web.