Ricerca nel sito web

Installa Guacamole per l'accesso remoto Linux/Windows in Ubuntu


In qualità di amministratore di sistema, potresti trovarti (oggi o in futuro) a lavorare in un ambiente in cui Windows e Linux coesistono.

Non è un segreto che alcune grandi aziende preferiscano (o debbano) eseguire alcuni dei loro servizi di produzione su sistemi Windows e altri su server Linux.

Se questo è il tuo caso, accoglierai questa guida a braccia aperte (altrimenti vai avanti e assicurati almeno di aggiungerla ai tuoi segnalibri).

In questo articolo ti presenteremo guacamole, un gateway desktop remoto basato su Tomcat che deve solo essere installato su un server centrale.

Guacamole fornirà un pannello di controllo basato sul web che ti consentirà di passare rapidamente da una macchina all'altra, il tutto all'interno della stessa finestra del browser web.

Ambiente di test

In questo articolo abbiamo utilizzato le seguenti macchine. Installeremo Guacamole in un box Ubuntu e lo utilizzeremo per accedere a un box Windows 10 tramite Remote Desktop Protocol ( RDP) e una casella RHEL che utilizza il protocollo di rete SSH:

Guacamole server: Ubuntu 20.04 - IP 192.168.0.100
Remote SSH box: RHEL 8 – IP 192.168.0.18
Remote desktop box: Windows 10 – IP 192.168.0.19

Detto questo, cominciamo.

Installazione di Guacamole Server su Ubuntu

1. Prima di installare guacamole, dovrai prima occuparti delle sue dipendenze.

sudo apt update
sudo apt install -y gcc vim curl wget g++ libcairo2-dev libjpeg-turbo8-dev libpng-dev \
libtool-bin libossp-uuid-dev libavcodec-dev libavutil-dev libswscale-dev build-essential \
libpango1.0-dev libssh2-1-dev libvncserver-dev libtelnet-dev freerdp2-dev libwebsockets-dev \
libssl-dev libvorbis-dev libwebp-dev tomcat9 tomcat9-admin tomcat9-user

2. Scarica ed estrai il file tar. All'inizio di febbraio 2021, l'ultima versione di Guacamole è la 1.3.0. Puoi fare riferimento alla pagina Download di Guacamole per scoprire l'ultima versione in un determinato momento.

wget https://dlcdn.apache.org/guacamole/1.3.0/source/guacamole-server-1.3.0.tar.gz 
tar zxf guacamole-server-1.3.0.tar.gz  

3. Compila il software.

cd guacamole-server-1.3.0/
./configure

Come è prevedibile, configure controllerà il tuo sistema per la presenza delle dipendenze richieste e per i protocolli di comunicazione supportati (come puoi vedere nel riquadro evidenziato, Remote Desktop Protocol (RDP) e SSH sono supportati dalle dipendenze installate in precedenza).

Se tutto va come previsto dovresti vedere questo al termine (altrimenti assicurati di aver installato tutte le dipendenze necessarie):

Come suggerisce l'ultima riga nell'immagine sopra, esegui make e make install per compilare il programma:

make 
sudo make install

4. Aggiorna la cache delle librerie installate.

sudo ldconfig 

e premi Invio.

Installazione del client Guacamole su Ubuntu

Dopo aver completato i passaggi precedenti, il server guacamole sarà stato installato. Le seguenti istruzioni ti aiuteranno ora a configurare guacd (il demone proxy che integra Javascript con protocolli di comunicazione come RDP o SSH) e guacamole.war (il client), il componente che costituisce l'applicazione HTML5 finale che ti verrà presentata.

Tieni presente che entrambi i componenti (guacamole server e client) devono essere installati sullo stesso computer: non è necessario installare un cosiddetto client sui computer che desideri connettersi a).

Per scaricare il client, attenersi alla seguente procedura:

5. Scarica l'archivio dell'applicazione web e cambia il suo nome in guacamole.war.

Nota: a seconda della distribuzione, la directory delle librerie Tomcat potrebbe trovarsi in /var/lib/tomcat.

cd /var/lib/tomcat9/
sudo wget https://dlcdn.apache.org/guacamole/1.3.0/binary/guacamole-1.3.0.war
sudo mv guacamole-1.3.0.war webapps/guacamole.war

6. Crea il file di configurazione (/etc/guacamole/guacamole.properties). Questo file contiene le istruzioni per connettere Guacamole a guacd:

sudo mkdir /etc/guacamole
sudo mkdir /usr/share/tomcat9/.guacamole
sudo nano /etc/guacamole/guacamole.properties

Inserisci i seguenti contenuti in /etc/guacamole/guacamole.properties. Tieni presente che stiamo facendo riferimento a un file che creeremo nel passaggio successivo (/etc/guacamole/user-mapping.xml):

guacd-hostname: localhost
guacd-port:    4822
user-mapping:    /etc/guacamole/user-mapping.xml
auth-provider:    net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider
basic-user-mapping:    /etc/guacamole/user-mapping.xml

E crea un collegamento simbolico affinché Tomcat possa leggere il file:

sudo ln -s /etc/guacamole/guacamole.properties /usr/share/tomcat9/.guacamole/

7. Guacamole utilizza user-mapping.xml, crea questo file per definire quali utenti possono autenticarsi nell'interfaccia web Guacamole (tra <authorize> tag) e quali connessioni possono utilizzare (tra i tag <connection>):

sudo nano /etc/guacamole/user-mapping.xml

La seguente mappatura utente garantisce l'accesso all'interfaccia web Guacamole a un utente tecmint con password tecmint01. Quindi, all'interno della connessione SSH, dobbiamo inserire un nome utente valido per accedere alla casella RHEL (ti verrà richiesto di inserire la password corrispondente quando Guacamole avvia la connessione).

Nel caso del box Windows 10, non è necessario farlo poiché ci verrà presentata la schermata di accesso tramite RDP.

Per ottenere l'hash md5 della password tecmint01, digitare il seguente comando:

printf '%s' "tecmint01" | md5sum

Successivamente inserisci l'output del comando nel campo password all'interno dei tag <authorize>:

<user-mapping>
        <authorize 
                username="tecmint" 
                password="8383339b9c90775ac14693d8e620981f" 
                encoding="md5">
                <connection name="RHEL 8">
                        <protocol>ssh</protocol>
                        <param name="hostname">192.168.0.18</param>
                        <param name="port">22</param>
                        <param name="username">gacanepa</param>
                </connection>
                <connection name="Windows 10">
                        <protocol>rdp</protocol>
                        <param name="hostname">192.168.0.19</param>
                        <param name="port">3389</param>
                </connection>
        </authorize>
</user-mapping>

Come nel caso di tutti i file che contengono informazioni sensibili, è importante limitare i permessi e modificare la proprietà del file user-mapping.xml:

sudo chmod 600 /etc/guacamole/user-mapping.xml
sudo chown tomcat:tomcat /etc/guacamole/user-mapping.xml

Avvia Tomcat e guacd.

sudo service tomcat9 start
sudo /usr/local/sbin/guacd &

Avvio dell'interfaccia Web Guacamole

8. Per accedere all'interfaccia web di Guacamole, avvia un browser e puntalo su http://server:8080/guacamole dove il server è il nome host o l'indirizzo IP del tuo server (nel nostro caso è http://192.168.0.100:8080/guacamole) e accedi con le credenziali fornite in precedenza (nome utente: tecmint, password: tecmint01):

9. Dopo aver fatto clic su Accedi, verrai indirizzato all'interfaccia amministrativa dove vedrai l'elenco delle connessioni a cui l'utente tecmint ha accesso, come da user- mappatura.xml:

10. Vai avanti e fai clic sulla casella RHEL 8 per accedere come gacanepa (il nome utente specificato nella definizione della connessione).

Nota come la fonte di connessione è impostata su 192.168.0.100 (l'IP del server Guacamole), indipendentemente dall'indirizzo IP della macchina che utilizzi per aprire l'interfaccia web:

11. Se desideri chiudere la connessione, digita esci e premi Invio. Ti verrà richiesto di tornare all'interfaccia principale (Home), riconnetterti o disconnetterti da Guacamole:

12. Ora è il momento di provare la connessione desktop remoto a Windows 10:

Congratulazioni! Ora puoi accedere a un computer Windows 10 e a un server RHEL 8 da un browser web.

Riepilogo

In questo articolo abbiamo spiegato come installare e configurare Guacamole per consentire l'accesso a macchine remote tramite RDP e SSH. Il sito Web ufficiale fornisce un'ampia documentazione per aiutarti a configurare l'accesso utilizzando altri protocolli, come VNC e altri meccanismi di autenticazione, come quelli basati su DB...

Come sempre, non esitate a scriverci se avete domande o suggerimenti su questo articolo. Non vediamo l'ora di ascoltare anche le vostre storie di successo.