Cómo instalar el cliente de escritorio remoto Guacamole basado en la web en Ubuntu 18.04 LTS
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:
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:
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:
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:
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.