Cómo instalar y utilizar el escritorio remoto de Apache Guacamole en Rocky Linux 8
Apache Guacamole es una pasarela de escritorio remoto gratuita, de código abierto y sin clientes. Soporta protocolos estándar como SSH, RDP y VNC. No necesita plugins ni clientes de terceros para funcionar. Puedes acceder a tu máquina mediante una pasarela basada en la web. Se puede poner detrás de un servidor proxy que te permita acceder a tus servidores desde cualquier parte del mundo.
Guacamole está formado por dos componentes:
guacamole-server
contiene todos los componentes nativos, del lado del servidor, necesarios para que Guacamole se conecte a los escritorios remotos.guacd
es el demonio proxy que se ejecuta en el servidor de Guacamole, acepta las conexiones de los usuarios y los conecta a los escritorios remotos.guacamole-client
contiene todos los componentes Java y Javascript de Guacamole que conforman la aplicación web donde los usuarios pueden conectarse a sus escritorios.
En este tutorial, aprenderás a instalar y utilizar Apache Guacamole en un servidor basado en Rocky Linux 8. También aprenderás a utilizarlo para conectarte a un escritorio remoto. Instalaremos Guacamole construyendo desde su código fuente.
Requisitos previos
-
Un servidor con Rocky Linux 8 con un mínimo de 2GB de RAM y 2 núcleos de CPU.
-
Un nombre de dominio para el servicio de asistencia que apunte al servidor. Para nuestro tutorial, utilizaremos el dominio
uvdesk.example.com
. -
Un usuario no root con privilegios sudo.
-
Asegúrate de que todo está actualizado.
$ sudo dnf update
-
Instala los paquetes de utilidades básicas. Es posible que algunos de ellos ya estén instalados.
$ sudo dnf install wget curl nano unzip yum-utils -y
Paso 1 – Configurar el cortafuegos
El primer paso es configurar el cortafuegos. Rocky Linux utiliza el cortafuegos Firewalld. Comprueba el estado del cortafuegos.
$ sudo firewall-cmd --state running
El cortafuegos funciona con diferentes zonas, y la zona pública es la que utilizaremos por defecto. Enumera todos los servicios y puertos activos en el cortafuegos.
$ sudo firewall-cmd --permanent --list-services
Debería mostrar el siguiente resultado.
cockpit dhcpv6-client ssh
Permite los puertos HTTP y HTTPS.
$ sudo firewall-cmd --permanent --add-service=http $ sudo firewall-cmd --permanent --add-service=https
Vuelve a comprobar el estado del cortafuegos.
$ sudo firewall-cmd --permanent --list-services
Deberías ver una salida similar.
cockpit dhcpv6-client http https ssh
Recarga el cortafuegos para activar los cambios.
$ sudo firewall-cmd --reload
Paso 2 – Instalar las bibliotecas
Antes de instalar las librerías, tenemos que instalar el repositorio EPEL y habilitar el repositorio PowerTools.
$ sudo dnf install epel-release -y $ sudo dnf config-manager --set-enabled powertools
El primer paso es instalar las bibliotecas necesarias para construir Guacamole. Instala las bibliotecas necesarias.
$ sudo dnf install cairo-devel libjpeg-turbo-devel libjpeg-devel libpng-devel libtool libuuid-devel uuid-devel make cmake
Las dependencias anteriores son obligatorias, lo que significa que sin ellas no se puede construir Guacamole. Puedes instalar algunas dependencias opcionales para añadir compatibilidad con diversos protocolos y funciones.
Pero antes, debes habilitar el repositorio gratuito RPMFusion porque contiene el paquete ffmpeg-devel
.
$ sudo dnf install --nogpgcheck https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm
Instala las dependencias opcionales.
$ sudo dnf install ffmpeg-devel freerdp-devel pango-devel libssh2-devel libtelnet-devel libvncserver-devel libwebsockets-devel pulseaudio-libs-devel openssl-devel compat-openssl10 libvorbis-devel libwebp-devel libgcrypt-devel
Paso 3 – Instalar Apache Tomcat
Para nuestro tutorial, instalaremos Apache Tomcat 9, que requiere Java 8 y posteriores para funcionar.
Instalar Java
Instalaremos OpenJDK 11, la implementación de código abierto de la plataforma Java.
Ejecuta el siguiente comando para instalar OpenJDK.
$ sudo dnf install java-11-openjdk-devel
Verifica la instalación.
$ java -version openjdk 11.0.14 2022-01-18 LTS OpenJDK Runtime Environment 18.9 (build 11.0.14+9-LTS) OpenJDK 64-Bit Server VM 18.9 (build 11.0.14+9-LTS, mixed mode, sharing)
Crea un usuario para Tomcat
A continuación, crea un usuario para el servicio Tomcat. Estableceremos /opt/tomcat
como directorio de inicio.
$ sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat
Descarga Tomcat
La última versión de Tomcat v10 puede descargarse desde su página de descargas. En el momento de escribir este tutorial, la v9.0.59 es la última versión disponible. Comprueba la última versión antes de descargar Tomcat.
Utiliza wget
para descargar Tomcat.
$ TVERSION=9.0.59 $ wget https://dlcdn.apache.org/tomcat/tomcat-9/v${TVERSION}/bin/apache-tomcat-${TVERSION}.tar.gz
Extrae el archivo al directorio /opt/tomcat
.
$ sudo tar -xf apache-tomcat-${TVERSION}.tar.gz --strip-components=1 -C /opt/tomcat/
Cambia la propiedad del directorio al usuario de Tomcat.
$ sudo chown -R tomcat:tomcat /opt/tomcat
Crea un archivo de unidad Systemd e inicia Tomcat
Crea y abre el archivo /etc/systemd/system/tomcat.service
para editarlo.
$ sudo nano /etc/systemd/system/tomcat.service
Pega el siguiente código.
[Unit] Description=Apache Tomcat 9 Servlet container Wants=network.target After=network.target [Service] Type=forking User=tomcat Group=tomcat Environment="JAVA_HOME=/usr/lib/jvm/jre" Environment="JAVA_OPTS=-Djava.awt.headless=true" Environment="CATALINA_BASE=/opt/tomcat" Environment="CATALINA_HOME=/opt/tomcat" Environment="CATALINA_PID=/opt/tomcat/temp/tomcat.pid" Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC" ExecStart=/opt/tomcat/bin/startup.sh ExecStop=/opt/tomcat/bin/shutdown.sh Restart=always [Install] WantedBy=multi-user.target
Guarda el archivo pulsando Ctrl + X e introduciendo Y cuando se te pida que lo guardes.
Recarga el demonio de servicio para habilitar el servicio Tomcat.
$ sudo systemctl daemon-reload
Habilita e inicia el servicio Tomcat.
$ sudo systemctl enable tomcat --now
Comprueba el estado del servicio.
$ sudo systemctl status tomcat ? tomcat.service - Apache Tomcat 9 Servlet container Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2022-03-09 09:48:38 UTC; 8s ago Process: 25308 ExecStart=/opt/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS) Main PID: 25315 (java) Tasks: 29 (limit: 11412) Memory: 154.9M CGroup: /system.slice/tomcat.service ??25315 /usr/lib/jvm/jre/bin/java -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties .. Mar 09 09:48:38 guacamole systemd[1]: Starting Apache Tomcat 9 Servlet container... Mar 09 09:48:38 guacamole systemd[1]: Started Apache Tomcat 9 Servlet container.
Paso 4 – Descarga y construye Guacamole
Puedes obtener la última versión estable de Guacamole en su sitio web. En el momento de escribir este tutorial, la última versión disponible era la 1.4.0. Descarga el código fuente de Guacamole.
$ GVERSION=1.4.0 $ wget https://downloads.apache.org/guacamole/${GVERSION}/source/guacamole-server-${GVERSION}.tar.gz
Extrae el archivo y cambia al directorio recién creado.
$ tar -xzf guacamole-server-${GVERSION}.tar.gz $ cd guacamole-server-${GVERSION}/
Ejecuta el comando configure
para determinar qué bibliotecas están disponibles y para seleccionar los componentes que se van a construir.
$ ./configure --with-systemd-dir=/etc/systemd/system/
El directorio /etc/systemd/system/
es donde se instalará el script de inicio durante el proceso de construcción para configurar Guacamole para que se inicie automáticamente al arrancar.
Obtendrás la siguiente salida al finalizar con éxito.
checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes ... ------------------------------------------------ guacamole-server version 1.4.0 ------------------------------------------------ Library status: freerdp2 ............ yes pango ............... yes libavcodec .......... yes libavformat.......... yes libavutil ........... yes libssh2 ............. yes libssl .............. yes libswscale .......... yes libtelnet ........... yes libVNCServer ........ yes libvorbis ........... yes libpulse ............ yes libwebsockets ....... yes libwebp ............. yes wsock32 ............. no Protocol support: Kubernetes .... yes RDP ........... yes SSH ........... yes Telnet ........ yes VNC ........... yes Services / tools: guacd ...... yes guacenc .... yes guaclog .... yes FreeRDP plugins: /usr/lib64/freerdp2 Init scripts: no Systemd units: /etc/systemd/system/ Type "make" to compile guacamole-server.
Si no tienes instaladas algunas bibliotecas, verás no
en lugar de yes
en la salida. Pero si falta una biblioteca crítica, el comando fallará. Para comprobar más opciones de configuración, ejecuta el comando ./configure --help
.
Compila e instala el servidor Guacamole utilizando los siguientes comandos.
$ make && sudo make install
Ejecuta el siguiente comando para actualizar la caché del sistema de las bibliotecas instaladas.
$ sudo ldconfig
Recarga el demonio de servicio.
$ sudo systemctl daemon-reload
Activa e inicia el servicio Guacamole.
$ sudo systemctl enable guacd --now
Comprueba el estado del servicio.
$ sudo systemctl status guacd ? guacd.service - Guacamole Server Loaded: loaded (/etc/systemd/system/guacd.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2022-03-10 09:13:41 UTC; 7s ago Docs: man:guacd(8) Main PID: 85349 (guacd) Tasks: 1 (limit: 11181) Memory: 10.8M CGroup: /system.slice/guacd.service ??85349 /usr/local/sbin/guacd -f Mar 10 09:13:41 guacamole systemd[1]: Started Guacamole Server. Mar 10 09:13:41 guacamole guacd[85349]: Guacamole proxy daemon (guacd) version 1.4.0 started Mar 10 09:13:41 guacamole guacd[85349]: guacd[85349]: INFO: Guacamole proxy daemon (guacd) version 1.4.0 started Mar 10 09:13:41 guacamole guacd[85349]: guacd[85349]: INFO: Listening on host ::1, port 4822 Mar 10 09:13:41 guacamole guacd[85349]: Listening on host ::1, port 4822
Paso 5 – Instalar el cliente Guacamole
Ahora que has instalado el servidor, el siguiente paso es instalar el cliente.
Crea el directorio de configuración de Guacamole.
$ sudo mkdir /etc/guacamole
A diferencia del servidor de Guacamole, el cliente de Guacamole está disponible en forma de código fuente y binario. Para nuestro tutorial, descargaremos el binario. Sin embargo, puedes optar por construir el cliente a partir del código fuente.
Descarga el binario del cliente Guacamole del sitio web.
$ sudo wget https://downloads.apache.org/guacamole/${GVERSION}/binary/guacamole-${GVERSION}.war -O /etc/guacamole/guacamole.war
El comando anterior descarga y copia el archivo binario de Guacamole en el directorio /etc/guacamole
.
Para que el cliente funcione, debe desplegarse desde el directorio de Tomcat, que es $CATALINA_HOME/webapps/
. En el paso 3, establecemos /opt/tomcat
como $CATALINA_HOME
.
Ejecuta el siguiente comando para crear un enlace simbólico desde /etc/guacamole/guacamole.war
al directorio webapps de Tomcat.
$ sudo ln -s /etc/guacamole/guacamole.war /opt/tomcat/webapps/
Cambia el permiso de la aplicación al usuario tomcat
.
$ sudo chown -R tomcat:tomcat /opt/tomcat/webapps
Crea el archivo de configuración de la aplicación web en /etc/guacamole/guacd.conf
.
$ sudo nano /etc/guacamole/guacd.conf
Pega en él el siguiente código. Sustituye your_server_IP
por la dirección IP pública de tu servidor.
# # guacd configuration file # [daemon] #pid_file = /var/run/guacd.pid log_level = info [server] bind_host = your_server_IP bind_port = 4822 # # The following parameters are valid only if # guacd was built with SSL support. # # [ssl] # server_certificate = /etc/ssl/certs/guacd.crt # server_key = /etc/ssl/private/guacd.key
Guarda el archivo pulsando Ctrl + X e introduciendo Y cuando se te pida guardar.
Reinicia el servidor Guacamole y Tomcat para aplicar los cambios.
$ sudo systemctl restart tomcat guacd
Paso 6 – Instalar y configurar MySQL
Apache Guacamole ofrece varios tipos de métodos de autenticación. Para las pruebas, basta con una autenticación simple basada en una contraseña. Pero para entornos de producción, necesitamos implementar un método de autenticación más fuerte y mejor. Aquí implementaremos la autenticación basada en la base de datos utilizando MySQL.
Instala MySQL.
$ sudo dnf install mysql-server
Activa e inicia el servicio MySQL.
$ sudo systemctl enable mysqld --now
Asegurar la instalación de MySQL.
$ sudo mysql_secure_installation
En el primer paso, se te preguntará si quieres configurar el Plugin de Validación de Contraseñas, que puedes utilizar para comprobar la solidez de tu contraseña de MySQL. Elige Y
para proceder. Se te pedirá que elijas el nivel de validación de la contraseña en el siguiente paso. Elige 2
que es el nivel más fuerte y requerirá que tu contraseña tenga al menos ocho caracteres e incluya una mezcla de mayúsculas, minúsculas, números y caracteres especiales.
Securing the MySQL server deployment. Connecting to MySQL using a blank password. VALIDATE PASSWORD COMPONENT can be used to test passwords and improve security. It checks the strength of password and allows the users to set only those passwords which are secure enough. Would you like to setup VALIDATE PASSWORD component? Press y|Y for Yes, any other key for No: Y There are three levels of password validation policy: LOW Length >= 8 MEDIUM Length >= 8, numeric, mixed case, and special characters STRONG Length >= 8, numeric, mixed case, special characters and dictionary file Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2
En el siguiente paso se te pedirá que elijas una contraseña de root. Elige una contraseña fuerte que cumpla los requisitos del plugin de validación de contraseñas. En el siguiente paso, se te preguntará si quieres continuar con la contraseña elegida. Pulsa y
para continuar.
Please set the password for root here. New password: Re-enter new password: Estimated strength of the password: 100 Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : Y
Pulsa Y
y luego ENTER
para todas las siguientes indicaciones para eliminar los usuarios anónimos y la base de datos de prueba, desactivar los inicios de sesión de root y cargar las reglas recién establecidas.
... Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y Success. ... Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y Success. ... Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y - Dropping test database... Success. - Removing privileges on test database... Success. Reloading the privilege tables will ensure that all changes made so far will take effect immediately. ... Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y Success. All done!
Entra en el shell de MySQL. Introduce la contraseña de root para continuar.
$ mysql -u root -p
Crea el usuario guacamole_user
. Asegúrate de que la contraseña cumple los requisitos establecidos anteriormente.
mysql> CREATE USER 'guacamole_user'@'localhost' IDENTIFIED BY 'Your_password2';
Crea la base de datos guacamole_db
.
mysql> CREATE DATABASE guacamole_db;
Concede al usuario privilegios en la base de datos guacamole_db
.
mysql> GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole_db.* TO 'guacamole_user'@'localhost';
Sal de la Shell.
mysql> exit
Paso 7 – Configurar Apache Guacamole
El directorio de configuración de Guacamole está definido por la variable GUACAMOLE_HOME
. Todos los archivos de configuración, extensiones, etc., están en este directorio. El archivo /etc/guacamole/guacamole.properties
almacena todas las configuraciones y ajustes de Guacamole y sus extensiones.
Las extensiones y las bibliotecas requieren directorios adicionales. Créalos.
$ sudo mkdir /etc/guacamole/{extensions,lib}
Establece la variable home de Guacamole y almacénala en el archivo de configuración /etc/default/tomcat
.
$ echo "GUACAMOLE_HOME=/etc/guacamole" | sudo tee -a /etc/default/tomcat
Configurar la autenticación de la base de datos de Apache Guacamole
Ya hemos configurado la base de datos para Guacamole en el paso anterior. Necesitamos descargar el plugin del autentificador JDBC de Guacamole y la biblioteca del Conector Java de MySQL para completar la configuración.
Descarga el plugin Guacamole JDBC de su sitio web.
$ cd ~ $ wget https://downloads.apache.org/guacamole/${GVERSION}/binary/guacamole-auth-jdbc-${GVERSION}.tar.gz
Extrae el plugin al directorio /etc/guacamole/extensions
.
$ tar -xf guacamole-auth-jdbc-${GVERSION}.tar.gz $ sudo mv guacamole-auth-jdbc-${GVERSION}/mysql/guacamole-auth-jdbc-mysql-${GVERSION}.jar /etc/guacamole/extensions/
El siguiente paso es importar el esquema SQL a la base de datos MySQL. Cambia al directorio del plugin extraído.
$ cd guacamole-auth-jdbc-${GVERSION}/mysql/schema
Importa los archivos de esquema en MySQL.
$ cat *.sql | mysql -u root -p guacamole_db
Descarga el Conector Java de MySQL. Coge el archivo comprimido independiente de la plataforma. En el momento de escribir este tutorial, la última versión disponible es la 8.0.28.
$ cd ~ $ wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.28.tar.gz
Extrae el archivo y copia su contenido en el directorio /etc/guacamole/lib
.
$ tar -xf mysql-connector-java-8.0.28.tar.gz $ sudo mv mysql-connector-java-8.0.28/mysql-connector-java-8.0.28.jar /etc/guacamole/lib/
Configura el archivo de propiedades de Guacamole
Crea el archivo /etc/guacamole/guacamole.properties
y ábrelo para editarlo.
$ sudo nano /etc/guacamole/guacamole.properties
Pega en él el siguiente código. Sustituye your_server_ip
por la dirección IP pública de tu servidor.
guacd-hostname: your_server_ip guacd-port: 4822 # MySQL properties mysql-hostname: localhost mysql-database: guacamole_db mysql-username: guacamole_user mysql-password: Your_password2
Guarda el archivo pulsando Ctrl + X e introduciendo Y cuando se te pida que lo guardes.
Vincula el directorio de configuración de Guacamole al directorio de servlets de Tomcat.
$ sudo ln -s /etc/guacamole /opt/tomcat/.guacamole
Reinicia Tomcat para habilitar la autenticación de la base de datos. No necesitas reiniciar guacd
porque es completamente independiente de la aplicación web y no se ocupa de la autenticación de guacamole.properties
o de la base de datos de ninguna manera.
$ sudo systemctl restart tomcat
Paso 8 – Instalar SSL
Para instalar un certificado SSL con Let’s Encrypt, necesitamos instalar la herramienta Certbot. Certbot requiere el repositorio EPEL para la instalación, pero podemos proceder directamente con la instalación puesto que ya lo hemos instalado antes.
Ejecuta los siguientes comandos para instalar Certbot.
$ sudo dnf install certbot
Generar el certificado SSL.
$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d guacamole.example.com
El comando anterior descargará un certificado en el directorio /etc/letsencrypt/live/guacamole.example.com
de tu servidor.
Genera un certificado de grupo Diffie-Hellman.
$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Crea un directorio webroot de desafío para la renovación automática de Let’s Encrypt.
$ sudo mkdir -p /var/lib/letsencrypt
Crea un Cron Job para renovar el SSL. Se ejecutará cada día para comprobar el certificado y renovarlo si es necesario. Para ello, primero crea el archivo /etc/cron.daily/certbot-renew
y ábrelo para editarlo.
$ sudo nano /etc/cron.daily/certbot-renew
Pega el siguiente código.
#!/bin/sh certbot renew --cert-name guacamole.example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"
Guarda el archivo pulsando Ctrl + X e introduciendo Y cuando te lo pida.
Cambia los permisos del archivo de la tarea para que sea ejecutable.
$ sudo chmod +x /etc/cron.daily/certbot-renew
Paso 9 – Instalar y configurar Nginx como proxy inverso
Configurar Tomcat para la conexión de proxy inverso
Antes de instalar Nginx, tenemos que configurar Tomcat para que pase a través de la dirección IP remota proporcionada por el proxy inverso Nginx.
Abre el archivo /opt/tomcat/conf/server.xml
para editarlo.
$ sudo nano /opt/tomcat/conf/server.xml
Localiza la siguiente línea en el archivo.
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
Cambia la línea pegando código adicional debajo de ella, para que tenga el siguiente aspecto.
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Valve className="org.apache.catalina.valves.RemoteIpValve" internalProxies="127.0.0.1" remoteIpHeader="x-forwarded-for" remoteIpProxiesHeader="x-forwarded-by" protocolHeader="x-forwarded-proto" />
Guarda el archivo pulsando Ctrl + X e introduciendo Y cuando te lo pida.
Instalar Nginx
Rocky Linux 8.5 incluye la última versión estable de Nginx. Instálalo con el siguiente comando.
$ sudo dnf module install nginx:1.20
Verifica la instalación.
$ nginx -v nginx version: nginx/1.20.1
Activa el servicio Nginx.
$ sudo systemctl enable nginx
Crea y abre el archivo /etc/nginx/conf.d/guacamole.conf
para editarlo.
$ sudo nano /etc/nginx/conf.d/guacamole.conf
Pega en él el siguiente código.
server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name guacamole.example.com; access_log /var/log/nginx/guacamole.access.log; error_log /var/log/nginx/guacamole.error.log; # SSL ssl_certificate /etc/letsencrypt/live/guacamole.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/guacamole.example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/guacamole.example.com/chain.pem; ssl_session_timeout 5m; ssl_session_cache shared:MozSSL:10m; ssl_session_tickets off; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1; ssl_stapling on; ssl_stapling_verify on; ssl_dhparam /etc/ssl/certs/dhparam.pem; resolver 8.8.8.8; location / { proxy_pass http://127.0.0.1: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; client_max_body_size 1g; access_log off; } } # enforce HTTPS server { listen 80; listen [::]:80; server_name guacamole.example.com; return 301 https://$host$request_uri; }
Guarda el archivo pulsando Ctrl + X e introduciendo Y cuando te lo pida una vez terminado.
Abre el archivo /etc/nginx/nginx.conf
para editarlo.
$ sudo nano /etc/nginx/nginx.conf
Añade la siguiente línea antes de la línea include /etc/nginx/conf.d/*.conf;
.
server_names_hash_bucket_size 64;
Guarda el archivo pulsando Ctrl + X e introduciendo Y cuando se te solicite.
Verifica la sintaxis del archivo de configuración de Nginx.
$ sudo nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Corrige el permiso SELinux para que Nginx pueda realizar conexiones de red.
$ sudo setsebool -P httpd_can_network_connect 1
Inicia el servicio Nginx para habilitar la nueva configuración.
$ sudo systemctl start nginx
Reinicia el servidor Tomcat para aplicar el cambio de configuración.
$ sudo systemctl restart tomcat
Paso 10 – Acceder a Guacamole
Abre la URL https://guacamole.example.com
en tu navegador, y te aparecerá la siguiente pantalla.
Introduce guacadmin
como nombre de usuario y guacadmin
como contraseña, y haz clic en Iniciar sesión para continuar.
Crear un nuevo usuario administrador
Debes crear un nuevo usuario y eliminar el existente por motivos de seguridad. Para ello, haz clic en guacadmin
en la parte superior derecha y haz clic en el menú Configuración del menú desplegable.
Pasa a la pestaña Usuarios y haz clic en el botón Nuevo usuario para empezar.
Introduce tus datos y marca todos los permisos.
Haz clic en Guardar cuando hayas terminado. Cierra la sesión del usuario guacadmin y vuelve a entrar con el usuario recién creado.
Vuelve a la pantalla de usuarios. selecciona el usuario guacadmin para editarlo y haz clic en el botón Eliminar de la parte inferior para borrar el usuario.
Paso 11 – Cómo utilizar Guacamole
Para nuestro tutorial, te mostraremos cómo conectarte a un servidor utilizando el protocolo SSH.
Ve al menú de Configuración de Guacamole y selecciona Conexiones. En la pantalla de Conexiones, pulsa el botón de Nueva Conexión.
Elige un nombre para la conexión y selecciona SSH como protocolo en el menú desplegable.
En la sección Parámetros, introduce la dirección IP de tu servidor como nombre de host, 22 como puerto (o si tienes un puerto SSH personalizado, úsalo) y tu nombre de usuario. Si utilizas la autenticación basada en contraseña, introduce la contraseña del usuario o pega la clave privada. Introduce la frase de contraseña para la clave privada si la estás utilizando.
Si quieres habilitar alguna configuración adicional, hazlo. Haz clic en Guardar para terminar de añadir la conexión.
Vuelve al panel de control y haz clic en el nombre de la conexión en Todas las conexiones, y accederás al terminal SSH.
Conclusión
Con esto concluye nuestro tutorial sobre la instalación y uso de Apache Guacamole para crear una conexión SSH en un servidor basado en Rocky Linux 8. Si tienes alguna pregunta, publícala en los comentarios de abajo.