gen 192013
 

Questo è un progetto nuovo e interessante che potrebbe essere molto utile sia per le aziende che per gli utenti priivati, Guacamole è un Gateway HTML5 per un Desktop remoto che consente di accedere agli ambienti desktop remoti utilizzando protocolli desktop come VNC e RDP. Un server centralizzato agisce come un tunnel e proxy, permettendo l’accesso a più desktop attraverso un browser web.

Bisogna però essere consapevoli del fatto che Guacamole è solo un gateway desktop remoto, e non può efefttuare la visualizzazione del desktop senza un server di desktop remoto di qualche tipo a cui connettersi. Guacamole non contiene un proprio server VNC o RDP, è un programma basato su Java quindi è distribuito come pacchetto .war.

Il client richiede niente più che un browser web che supporti HTML5 e AJAX.

Perché Guacamole?

1) Per fornire un facile accesso a un gruppo

Guacamole consente di centralizzare l’accesso ad un grande gruppo di macchine, e specificare per ogni singolo utente quali macchine sono accessibili. Invece di ricordare una lista di macchine e credenziali, gli utenti devono solo collegarsi a un server centrale e fare clic su uno dei collegamenti elencati a loro disposizione.

Se si dispone di più computer a cui si desidera accedere in remoto, o fate parte di un gruppo in cui ogni persona ha una serie di macchine di cui avete bisogno di accedere da remoto, Guacamole è un buon modo per disporre l’accesso ed allo stesso tempo garantire che l’accesso sia disponibile da qualsiasi luogo.

2) Accedi ai tuoi computer da qualsiasi luogo

Se si desidera accedere a uno o più desktop in remoto da qualsiasi luogo, senza dover installare un client, in particolare quando l’installazione di un client non è possibile, Guacamole è una soluzione eccellente. Con la creazione di un server di Guacamole, è possibile fornire l’accesso a qualsiasi altro computer della rete da qualsiasi altro computer su Internet, in qualsiasi parte del mondo.

Si potrebbe avere un firewall o una rete che impedisce un accesso diretto dalla rete pubblica ad alcune delle vostre macchine, quale vera applicazione web la cui comunicazione avviene solo via HTTP o HTTPS, Guacamole permette di accedere ai vostri computer da qualsiasi luogo.

3) L’aggiunta di accesso remoto con l’HTML5 per l’infrastruttura esistente

Forse avete già un infrastruttura web con un single sign-on per gli utenti, per accedere alla propria webmail o ad altre risorse, e si hanno anche un po’ di server VNC e remote desktop che si desidera “pubblicare” in rete per questi utenti , Guacamole è la soluzione perfetta che integra un Gateway Desktop HTML5 per gestire i computer remoti.

connection-list

Installazione

Pacchetti e istruzioni per l’installazione sono disponibili per Debian, Ubuntu e Fedora. Su Ubuntu 12.10, Min 14 e Debian sul ​​repository è presente la versione 0.6 che si può facilmente installare con il comando:

sudo apt-get install guacamole
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  guacd libguac-client-vnc0 libguac3 vnc4server xbase-clients
Suggested packages:
  tomcat6 jetty vnc-java
The following NEW packages will be installed:
  guacamole guacd libguac-client-vnc0 libguac3 vnc4server xbase-clients
0 upgraded, 6 newly installed, 0 to remove and 0 not upgraded.
Need to get 2,464 kB of archives.
After this operation, 6,140 kB of additional disk space will be used.

Se si preferisce una versione più recente è possibile installare i requisiti a mano con il comando:

sudo apt-get install tomcat6 libvncserver0 libfreerdp1

Scaricate l’ultima versione per Ubuntu (questa è la versione a 64 bit) ed installare i pacchetti con i seguenti comandi:

$ tar -zxvf guacamole-0.7.1-ubuntu-12.04-amd64.tar.gz
$ cd guacamole-0.7.1-ubuntu-12.04-amd64/
$ ls
guacamole_0.7.0-1_all.deb         guacd_0.7.0-2_amd64.deb     libguac-client-rdp0_0.7.1-1_amd64.deb  libguac-dev_0.7.0-1_amd64.deb
guacamole-tomcat_0.7.0-1_all.deb  libguac4_0.7.0-1_amd64.deb  libguac-client-vnc0_0.7.0-1_amd64.deb
$ sudo dpkg -i *.deb


Configurazione di Guacamole

L’applicazione web Guacamole utilizza un file di configurazione principale chiamato guacamole.properties che deve essere nel percorso delle classi del servlet container. Questo file è quello che contiene tutte le proprietà di configurazione lette da Guacamole o qualsiasi estensione di Guacamole, compresi i fornitori di autenticazione.

In Ubuntu questo file si trova in /etc/guacamole/guacamole.properties , e questo è un esempio minimale:

# Hostname and port of guacamole proxy
guacd-hostname: localhost
guacd-port:     4822
 
# Location to read extra .jar's from
lib-directory:  /var/lib/guacamole/classpath
 
# Authentication provider class
auth-provider: net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider
 
# Properties used by BasicFileAuthenticationProvider
basic-user-mapping: /etc/guacamole/user-mapping.xml

Autenticazione degli utenti ed associazioni a Desktop remoti

Il modello di autenticazione di Guacamole è semplice e consiste in una mappatura dei nomi alle configurazioni.
Ogni utente ha una password ed un insieme di configurazioni, per ciascuna delle quali ha un protocollo e specifici parametri del protocollo, questa configurazione viene fatto nel file user-mapping.xml , in Ubuntu questo file si trova in /etc/guacamole/user-mapping.xml

Ecco un esempio di file di configurazione con specificati alcuni parametri per connessioni VNC:

<user -mapping>
 
    <!-- Per-user authentication and config information -->
    <authorize username="USERNAME" password="PASSWORD">
        <protocol>vnc</protocol>
        <param name="hostname"/>localhost
        <param name="port"/>5900
        <param name="password"/>VNCPASS
    </authorize>
 
    <!-- Another user, but using md5 to hash the password
         (example below uses the md5 hash of "PASSWORD") -->
    <authorize username="USERNAME2"
            password="319f4d26e3c536b5dd871bb2c52e3178"
            encoding="md5">
 
        <!-- First authorized connection -->
		<connection name="localhost">
            <protocol>vnc</protocol>
            <param name="hostname"/>localhost
            <param name="port"/>5901
            <param name="password"/>VNCPASS
        </connection>
 
        <!-- Second authorized connection -->
   		<connection name="otherhost">
            <protocol>vnc</protocol>
            <param name="hostname"/>otherhost
            <param name="port"/>5900
            <param name="password"/>VNCPASS
        </connection>
 
 </authorize>
 
</user>

Conclusioni

Dopo aver modificato il file si dovrebbe essere in grado di utilizzare il server Guacamole, basta riavviare il Tomcat e utilizzare un browser per aprire l’indirizzo http://yourIPaddress:8080 dovrebbe mostrare una pagina di login, e una volta effettuato il login si dovrebbe essere in grado di scegliere quale server remoto si desidera utilizzare facendo clic sul nome della connessione, e se tutto è corretto troverete il vostro desktop remoto nel browser.


Popular Posts:

flattr this!

  3 Responses to “Un assaggio di Guacamole su Linux”

  1. Very nice review you posted here Ricardo.

    Just like to note that Guacamole is working on an SSH proxy / HTML 5 based SSH client combination too.
    It’s kept out of the version 0.7.1 because of some issues and because the RDP / VNC combination was ready.

    I’ve been able to connect to my Windows 2003 machine without issues using Firefox, Safari and Google Chrome.
    Somehow IE9 however tends to give issues not displaying correctly.

    Connecting to my iPAD was working fine too. (Enable the mouse cursor when using Veency)

    Connecting to my Windows 8 machine failed though…
    Looking at the logs this might be due to the FreeRDP lib not supporting the proper security level.

    Cheers,

    Eric aka Genotix

  2. Ciao! Il programma in oggetto lo conosco bene e funziona su Tomcat.

    Sto provando a configurarlo su Jetty ma ho problemi.

    Saresti in grado di scrivere una guida per installarlo e configurarlo con Jetty invece che tomcat?

 Leave a Reply

(required)

(required)


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>