Cómo instalar el cliente de escritorio remoto Guacamole basado en la web en Ubuntu 20.04 LTS

Inicio de sesión de guacamole

Guacamole es un panel de control de escritorio remoto gratuito, de c√≥digo abierto y basado en la web que se utiliza para administrar sistemas Linux y Windows desde el navegador web. Admite protocolos est√°ndar como VNC, RDP, SSH y Kubernetes, y no necesita instalar ning√ļn software en la computadora del cliente. Admite portapapeles, transferencia de archivos a trav√©s de SFTP y le permite administrar m√ļltiples sesiones de escritorio remoto.

En este tutorial, le mostraremos cómo instalar y configurar el cliente de escritorio remoto Guacamole en el servidor Ubuntu 20.04.

requisitos previos

  • Un servidor con Ubuntu 20.04 con un m√≠nimo de 2 GB de RAM.
  • Se configura una contrase√Īa de root en el servidor.

Empezando

Primero, deber√° actualizar su sistema a la √ļltima versi√≥n estable. Puede hacer esto actualizando todos los paquetes del sistema usando el siguiente comando:

apt-get update -y

Una vez que su sistema esté actualizado, reinícielo para aplicar los cambios.

Instalar dependencias requeridas

Primero, deber√° instalar algunas dependencias en su servidor para compilar el Guacamole desde la fuente. Puede instalarlos todos con el siguiente comando:

apt-get install make gcc g++ libcairo2-dev libjpeg-turbo8-dev libpng-dev libtool-bin libossp-uuid-dev libavcodec-dev libavutil-dev libswscale-dev freerdp2-dev libpango1.0-dev libssh2-1-dev libvncserver-dev libtelnet-dev libssl-dev libvorbis-dev libwebp-dev -y

Una vez que todas las dependencias estén instaladas, puede continuar con el siguiente paso.

Instalar el servidor Tomcat

Guacamole usa Tomcat para brindar contenido de cliente de guacamole a los usuarios que se conectan al servidor de guacamole a través del navegador web. Entonces, el servidor Tomcat debe estar instalado en su servidor. Si no está instalado, puede instalarlo con el siguiente comando:

apt-get install tomcat9 tomcat9-admin tomcat9-common tomcat9-user -y

Después de instalar el servidor Tomcat, inicie el servicio Tomcat y habilítelo para que se inicie al reiniciar el sistema con el siguiente comando:

systemctl start tomcat9
systemctl enable tomcat9

También puede verificar el estado del servicio Tomcat con el siguiente comando:

systemctl status tomcat9

Deberías obtener el siguiente resultado:

? tomcat9.service - Apache Tomcat 9 Web Application Server
     Loaded: loaded (/lib/systemd/system/tomcat9.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2020-08-25 14:48:50 UTC; 29min ago
       Docs: https://tomcat.apache.org/tomcat-9.0-doc/index.html
    Process: 27982 ExecStartPre=/usr/libexec/tomcat9/tomcat-update-policy.sh (code=exited, status=0/SUCCESS)
   Main PID: 27990 (java)
      Tasks: 38 (limit: 4691)
     Memory: 241.5M
     CGroup: /system.slice/tomcat9.service
             ??27990 /usr/lib/jvm/default-java/bin/java -Djava.util.logging.config.file=/var/lib/tomcat9/conf/logging.properties -Djava.util.l>

Una vez que haya terminado, puede continuar con el siguiente paso.

Instalar Guacamole

De forma predeterminada, el paquete Guacamole no est√° disponible en el repositorio predeterminado de Ubuntu 20.04. Por lo tanto, deber√° compilarlo desde la fuente.

Primero, descargue la √ļltima versi√≥n de Guacamole del sitio web de Apache usando el siguiente comando:

wget https://downloads.apache.org/guacamole/1.1.0/source/guacamole-server-1.1.0.tar.gz

Una vez que se complete la descarga, extraiga el archivo descargado con el siguiente comando:

tar -xvzf guacamole-server-1.1.0.tar.gz

A continuación, cambie el directorio al directorio extraído y ejecute el script de configuración para verificar si falta o no alguna dependencia requerida:

cd guacamole-server-1.1.0
./configure --with-init-dir=/etc/init.d

Si todo está bien, debería ver el siguiente resultado:

     freerdp2 ............ yes
     pango ............... yes
     libavcodec .......... yes
     libavutil ........... yes
     libssh2 ............. yes
     libssl .............. yes
     libswscale .......... yes
     libtelnet ........... yes
     libVNCServer ........ yes
     libvorbis ........... yes
     libpulse ............ no
     libwebsockets ....... no
     libwebp ............. yes
     wsock32 ............. no

   Protocol support:

      Kubernetes .... no
      RDP ........... yes
      SSH ........... yes
      Telnet ........ yes
      VNC ........... yes

   Services / tools:

      guacd ...... yes
      guacenc .... yes
      guaclog .... yes

   FreeRDP plugins: /usr/lib/x86_64-linux-gnu/freerdp2
   Init scripts: /etc/init.d
   Systemd units: no

Type "make" to compile guacamole-server.

Ahora, compile e instale Guacamole Server ejecutando el siguiente comando:

make
make install

A continuación, ejecute el siguiente comando para actualizar la memoria caché de las bibliotecas instaladas de su sistema:

ldconfig

Luego, habilite e inicie el servicio Guacamole usando el siguiente comando

systemctl enable guacd
systemctl start guacd

Ahora puede verificar el estado del servicio Guacamole con el siguiente comando:

systemctl status guacd

Deberías obtener el siguiente resultado:

? guacd.service - LSB: Guacamole proxy daemon
     Loaded: loaded (/etc/init.d/guacd; generated)
     Active: active (running) since Tue 2020-08-25 12:02:26 UTC; 4s ago
       Docs: man:systemd-sysv-generator(8)
    Process: 27536 ExecStart=/etc/init.d/guacd start (code=exited, status=0/SUCCESS)
      Tasks: 1 (limit: 4691)
     Memory: 10.1M
     CGroup: /system.slice/guacd.service
             ??27555 /usr/local/sbin/guacd -p /var/run/guacd.pid

Aug 25 12:02:26 ubuntu2004 systemd[1]: Starting LSB: Guacamole proxy daemon...
Aug 25 12:02:26 ubuntu2004 guacd[27551]: Guacamole proxy daemon (guacd) version 1.1.0 started
Aug 25 12:02:26 ubuntu2004 guacd[27536]: Starting guacd:
Aug 25 12:02:26 ubuntu2004 guacd[27551]: Starting guacd:
Aug 25 12:02:26 ubuntu2004 guacd[27551]: uacd[27551]: INFO:        Guacamole proxy daemon (guacd) versio
Aug 25 12:02:26 ubuntu2004 systemd[1]: Started LSB: Guacamole proxy daemon.
Aug 25 12:02:26 ubuntu2004 guacd[27555]: Listening on host 127.0.0.1, port 4822
Aug 25 12:02:26 ubuntu2004 guacd[27536]: uacd[275

Una vez que haya terminado, puede continuar con el siguiente paso.

Instalar Cliente Guacamole

A continuación, deberá instalar el cliente Guacamole en su servidor. El cliente Guacamole está escrito en Java y es multiplataforma. Esto constituirá la aplicación HTML5 final que se le presentará.

Primero, descargue el binario Guacamole usando el siguiente comando:

wget https://mirrors.estointernet.in/apache/guacamole/1.1.0/binary/guacamole-1.1.0.war

Después de descargar el binario Guacamole, cópielo en el directorio /etc/guacamole usando el siguiente comando:Publicidad

mkdir /etc/guacamole
mv guacamole-1.1.0.war /etc/guacamole/guacamole.war

A continuación, cree un enlace simbólico del cliente guacamole al directorio de aplicaciones web de Tomcat con el siguiente comando:

ln -s /etc/guacamole/guacamole.war /var/lib/tomcat9/webapps/

Finalmente, reinicie el servicio Tomcat y Guacamole para implementar la nueva aplicación web:

systemctl restart tomcat9
systemctl restart guacd

Una vez que haya terminado, puede continuar con el siguiente paso.

Configurar Guacamole

A continuación, debe configurar los usuarios y las conexiones para que Guacamole funcione correctamente.

Primero, cree un archivo de configuración principal de Guacamole llamado guacamole.properties.

nano /etc/guacamole/guacamole.properties

Agregue las siguientes líneas:

guacd-hostname: localhost
guacd-port:    4822
user-mapping:    /etc/guacamole/user-mapping.xml

Guarde y cierre el archivo cuando haya terminado.

A continuación, deberá crear directorios para la biblioteca y la extensión. Puedes crearlos con el siguiente comando:

mkdir /etc/guacamole/{extensions,lib}

A continuación, configure la variable de entorno del directorio de inicio de guacamole y agréguela al archivo de configuración /etc/default/tomcat9.

echo "GUACAMOLE_HOME=/etc/guacamole" >> /etc/default/tomcat9

A continuación, deberá crear un archivo llamado user-mapping.xml para definir el usuario autorizado para acceder a la interfaz de usuario web de Guacamole.

Antes de crearlo, genera hash md5 para la contrase√Īa con el siguiente comando:

echo -n yoursecurepassword | openssl md5

Debería ver el siguiente resultado:

(stdin)= 55b38b03e7587a45fd886977842ff9b8

Nota : Recuerde la contrase√Īa md5 anterior. Deber√° definir esto en el archivo user-mapping.xml.

A continuación, cree un nuevo user-mapping.xml con el siguiente comando:

nano /etc/guacamole/user-mapping.xml
<user-mapping>
    <authorize 
            username="admin"
            password="55b38b03e7587a45fd886977842ff9b8"
            encoding="md5">

        <connection name="Ubuntu20.04-Server">
            <protocol>ssh</protocol>
            <param name="hostname">192.168.10.50</param>
            <param name="port">22</param>
            <param name="username">root</param>
        </connection>
        <connection name="Windows Server">
            <protocol>rdp</protocol>
            <param name="hostname">192.168.10.51</param>
            <param name="port">3389</param>
        </connection>
    </authorize>
</user-mapping>

Guarde y cierre el archivo cuando haya terminado.

Dónde:

  • 192.168.10.50 es la direcci√≥n IP del servidor Ubuntu remoto.
  • 192.168.10.51 es la direcci√≥n IP del servidor de Windows eliminado.

A continuación, reinicie el servicio Tomcat y Guacamole para aplicar los cambios:

systemctl restart tomcat9
systemctl restart guacd

En este punto, el servidor y el cliente de Guacamole se han instalado y configurado.

Acceda a la interfaz web de Guacamole

Ahora, abra su navegador web y acceda a la interfaz web de Guacamole usando la URL http://your-server-ip:8080/guacamole. Será redirigido a la página de inicio de sesión de Guacamole:

Inicio de sesión de guacamole

Proporcione el nombre de usuario y la contrase√Īa que defini√≥ en el asignaci√≥n de usuario.xml archivo y haga clic en el Acceso bot√≥n. Deber√≠a ver el tablero de Guacamole en la siguiente p√°gina:

Tablero de guacamole

Ahora, haga clic en el Servidor Ubuntu20.04 para conectar el servidor remoto utilizando el protocolo SSH. Debería ver la pantalla de inicio de sesión del servidor Ubuntu como se muestra a continuación:

Inicio de sesión remoto de guacamole

Proporcione la contrase√Īa ra√≠z de su servidor Ubuntu y presione Ingresar. Iniciar√° sesi√≥n en el servidor de Ubuntu como se muestra a continuaci√≥n:

Inicio de sesión de Shell a través de guacamole

Configurar Nginx para Guacamole

Se recomienda configurar el Nginx como proxy inverso para acceder al Guacamole a través del puerto 80.

Primero, instale el servidor web Nginx usando el siguiente comando:

apt-get install nginx -y

Después de instalar Nginx, cree un nuevo archivo de configuración de host virtual de Nginx:

nano /etc/nginx/sites-available/guacamole.conf

Agregue las siguientes líneas:

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/ /;
        }

}

Guarde y cierre el archivo cuando haya terminado. Luego, habilite el host virtual Nginx con el siguiente comando:

ln -s /etc/nginx/sites-available/guacamole.conf /etc/nginx/sites-enabled/

A continuación, reinicie el servicio Nginx para aplicar los cambios de configuración:

systemctl restart nginx

Ahora, puede acceder a su Guacamole usando la URL http://your-server-ip.

Conclusión

¡Felicidades! Ha instalado y configurado con éxito el cliente de escritorio remoto Guacamole en el servidor Ubuntu 20.04. Ahora puede agregar más conexiones RDP o VNC a su Guacamole y comenzar a administrarlas desde la interfaz basada en la web.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *