Cómo instalar Guacamole para acceder a sus computadoras desde cualquier lugar en Ubuntu


Apache Guacamole es una puerta de enlace basada en web de código abierto sin cliente que proporciona acceso remoto a servidores e incluso a PC cliente a través de un navegador web utilizando protocolos como SSH, VNC y RDP.

Apache Guacamole consta de 2 componentes principales:

  • Servidor Guacamole: Esto proporciona todos los componentes nativos y del lado del servidor requeridos por Guacamole para conectarse a escritorios remotos.
  • Cliente Guacamole: esta es una aplicación web HTML 5 y un cliente que le permite conectarse a sus servidores/escritorios remotos. Esto está respaldado por el servidor Tomcat.

En este artículo, lo guiaremos a través de la instalación de Apache Guacamole en Ubuntu 20.04.

Antes de comenzar, asegúrese de tener lo siguiente:

  • Una instancia de sudo configurada por el usuario.
  • Mínimo 2 GB de RAM

Ahora profundicemos e instalemos Guacamole en Ubuntu 20.04 LTS.

En esta página

  • Cómo instalar Apache Guacamole en Ubuntu Server
  • Cómo instalar Tomcat en Ubuntu Server
  • Cómo instalar el cliente Guacamole en Ubuntu
  • Cómo configurar el cliente Guacamole en Ubuntu
  • Cómo configurar las conexiones del servidor Guacamole en Ubuntu
  • Cómo acceder al servidor Ubuntu remoto a través de la interfaz de usuario web de Guacamole

1. La instalación de Apache Guacamole se realiza compilando el código fuente. Para lograr esto, se requieren algunas herramientas de compilación como requisito previo. Por lo tanto, ejecute el siguiente comando apt:

$ sudo 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

2. Una vez que se complete la instalación de las herramientas de compilación, proceda y descargue el último archivo fuente tarball del comando wget a continuación.

$ wget https://downloads.apache.org/guacamole/1.2.0/source/guacamole-server-1.2.0.tar.gz

3. A continuación, extraiga el archivo tarball de Guacamole y navegue hasta la carpeta sin comprimir.

$ tar -xvf guacamole-server-1.2.0.tar.gz
$ cd guacamole-server-1.2.0

4. A continuación, ejecute el script de configuración para verificar si faltan dependencias. Esto suele tardar unos dos minutos, así que tenga paciencia mientras el script realiza la comprobación de dependencia. Se mostrará un aluvión de resultados que incluyen detalles sobre la versión del servidor como se muestra.

$ ./configure --with-init-dir=/etc/init.d

5. Para compilar e instalar Guacamole, ejecute los siguientes comandos, uno tras otro.

$ sudo make
$ sudo make install

6. Luego ejecute el comando ldconfig para crear los enlaces relevantes y la caché a las bibliotecas compartidas más recientemente en el directorio del servidor Guacamole.

$ sudo ldconfig

7. Para que el servidor Guacamole se ejecute, iniciaremos Guacamole Daemon - guacd - y lo habilitaremos en el arranque y verificaremos el estado como se muestra.

$ sudo systemctl start guacd
$ sudo systemctl enable guacd
$ sudo systemctl status guacd

8. El servidor Tomcat es un requisito, ya que se utilizará para ofrecer el contenido del cliente Guacamole a los usuarios que se conecten al servidor a través de un navegador. Por lo tanto, ejecute el siguiente comando para instalar Tomcat:

$ sudo apt install tomcat9 tomcat9-admin tomcat9-common tomcat9-user

9. Tras la instalación, el servidor Tomcat debería estar en funcionamiento. Puede confirmar el estado del servidor como se muestra:

$ sudo systemctl status tomcat

10. Si Tomcat no se está ejecutando, inícielo y habilítelo al arrancar:

$ sudo systemctl start tomcat
$ sudo systemctl enable tomcat

11. De forma predeterminada, Tomcat se ejecuta en el puerto 8080 y si tiene el UFW en ejecución, debe permitir este puerto como se muestra:

$ sudo ufw allow 8080/tcp
$ sudo ufw reload

12. Con el servidor Tomcat instalado, procederemos a instalar el cliente Guacamole que es una aplicación web basada en Java que permite a los usuarios conectarse al servidor.

Primero, crearemos un directorio de configuración como se muestra.

$ sudo mkdir /etc/guacamole

13. Vamos a descargar el binario del cliente Guacamole al directorio/etc/guacamole usando el comando como se muestra.

$ sudo wget https://downloads.apache.org/guacamole/1.2.0/binary/guacamole-1.2.0.war -O /etc/guacamole/guacamole.war

14. Una vez descargado, cree un enlace simbólico al directorio Tomcat WebApps como se muestra.

$ ln -s /etc/guacamole/guacamole.war /var/lib/tomcat9/webapps/

15. Para implementar la aplicación web, reinicie el servidor Tomcat y el demonio Guacamole.

$ sudo systemctl restart tomcat9
$ sudo systemctl restart guacd

Hay 2 archivos de configuración principales asociados con Guacamole; el archivo/etc/guacamole y el archivo /etc/guacamole/guacamole.properties que es utilizado por Guacamole y sus extensiones.

16. Antes de continuar, necesitamos crear directorios para las extensiones y bibliotecas.

$ sudo mkdir /etc/guacamole/{extensions,lib}

17. A continuación, configure la variable de entorno del directorio de inicio y agréguela al archivo de configuración/etc/default/tomcat9.

$ sudo echo "GUACAMOLE_HOME=/etc/guacamole" >> /etc/default/tomcat9

18. Para determinar cómo se conecta Guacamole al demonio Guacamole - guacd - crearemos el archivo guacamole.properties como se muestra.

$ sudo vim /etc/guacamole/guacamole.properties

Agregue el contenido a continuación y guarde el archivo.

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

19. A continuación, crearemos el archivo user-mapping.xml que define los usuarios que pueden conectarse e iniciar sesión en Guacamole a través de la interfaz web de un navegador.

Antes de hacerlo, debemos generar una contraseña hash para el usuario de inicio de sesión, como se muestra. Asegúrese de reemplazar su contraseña segura con su propia contraseña.

$ echo -n yourStrongPassword | openssl md5

Deberías conseguir algo como esto.

(stdin)= efd7ff06c71f155a2f07fbb23d69609

Copie la contraseña hash y guárdela en algún lugar, ya que la necesitará en el archivo user-mapping.xml.

20. Ahora cree el archivo user-mapping.xml.

$ sudo vim /etc/guacamole/user-mapping.xml

Pegue el contenido a continuación.

<user-mapping>
    <authorize 
            username="tecmint"
            password="efd7ff06c71f155a2f07fbb23d69609"
            encoding="md5">

        <connection name="Ubuntu20.04-Focal-Fossa>
            <protocol>ssh</protocol>
            <param name="hostname">173.82.187.242</param>
            <param name="port">22</param>
            <param name="username">root</param>
        </connection>
        <connection name="Windows Server">
            <protocol>rdp</protocol>
            <param name="hostname">173.82.187.22</param>
            <param name="port">3389</param>
        </connection>
    </authorize>
</user-mapping>

Hemos definido dos perfiles de conexión que le permiten conectarse a 2 sistemas remotos que están en línea:

  • Servidor Ubuntu 20.04 - IP: 173.82.187.242 a través del protocolo SSH
  • Windows Server - IP: 173.82.187.22 a través del protocolo RDP

21. Para efectuar los cambios, reinicie el servidor Tomcat y Guacamole:

$ sudo systemctl restart tomcat9
$ sudo systemctl restart guacd

Hasta este punto, se ha configurado el servidor y el cliente de Guacamole. Ahora accedamos a la interfaz de usuario web de Guacamole mediante el navegador.

22. Para acceder a la interfaz de usuario web de Guacamole, abra su navegador y busque la dirección de su servidor como se muestra:

http://server-ip:8080/guacamole

23. Inicie sesión con las credenciales que especificó en el archivo user-mapping.xml. Al iniciar sesión, encontrará las conexiones del servidor que definió en el archivo que aparece en el botón debajo de la sección TODAS LAS CONEXIONES.

24. Para acceder al servidor Ubuntu 20.04 LTS, haga clic en la conexión y esto inicia una conexión SSH al servidor Ubuntu remoto. Se le pedirá la contraseña y una vez que la escriba y presione ENTER, iniciará sesión en el sistema remoto como se muestra.

Para la máquina servidor de Windows, haga clic en la conexión del servidor correspondiente y proporcione la contraseña para iniciar sesión en el servidor a través de RDP.

Y esto concluye nuestra guía donde le mostramos cómo instalar y configurar Guacamole en Ubuntu 20.04 LTS.