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
- 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.
Cómo empezar
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 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, compila e instala Guacamole Server ejecutando el siguiente comando:
make
make install
A continuación, ejecute el siguiente comando para actualizar la caché de su sistema de bibliotecas instaladas:
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:
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. Puede 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.
Acceder 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:
Proporcione el nombre de usuario y la contraseña que definió en el user-mapping.xml y haga clic en Iniciar sesión botón. Debería ver el tablero de Guacamole en la siguiente página:
Ahora, haga clic en Ubuntu20.04-Server 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:
Proporcione la contraseña raíz de su servidor Ubuntu y presione Enter . Iniciará sesión en el servidor de Ubuntu como se muestra a continuación:
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.