Instal·leu Guacamole per a l'accés remot a Linux/Windows a Ubuntu


Com a administrador del sistema, és possible que us trobeu (avui o en el futur) treballant en un entorn on coexisteixen Windows i Linux.

No és cap secret que algunes grans empreses prefereixen (o han de) executar alguns dels seus serveis de producció en caixes de Windows i altres en servidors Linux.

[També us pot agradar: 11 millors eines per accedir a l'escriptori Linux remot]

Si aquest és el vostre cas, donareu la benvinguda a aquesta guia amb els braços oberts (en cas contrari, seguiu endavant i, almenys, assegureu-vos d'afegir-la als vostres marcadors).

En aquest article, us presentarem el guacamole, una passarel·la d'escriptori remota impulsada per Tomcat que només s'ha d'instal·lar en un servidor central.

[També us pot agradar: Com accedir a l'escriptori Linux remot mitjançant TightVNC]

Guacamole proporcionarà un tauler de control basat en web que us permetrà canviar ràpidament d'una màquina a una altra, tot dins de la mateixa finestra del navegador web.

En aquest article, hem utilitzat les següents màquines. Instal·larem Guacamole en una caixa Ubuntu i l'utilitzarem per accedir a una caixa de Windows 10 mitjançant el protocol d'escriptori remot (RDP) i una caixa RHEL mitjançant el protocol de xarxa 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

Dit això, comencem.

Instal·lació del servidor Guacamole a Ubuntu

1. Abans d'instal·lar el guacamole, primer hauràs de tenir cura de les seves dependències.

$ 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. Baixeu i extreu el fitxer tarball. A principis de febrer de 2021, l'última versió de Guacamole és la 1.3.0. Podeu consultar la pàgina de descàrregues de Guacamole per conèixer l'última versió en un moment determinat.

$ 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. Compileu el programari.

$ cd guacamole-server-1.3.0/
$ ./configure

Com és d'esperar, configure comprovarà al vostre sistema la presència de les dependències necessàries i els protocols de comunicació admesos (com es pot veure al quadrat ressaltat, el protocol d'escriptori remot (RDP) i SSH són compatibles amb les dependències instal·lades anteriorment) .

Si tot va com s'esperava, hauríeu de veure això quan es completi (en cas contrari, assegureu-vos d'instal·lar totes les dependències necessàries):

Com suggereix l'última línia de la imatge anterior, executeu make i make install per compilar el programa:

$ make 
$ sudo make install

4. Actualitzeu la memòria cau de les biblioteques instal·lades.

$ sudo ldconfig 

i premeu Enter.

Instal·lació del client Guacamole a Ubuntu

Després de completar els passos anteriors, el servidor de guacamole s'haurà instal·lat. Les instruccions següents us ajudaran ara a configurar guacd (el dimoni proxy que integra Javascript amb protocols de comunicació com RDP o SSH) i guacamole.war (el client), el component que conforma l'aplicació HTML5 final que es presentarà a vostè.

Tingueu en compte que els dos components (servidor i client de guacamole) s'han d'instal·lar a la mateixa màquina; no cal instal·lar l'anomenat client a les màquines a les quals us voleu connectar).

Per descarregar el client, seguiu aquests passos:

5. Baixeu l'arxiu de l'aplicació web i canvieu-ne el nom a guacamole.war.

Nota: depenent de la vostra distribució, el directori de biblioteques Tomcat es pot trobar a /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. Creeu el fitxer de configuració (/etc/guacamole/guacamole.properties). Aquest fitxer conté les instruccions perquè Guacamole es connecti a guacd:

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

Inseriu el contingut següent a /etc/guacamole/guacamole.properties. Tingueu en compte que estem fent referència a un fitxer que crearem al següent pas (/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

I creeu un enllaç simbòlic perquè Tomcat pugui llegir el fitxer:

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

7. Guacamole utilitza user-mapping.xml, creeu aquest fitxer per definir quins usuaris poden autenticar-se a la interfície web de Guacamole (entre les etiquetes <authorize>) i quines connexions poden utilitzar (entre < etiquetes):

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

El mapa d'usuari següent concedeix accés a la interfície web de Guacamole a un usuari tecmint amb la contrasenya tecmint01. Aleshores, dins de la connexió SSH, hem de col·locar un nom d'usuari vàlid per iniciar sessió al quadre RHEL (se't demanarà que introduïu la contrasenya corresponent quan Guacamole iniciï la connexió).

En el cas del quadre de Windows 10, no cal fer-ho, ja que se'ns presentarà la pantalla d'inici de sessió mitjançant RDP.

Per obtenir el hash md5 de la contrasenya tecmint01, escriviu l'ordre següent:

# printf '%s' "tecmint01" | md5sum

A continuació, inseriu la sortida de l'ordre al camp de la contrasenya dins de les etiquetes <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>

Com passa amb tots els fitxers que contenen informació sensible, és important restringir els permisos i canviar la propietat del fitxer user-mapping.xml:

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

Comença Tomcat i guacd.

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

Llançament de la interfície web Guacamole

8. Per accedir a la interfície web de Guacamole, inicieu un navegador i apunteu-lo a http://server:8080/guacamole on el servidor és el nom d'amfitrió o l'adreça IP del vostre servidor (en el nostre cas és http://192.168.0.100:8080/guacamole) i inicieu sessió amb les credencials proporcionades anteriorment (nom d'usuari: tecmint, contrasenya: tecmint01):

9. Després de fer clic a Inici de sessió, se us dirigirà a la interfície administrativa on veureu la llista de connexions a les quals l'usuari tecmint té accés, segons user-mapping.xml:

10. Seguiu endavant i feu clic a la casella RHEL 8 per iniciar sessió com a gacanepa (el nom d'usuari especificat a la definició de connexió).

Tingueu en compte com la font de connexió s'estableix a 192.168.0.100 (la IP del servidor Guacamole), independentment de l'adreça IP de la màquina que utilitzeu per obrir la interfície web:

11. Si voleu tancar la connexió, escriviu exit i premeu Enter. Se us demanarà que torneu a la interfície principal (Inici), que us torneu a connectar o que tanqueu la sessió de Guacamole:

12. Ara és el moment de provar la connexió de l'escriptori remot a Windows 10:

Felicitats! Ara podeu accedir a una màquina Windows 10 i a un servidor RHEL 8 des d'un navegador web.

Resum

En aquest article, hem explicat com instal·lar i configurar Guacamole per permetre l'accés a màquines remotes mitjançant RDP i SSH. El lloc web oficial ofereix una àmplia documentació per ajudar-vos a configurar l'accés mitjançant altres protocols, com ara VNC i altres mecanismes d'autenticació, com ara basats en DB...

Com sempre, no dubteu a enviar-nos una nota si teniu cap pregunta o suggeriment sobre aquest article. També esperem escoltar les vostres històries d'èxit.