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

Inicio de sesión Guacamole

Si es un administrador del sistema y es responsable de administrar máquinas con Windows y Linux, es posible que a menudo necesite un software de cliente de escritorio remoto para administrarlas. Apache Guacamole es una aplicación de escritorio remoto gratuita, de código abierto y basada en la web que le permite acceder a sus máquinas de escritorio a través de un navegador web. Es una aplicación web HTML5 sin cliente que admite protocolos estándar como VNC, RDP y SSH. No necesita instalar un software de cliente o complementos en el servidor. Con Guacamole, puede cambiar fácilmente entre varias máquinas de escritorio remoto con la misma ventana del navegador.

En este tutorial, mostraremos cómo instalar la puerta de enlace de escritorio remoto Apache Guacamole en el servidor Ubuntu 18.04 LTS.

requisitos previos

  • Un servidor con Ubuntu 18.04.
  • Una contrase√Īa de root est√° configurada en su servidor.

Empezando

Antes de comenzar, es una buena idea actualizar el paquete de su sistema a la √ļltima versi√≥n. Puede actualizarlos usando el siguiente comando:

apt-get update -y
apt-get upgrade -y

Una vez que todos los paquetes estén actualizados, reinicie su sistema para aplicar los cambios.

Instalar las dependencias requeridas

Antes de comenzar, deber√° instalar algunas dependencias en su sistema para compilar Guacamole desde la fuente. Puede instalarlos todos usando el siguiente comando:

apt-get install gcc-6 g++-6 libossp-uuid-dev libavcodec-dev libpango1.0-dev libssh2-1-dev libcairo2-dev libjpeg-turbo8-dev libpng-dev libavutil-dev libswscale-dev libfreerdp-dev libvncserver-dev libssl-dev libvorbis-dev libwebp-dev -y

Una vez que todos los paquetes estén instalados, puede continuar con el siguiente paso.

Instalar el servidor Tomcat

A continuación, deberá instalar Tomcat en su servidor para servir el contenido del cliente de guacamole a los usuarios que se conectan al servidor de guacamole a través del navegador web. Puedes instalarlo usando el siguiente comando:

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

Una vez que Tomcat esté instalado, puede continuar con el siguiente paso.

Instalar Servidor Guacamole

Guacamole se divide en dos componentes, guacamole-server, que proporciona el proxy guacd y las bibliotecas relacionadas, y guacamole-client, que proporciona el cliente que ser√° atendido por su servidor Tomcat. De forma predeterminada, Guacamole Server no est√° disponible en el repositorio predeterminado de Ubuntu 18.04. Por lo tanto, deber√° compilarlo desde la fuente.

Primero, descargue la √ļltima versi√≥n de la fuente Guacamole usando el siguiente comando:

wget http://apachemirror.wuchna.com/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 config√ļrelo con el siguiente comando:

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

Una vez que la configuración sea exitosa, debería obtener el siguiente resultado:

   Library status:

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

   Protocol support:

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

   Services / tools:

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

   FreeRDP plugins: no
   Init scripts: /etc/init.d
   Systemd units: no

Type "make" to compile guacamole-server.

A continuación, ejecute el siguiente comando para compilar guacamole-server:

make

Una vez que la compilación se complete con éxito, puede instalarla con el siguiente comando:

make install

Una vez instalado, ejecute el siguiente comando para actualizar el caché de su sistema de bibliotecas instaladas

ldconfig

A continuación, habilite el servicio de Guacamole para que se inicie en el arranque e inícielo con el siguiente comando:

systemctl enable guacd
systemctl start guacd

También puede verificar el estado del servicio de 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 Sat 2020-04-11 14:48:03 UTC; 7s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 28833 ExecStart=/etc/init.d/guacd start (code=exited, status=0/SUCCESS)
    Tasks: 1 (limit: 2359)
   CGroup: /system.slice/guacd.service
           ??28847 /usr/local/sbin/guacd -p /var/run/guacd.pid

Apr 11 14:48:03 ubuntu1804 systemd[1]: Starting LSB: Guacamole proxy daemon...
Apr 11 14:48:03 ubuntu1804 guacd[28834]: Guacamole proxy daemon (guacd) version 1.1.0 started
Apr 11 14:48:03 ubuntu1804 guacd[28833]: Starting guacd: guacd[28834]: INFO:        Guacamole proxy daemon (guacd) version 1.1.0 started
Apr 11 14:48:03 ubuntu1804 guacd[28833]: SUCCESS
Apr 11 14:48:03 ubuntu1804 systemd[1]: Started LSB: Guacamole proxy daemon.
Apr 11 14:48:03 ubuntu1804 guacd[28847]: Listening on host 127.0.0.1, port 4822

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 archivo binario de Guacamole con el siguiente comando:

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

Una vez completada la descarga, cópiela en el directorio /etc/guacamole:

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/tomcat8/webapps/

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

systemctl restart tomcat8
systemctl restart guacd

Configurar Guacamole

Después de instalar Guacamole, 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. Luego, crea un directorio lib y extensiones con el siguiente comando:

mkdir /etc/guacamole/{extensions,lib}

A continuación, la variable de entorno del directorio de inicio de guacamole en el archivo de configuración predeterminado de tomcat8.

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

El método de autenticación predeterminado de Guacamole lee todos los usuarios y conexiones desde un solo archivo llamado user-mapping.xml. Este archivo definirá el usuario autorizado para acceder a la interfaz de usuario web de Guacamole, los servidores a los que conectarse y el método de conexión.

Primero, genera hash md5 para la contrase√Īa con el siguiente comando:

echo -n yoursecurepassword | openssl md5

Deberías obtener el siguiente resultado:

(stdin)= 55b38b03e7587a45fd886977842ff9b8

Nota: Recuerde este hash, deber√° especificarlo 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

Agregue las siguientes líneas:

<user-mapping>
    <authorize 
            username="admin"
            password="55b38b03e7587a45fd886977842ff9b8"
            encoding="md5">

        <connection name="Ubuntu-Server">
            <protocol>ssh</protocol>
            <param name="hostname">192.168.0.150</param>
            <param name="port">22<param>
            <param name="username">root</param>
        </connection>
        <connection name="Windows Server">
            <protocol>rdp</protocol>
            <param name="hostname">192.168.0.100</param>
            <param name="port">3389</param>
        </connection>
    </authorize>
</user-mapping>

Guarde y cierre el archivo cuando haya terminado. Luego, reinicie el servicio Tomcat y Guacamole para aplicar los cambios:

systemctl restart tomcat8
systemctl restart guacd

Acceda a la interfaz web de Guacamole

En este punto, el servidor Guacamole está instalado y configurado. Ahora, es el momento de acceder a él a través de un navegador web.

Abra su navegador web y escriba la URL http://your-server-ip:8080/guacamole/. Será redirigido a la página de inicio de sesión de Apache Guacamole:

Inicio de sesión Guacamole

Proporcione el nombre de usuario y la contrase√Īa que ha especificado en el archivo user-mapping.xml y haga clic en el Acceso bot√≥n. Deber√≠a ver el panel predeterminado de Apache Guacamole con todas las conexiones:

Conexiones recientes

Ahora, haga clic en Ubuntu-Server y se le pedir√° que ingrese la contrase√Īa para el usuario que defini√≥ en user-mapping.xml como se muestra a continuaci√≥n:

Iniciar sesión

Proporcione la contrase√Īa de los usuarios de su sistema y presione Ingresar. Iniciar√° sesi√≥n en Ubuntu-Server como se muestra a continuaci√≥n:

Sesión iniciada con éxito en el servidor

Configurar Nginx como proxy inverso para guacamole

A continuación, deberá configurar Nginx como proxy inverso para acceder al panel de control de Guacamole. Primero, instale el servidor web Nginx usando el siguiente comando:

apt-get install nginx -y

Una vez instalado, cree un nuevo archivo de configuración de host virtual 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, compruebe si hay alg√ļn error de sintaxis en Nginx con el siguiente comando:

nginx -t

Deberías obtener el siguiente resultado:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Finalmente, reinicie el servicio Nginx para aplicar los cambios:

systemctl restart nginx

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

Conclusión

¡Felicidades! ha instalado con éxito la puerta de enlace de escritorio remoto Guacamole en el servidor Ubuntu 18.04. Ahora puede agregar otro servidor remoto que desee administrar de forma remota a través de un navegador web.

Deja una respuesta

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