Installazione di Apache Guacamole su Ubuntu 16.04
15 Aprile 2018Apache Guacamole è gateway per desktop remoto, un applicazione web basata su HTML5 per connettersi ad un PC tramite un broweser web utilizzando i protocolli rdp, vnc, ssh o telnet senza la necessità di installare un client sul proprio PC. Permette di collegarsi da remoto al proprio PC praticamente dovunque e con qualsiasi dispoditivo.
L’applicazione è composta da due parti.
Il Server, il motore che effettua il collegamento con i PC remoti.
Il Client, la parte che, tramite il protocollo HTML5 e Java, permette all’utente di poter comunicare con il server e collegarsi al PC remoto utilizzando un browser web.
1. Note Preliminari
Per il Server devono essere installate le librerie dei protocolli per la connessione ai PC ed altre per il funzionamento base.
Mentre il Client, realizzato con tecnologia JSP, necessita del Web Application Server Apache Tomcat.
Nota: Se non avete già installato Apache Tomcat potete seguire la nostra guida cliccando qui.
2. Prequisiti
Aggiorniamo il sistema con il comando:
sudo apt-get update && apt-get -y upgrade
Riavviamo il sistema:
sudo reboot
Le seguenti librerie sono necessarie per avere le funzionalità complete del server di Guacamole:
apt-get -y install libwebp-dev libvorbis-dev libssl-dev libpulse-dev libvncserver-dev libtelnet-dev libssh2-1-dev libpango1.0-dev libfreerdp-dev libavcodec-dev libavutil-dev libswscale-dev libossp-uuid-dev libpng12-dev libjpeg-turbo8-dev libcairo2-dev maven
3. Installazione di Guacamole-server
Scarichiamo il sorgente del server:
cd /tmp wget http://apache.panu.it/guacamole/0.9.14/source/guacamole-server-0.9.14.tar.gz
Lo estraiamo dall’archivio compresso ed entriamo nella cartella estratta:
tar zxvf guacamole-server-0.9.14.tar.gz cd guacamole-server-0.9.14
Lanciamo il comando configure per iniziare la compilazione del server aggiungendo il suffisso –with-init-dir=/etc/init.d per indicare la cartella dove aggiungere l’init del servizio:
sudo ./configure --with-init-dir=/etc/init.d
Terminata l’elaborazione verrà mostrato all’utente una lista delle librerie e dei protocolli trovati sul sistema, se tutte le dipendenze sono state installate correttamente vi verrà mostrato un messaggio di questo tipo:
------------------------------------------------ guacamole-server version 0.9.14 ------------------------------------------------ Library status: freerdp ............. yes pango ............... yes libavcodec .......... yes libavutil ........... yes libssh2 ............. yes libssl .............. yes libswscale .......... yes libtelnet ........... yes libVNCServer ........ yes libvorbis ........... yes libpulse ............ yes libwebp ............. yes wsocks32 ............ no Protocol support: RDP ....... yes SSH ....... yes Telnet .... yes VNC ....... yes Services / tools: guacd ...... yes guacenc .... yes Init scripts: /etc/init.d Type "make" to compile guacamole-server.
Adesso lanciamo l’installazione tramite i comandi:
sudo make && sudo make install
Conclusa l’installazione eseguire il comando:
sudo ldconfig
Questo comando serve per far ricaricare al sistema operativo le librerie dinamiche.
Per verificare se tutto è andato a buon fine provate ad eseguire l’init del servizio:
sudo /etc/init.d/guacd start
Ottenendo il messaggio seguente:
Starting guacd: guacd[8196]: INFO: Guacamole proxy daemon (guacd) version 0.9.14 started SUCCESS
Il server risulta ora installato nel vostro sistema.
4. Installazione di Guacamole-client
Scarichiamo il file sorgente:
cd /tmp wget http://it.apache.contactlab.it/guacamole/0.9.14/source/guacamole-client-0.9.14.tar.gz
Scompattiamo il pacchetto e spostiamoci sulla cartella estratta:
tar zxvf guacamole-client-0.9.14.tar.gz cd guacamole-client-0.9.14
Compiliamo l’app per Tomcat con il comando:
sudo mvn package
Ottenendo un risultato simile a questo:
[INFO] Scanning for projects... [INFO] ------------------------------------------------------------------------ [INFO] Reactor Build Order: [INFO] [INFO] guacamole-common [INFO] guacamole-ext [INFO] guacamole-common-js [INFO] guacamole [INFO] guacamole-auth-jdbc [INFO] guacamole-auth-jdbc-base [INFO] guacamole-auth-jdbc-mysql [INFO] guacamole-auth-jdbc-postgresql [INFO] guacamole-auth-ldap [INFO] guacamole-auth-noauth [INFO] guacamole-client ... [INFO] ------------------------------------------------------------------------ [INFO] Reactor Summary: [INFO] [INFO] guacamole-common ................................... SUCCESS [ 7.566 s] [INFO] guacamole-ext ...................................... SUCCESS [ 5.594 s] [INFO] guacamole-common-js ................................ SUCCESS [ 1.249 s] [INFO] guacamole .......................................... SUCCESS [ 8.474 s] [INFO] guacamole-auth-jdbc ................................ SUCCESS [ 0.592 s] [INFO] guacamole-auth-jdbc-base ........................... SUCCESS [ 2.548 s] [INFO] guacamole-auth-jdbc-mysql .......................... SUCCESS [ 2.557 s] [INFO] guacamole-auth-jdbc-postgresql ..................... SUCCESS [ 1.990 s] [INFO] guacamole-auth-ldap ................................ SUCCESS [ 1.314 s] [INFO] guacamole-auth-noauth .............................. SUCCESS [ 0.961 s] [INFO] guacamole-client ................................... SUCCESS [ 1.721 s] [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 34.701 s [INFO] Finished at: 2015-06-08T17:03:15-07:00 [INFO] Final Memory: 34M/340M [INFO] ------------------------------------------------------------------------
Il pacchetto si trova nella cartella guacamole/target. Non resta che depositare il pacchetto estratto nella cartella webapps di Tomcat.
sudo mv guacamole/target/guacamole-0.9.14.war <tomcat-webapps-dir>/webapps/guacamole.war
Riavviamo il servizio di Tomcat per attivare l’app nel App Server Web:
sudo systemctl restart tomcat && sudo /etc/init.d/guacd restart
5. Configurazione Autenticazione Base
Dobbiamo ora configurare Guacamole per poter essere utilizzato, spiegherò qui come configurare l’autenticazione predefinita, tramite il file: user-mapping.xml.
Creiamo le cartelle necessarie:
sudo mkdir /etc/guacamole sudo mkdir /etc/guacamole/extensions sudo mkdir /etc/guacamole/lib
Creiamo a questo punto il file di configurazione:
sudo nano /etc/guacamole/guacamole.properties
Copiando e incollando il codice seguente:
# Hostname and port of guacamole proxy
guacd-hostname: localhost
guacd-port: 4822
#Autenticazione
user-mapping: /etc/guacamole/user-mapping.xml
Creaiamo ora il file user-mapping.xml:
sudo nano /etc/guacamole/user-mapping.xml
E copiamo il codice riportato sotto:
<user-mapping>
<!-- Per-user authentication and config information -->
<authorize username="USERNAME" password="PASSWORD">
<protocol>vnc</protocol>
<param name="hostname">localhost</param>
<param name="port">5900</param>
<param name="password">VNCPASS</param>
</authorize>
<!-- Another user, but using md5 to hash the password
(example below uses the md5 hash of "PASSWORD") -->
<authorize
username="guacadmin"
password="5cbd438413e8e3ca0e14e200fde621a9"
encoding="md5">
<!-- First authorized connection -->
<connection name="localhost">
<protocol>vnc</protocol>
<param name="hostname">localhost</param>
<param name="port">5900</param>
<param name="password">VNCPASS</param>
</connection>
<!-- Second 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>
Ogni utente viene specificato con un tag <authorize> corrispondente. Questo tag contiene tutte le connessioni autorizzate per quell’utente, ciascuna contrassegnata da un tag <connection>. Ogni tag <connection> contiene un protocollo corrispondente e un set di parametri specifici del protocollo, specificati rispettivamente con i tag <protocol> e <param>.
Utente e password standard sono guacadmin guacadmin.
6. Attivazione del servizio
Per abilitare il servizio in avvio automatico al boot digitare il comando:
/lib/systemd/systemd-sysv-install enable guacd
Riavviamo il servizio di Tomcat per attivare le modifiche:
sudo systemctl restart tomcat && sudo /etc/init.d/guacd restart