Instalación de Apache Guacamole en unRaid La instalación que vamos a llevar a cabo será como lo hemos hecho hasta ahora, desde la tienda de aplicaciones de la comunidad de unRaid. Buscamos por guacamole y veremos que ya existe una plantilla de instalación de la versión no oficial del repositorio de jasonbean, donde tiene publicada una versión completa que incluye todo lo necesario para hacer correr la aplicación en un solo contenedor: Para una instalación profesional, la forma de instalarlo sería diferente ya que deberíamos instalar los contenedores oficiales de guacamole: el front-end, el backend o guacd y una base de datos tipo SQL, por ejemplo MadriaDB. En la pantalla de configuración de la plantilla, y está es la configuración que yo tengo. Tengo cambiado el puerto por defecto que es el 8080, que como es probable que lo tengamos ocupado por otro servicio. Yo lo tengo cambiado al 8180. Además he cambiado la opción de TOTP (doble factor) a Y (yes) ya que vamos a activarlo en todos los usuarios por motivos de seguridad. Una vez instalado desde la pestaña docker de unRaid hacemos click en el logo y vamos al la web-ui de Guacamole: Para entrar por primera vez debemos utilizar las siguientes credenciales: Usuario: guacadmin Password: guacadmin Lo primero que vamos a hacer es crear un nuevo usuario para nosotros con permisos de administrador y borraremos el usuario guacadmin. Para ello, hacemos click arriba en la derecha donde pone guacadmin y vamos a configuración > usuarios: Creamos el usuario seleccionando todos los permisos de administrador. Como puedes ver, en la creación de usuarios podemos configurar unas restricciones para la cuenta, como horarios, caducidad etc: Estas credenciales las podemos guardar en nuestro gestor de contraseñas. Ahora, salimos de la cuenta guacadmin y entramos con las nuevas credenciales que acabamos de crear. Nos pedirá configurar el doble factor: La activación la podemos hacer utilizando, como ya vimos, nuestro propio gestor de contraseñas, o bien utilizando una aplicación móvil tipo Authy. Ya vez confirmado este paso, volveremos al listado de usuarios, entramos en el usuario guacadmin y procedemos a borrarlo. Configuración de grupos de usuarios Una de las formas más cómodas para gestionar los usuarios y sus permisos (en caso de que vayamos a tener más de un usuario y con diferentes permisos, en una pyme por ejmplo) son los grupos: En los grupos podremos administrar los mismos permisos que a nivel de usuario, incluyendo los permisos de accesos a los equipos: Conexiones VNC, RDP y SSH La creación de conexiones es muy sencilla. Para aprender a realizar una conexión voy a poneros un ejemplo concreto de forma que lo veamos su usabilidad en la práctica real. Vamos a empezar con las conexiones VNC, que las podemos usar para conectarnos nativamente a los VM de unRaid. El motor de virtualización de unraid es el software libre QEMU, el cual integra un servidor VNC en cada instancia de virtualización (independiente del sistema operativo, es como una conexión VNC a la placa base). En mi caso tengo este ejemplo de un Kubuntu virtual el cual tiene como puerto VNC el 5900: En guacamole vamos a configuración > conexiones > nueva conexión. Aquí configuraremos la conexión de tipo VNC, el nombre, el puerto, la contraseña VNC si tiene, etc. Como podemos ver, podremos habilitar la grabación de la sesión que creará un vídeo por cada acceso que se realice a esta conexión. Esto puede ser interesante en pymes si queremos dar acceso remoto a proveedores y queremos que todo lo que se lleve a cabo en dicha máquina quede registrado: Ahora que hemos creado la conexión, como somos administradores deberíamos tener el acceso ya permitido. Si queremos dar acceso a un grupo de usuarios o a un usuario específico a esta conexión, iremos a configuraciones > usuarios/grupos y daremos el permiso de acceso a dicha máquina dentro del perfil de usuario/grupo: Ahora hacemos click en nuestro usuario (arriba a la derecha) y vamos a Inicio y veremos que en el listado inferior tenemos la máquina Kubuntu disponible. Hacemos click y automáticamente nos abrirá la conexión: Si hacemos ctrl+alt+mayus nos abrirá una barra la lateral izquierda donde podremos cambiar el método de entrada (podemos poner un teclado en pantalla, muy cómodo si estamos accediendo desde una tablet), activar el ajuste automático de la resolución etc. Desde aquí también podremos cambiar de forma rápida entre conexiones, desconectarnos de la sesión o volver al inicio de guacamole manteniendo la sesión abierta: En caso de estar en una empresa o tener servidores o equipos windows pro, también podremos configurar conexiones RDP a servidores y máquinas virtuales, la configuración es prácticamente igual. Solo tendremos que configurar el la conexión como RDP, el puerto 3389, dominio, usuario y contraseña etc. En cuanto a conexiones SSH, podemos utilizar tanto login con user/pass como con claves compartidas. Además, en SSH la configuración de SFTP es muy sencilla ya que la transferencia de ficheros irá también a través del propio SSH. Aquí un ejemplo de conexión a una Raspberry Pi: Y así es como veremos la terminal de UnRaid por ejemplo y el SFTP integrado: Como probablemente ya te habrás dado cuenta, todas estas conexiones las podremos agrupar en grupos, de los cuales existen dos tipos: Grupos organizativos: funcionan como si de una carpeta se tratase, donde agrupamos las conexiones por ejemplo de un mismo proyecto o departamento y así podemos definir los permisos de un grupo de usuarios contra un grupo organizativo de conexiones, independientemente del tipo de conexión. Grupos de balanceo: sirven para crear un sistema de tipo Pool, al hacer click en un grupo organizativo guacamole mirará cual de las conexiones tiene el menor número de usuarios activos y automáticamente abrirá una sesión contra ella. Esto nos permite por ejemplo crear un grupo de escritorios remotos que se irán asignando a usuarios según entre n al sistema de forma dinámica. Acceso remoto con Nginx Proxy Manager Como ya vimos en este post, utilizando Nginx Proxy Manager podemos publicar este servicio web para que podamos acceder a el desde cualquier parte, algo muy útil para poder realizar trabajos en remoto, dar acceso a proveedores a máquinas sin necesidad de VPN, o incluso permitir que los trabajadores de la empresa puedan teletrabajar contra su equipo habitual sea de sobremesa o virtual desde cualquier aparato. Para publicar el servicio, teniendo el Nginx Proxy Manager instalado es tan sencillo como decidir un nombre para el servicio y apuntar al equipo y puerto donde tenemos nuestro Guacamole. Quiero recalcar de nuevo la importancia de activar el doble factor en caso de que vayamos a publicar este servicio ya que de lo contrario, un robo de una contraseña a un usuario con un keylogger etc. puede convertirse en un vector de ataque muy peligroso.