Búsqueda de sitios web

Instale Guacamole para acceso remoto a Linux/Windows en Ubuntu


Como administrador de sistemas, es posible que se encuentre (hoy o en el futuro) trabajando en un entorno donde coexisten Windows y Linux.

No es ningún secreto que algunas grandes empresas prefieren (o tienen que) ejecutar algunos de sus servicios de producción en cajas Windows y otros en servidores Linux.

Si ese es tu caso, recibirás esta guía con los brazos abiertos (de lo contrario, adelante y al menos asegúrate de agregarla a tus favoritos).

En este artículo, le presentaremos guacamole, una puerta de enlace de escritorio remoto impulsada por Tomcat que solo necesita instalarse en un servidor central.

Guacamole proporcionará un panel de control basado en web que le permitirá cambiar rápidamente de una máquina a otra, todo dentro de la misma ventana del navegador web.

Entorno de prueba

En este artículo, hemos utilizado las siguientes máquinas. Instalaremos Guacamole en una caja Ubuntu y lo usaremos para acceder a una caja Windows 10 a través del Protocolo de Escritorio Remoto ( RDP) y una caja RHEL que utiliza el protocolo de red SSH:

Guacamole server: Ubuntu 20.04 - IP 192.168.0.100
Remote SSH box: RHEL 8 – IP 192.168.0.18
Remote desktop box: Windows 10 – IP 192.168.0.19

Dicho esto, comencemos.

Instalación del servidor Guacamole en Ubuntu

1. Antes de instalar guacamole, primero deberá ocuparse de sus dependencias.

sudo apt update
sudo apt install -y gcc vim curl wget g++ libcairo2-dev libjpeg-turbo8-dev libpng-dev \
libtool-bin libossp-uuid-dev libavcodec-dev libavutil-dev libswscale-dev build-essential \
libpango1.0-dev libssh2-1-dev libvncserver-dev libtelnet-dev freerdp2-dev libwebsockets-dev \
libssl-dev libvorbis-dev libwebp-dev tomcat9 tomcat9-admin tomcat9-user

2. Descargue y extraiga el archivo tar. A principios de febrero de 2021, la última versión de Guacamole es la 1.3.0. Puede consultar la página de Descargas de Guacamole para conocer la última versión en un momento dado.

wget https://dlcdn.apache.org/guacamole/1.3.0/source/guacamole-server-1.3.0.tar.gz 
tar zxf guacamole-server-1.3.0.tar.gz  

3. Compile el software.

cd guacamole-server-1.3.0/
./configure

Como es de esperar, configure verificará la presencia de las dependencias requeridas y los protocolos de comunicación admitidos en su sistema (como se puede ver en el cuadro resaltado, Protocolo de escritorio remoto ). (RDP) y SSH son compatibles con las dependencias instaladas anteriormente).

Si todo va como se esperaba, deberías ver esto cuando se complete (de lo contrario, asegúrate de haber instalado todas las dependencias necesarias):

Como sugiere la última línea de la imagen de arriba, ejecute make y make install para compilar el programa:

make 
sudo make install

4. Actualice el caché de las bibliotecas instaladas.

sudo ldconfig 

y pulsa Entrar.

Instalación del cliente Guacamole en Ubuntu

Después de completar los pasos anteriores, se habrá instalado el servidor de guacamole. Las siguientes instrucciones ahora le ayudarán a configurar guacd (el demonio proxy que integra Javascript con protocolos de comunicación como RDP o SSH) y guacamole.war (el cliente). el componente que conforma la aplicación HTML5 final que se le presentará.

Tenga en cuenta que ambos componentes (servidor guacamole y cliente) deben instalarse en la misma máquina; no es necesario instalar el llamado cliente en las máquinas que desea conectar a).

Para descargar el cliente, siga estos pasos:

5. Descargue el archivo de la aplicación web y cambie su nombre a guacamole.war.

Nota: Dependiendo de su distribución, el directorio de bibliotecas Tomcat puede estar ubicado en /var/lib/tomcat.

cd /var/lib/tomcat9/
sudo wget https://dlcdn.apache.org/guacamole/1.3.0/binary/guacamole-1.3.0.war
sudo mv guacamole-1.3.0.war webapps/guacamole.war

6. Cree el archivo de configuración (/etc/guacamole/guacamole.properties). Este archivo contiene las instrucciones para que Guacamole se conecte a guacd:

sudo mkdir /etc/guacamole
sudo mkdir /usr/share/tomcat9/.guacamole
sudo nano /etc/guacamole/guacamole.properties

Inserte el siguiente contenido en /etc/guacamole/guacamole.properties. Tenga en cuenta que estamos haciendo referencia a un archivo que crearemos en el siguiente paso (/etc/guacamole/user-mapping.xml):

guacd-hostname: localhost
guacd-port:    4822
user-mapping:    /etc/guacamole/user-mapping.xml
auth-provider:    net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider
basic-user-mapping:    /etc/guacamole/user-mapping.xml

Y cree un enlace simbólico para que Tomcat pueda leer el archivo:

sudo ln -s /etc/guacamole/guacamole.properties /usr/share/tomcat9/.guacamole/

7. Guacamole utiliza user-mapping.xml; cree este archivo para definir qué usuarios pueden autenticarse en la interfaz web de Guacamole (entre ). etiquetas) y qué conexiones pueden usar (entre etiquetas <connection>):

sudo nano /etc/guacamole/user-mapping.xml

La siguiente asignación de usuarios otorga acceso a la interfaz web de Guacamole a un usuario tecmint con contraseña tecmint01. Luego, dentro de la conexión SSH, debemos colocar un nombre de usuario válido para iniciar sesión en el cuadro RHEL (se le pedirá que ingrese la contraseña correspondiente cuando Guacamole inicie la conexión).

En el caso de la casilla Windows 10, no es necesario hacerlo ya que se nos presentará la pantalla de inicio de sesión a través de RDP.

Para obtener el hash md5 de la contraseña tecmint01, escriba el siguiente comando:

printf '%s' "tecmint01" | md5sum

Luego inserte la salida del comando en el campo de contraseña dentro de las etiquetas <authorize>:

<user-mapping>
        <authorize 
                username="tecmint" 
                password="8383339b9c90775ac14693d8e620981f" 
                encoding="md5">
                <connection name="RHEL 8">
                        <protocol>ssh</protocol>
                        <param name="hostname">192.168.0.18</param>
                        <param name="port">22</param>
                        <param name="username">gacanepa</param>
                </connection>
                <connection name="Windows 10">
                        <protocol>rdp</protocol>
                        <param name="hostname">192.168.0.19</param>
                        <param name="port">3389</param>
                </connection>
        </authorize>
</user-mapping>

Como es el caso con todos los archivos que contienen información confidencial, es importante restringir los permisos y cambiar la propiedad del archivo user-mapping.xml:

sudo chmod 600 /etc/guacamole/user-mapping.xml
sudo chown tomcat:tomcat /etc/guacamole/user-mapping.xml

Inicie Tomcat y guacd.

sudo service tomcat9 start
sudo /usr/local/sbin/guacd &

Lanzamiento de la interfaz web de guacamole

8. Para acceder a la interfaz web de Guacamole, inicie un navegador y apúntelo a http://server:8080/guacamole donde el servidor es el nombre de host o la dirección IP de su servidor (en nuestro caso es http://192.168.0.100:8080/guacamole) e inicie sesión con las credenciales proporcionadas anteriormente (nombre de usuario: tecmint, contraseña: tecmint01):

9. Después de hacer clic en Iniciar sesión, accederá a la interfaz administrativa donde verá la lista de conexiones a las que tiene acceso el usuario tecmint, según usuario- mapeo.xml:

10. Continúe y haga clic en el cuadro RHEL 8 para iniciar sesión como gacanepa (el nombre de usuario especificado en la definición de conexión).

Observe cómo la fuente de conexión está configurada en 192.168.0.100 (la IP del servidor Guacamole), independientemente de la dirección IP de la máquina que utiliza para abrir la interfaz web:

11. Si desea cerrar la conexión, escriba salir y presione Entrar. Se le pedirá que regrese a la interfaz principal (Inicio), se vuelva a conectar o cierre sesión en Guacamole:

12. Ahora es el momento de probar la conexión de escritorio remoto a Windows 10:

¡Felicidades! Ahora puede acceder a una máquina Windows 10 y a un servidor RHEL 8 desde un navegador web.

Resumen

En este artículo, explicamos cómo instalar y configurar Guacamole para permitir el acceso a máquinas remotas a través de RDP y SSH. El sitio web oficial proporciona documentación extensa para ayudarlo a configurar el acceso utilizando otros protocolos, como VNC y otros mecanismos de autenticación, como los basados en DB...

Como siempre, no dude en enviarnos una nota si tiene alguna pregunta o sugerencia sobre este artículo. También esperamos escuchar sus historias de éxito.