Cuando debemos brindar soporte a usuarios o tenemos bajo nuestra responsabilidad diversos equipos, una de las herramientas más prácticas para llevar a cabo diversos tipos de soporte es el escritorio remoto el cual nos ayuda a conectarnos con un equipo cliente desde cualquier lugar y brindar la ayuda o gestión necesaria.
Ahora bien es sabido por todos nosotros que muchos servidores y equipos usan línea de comandos con el fin de optimizar los recursos y contamos con aplicaciones que nos permiten la conectividad remota tales como VNC, Putty, etc, pero estas en ocasiones pueden presentar fallos de acceso, lentitud o configuración compleja afectando su operabilidad.
Solvetic trae hoy una herramienta practica para conexiones por escritorio remoto con sencillez y amplias características y es X2Go.
X2Go ha sido diseñado para acceder principalmente a equipos Linux debido al entorno de comandos que se usa allí, con X2Go el equipo Linux al que estamos accediendo es el servidor X2Go y podremos conectarnos desde equipos que ejecuten Linux, Windows o Mac OS los cuales son llamados Cliente X2Go.
Varios usuarios o clientes pueden acceder a un único servidor X2Go de forma simultánea y con cada usuario o cliente teniendo una sesión de escritorio individual de forma predeterminada. Adicional a esto, con X2Go también es posible compartir el escritorio o también conocido como Asistencia remota.
Para la parte gráfica de las sesiones de escritorio remoto, X2Go hace uso de la tecnología No Machine NX3.
- Escritorio remoto gráfico de óptimo funcionamiento en cualquier tipo de red.
- Es posible desconectar y volver a conectar a una sesión, incluso de otro cliente.
- Soporte para múltiples usuarios.
- Posee cifrado SSH asegurando los datos transferidos.
- Permite el intercambio de archivos de cliente a servidor.
- Podremos compartir una impresora de cliente a servidor.
- Selección desde varios entornos de escritorio (por ejemplo, MATE, GNOME, KDE).
- Soporte remoto posible a través de Desktop Sharing.
- Es capaz de acceder a aplicaciones individuales especificando el nombre del ejecutable deseado en la configuración del cliente o seleccionando una de las aplicaciones comunes predefinidas.
- El cliente Linux X2Go también puede servir como un front-end gráfico a una instalación rdesktop / xfreerdp del lado del cliente, por lo que no necesita un servidor X2Go.
- Los Servidores X2Go pueden proporcionar Hosts de Consulta XDCMP a través de anchos de banda escasos.
- Un Broker de sesión que admite la configuración centralizada y el equilibrio de carga.
- Hace uso de una versión modificada del servidor X (gráfico) y del protocolo X11 con el fin de minimizar la cantidad de datos intercambiados entre cliente y servidor.
- X2Go funciona con su daemon SSH existente, cifrando todo el tráfico entre el cliente y el servidor.
- X2Go no requiere una configuración manual de difícil uso.
- X2Go configura el entorno al iniciar sesión, por lo cual no sera necesario dejar un servidor X en constante uso.
Algunos de los casos donde es práctico recurrir a X2Go son los siguientes:
- Ancho de banda limitado.
- Imposibilidad de instalar un sistema operativo basado en Linux de forma local.
- Necesidad de contar con diversas máquinas .
- Necesidad de múltiples conexiones a un solo equipo.
- Para este análisis usaremos Debian 9 con mínimo 1 GB de memoria RAM, pero lo recomendado es 4 GB
- Contar con un usuario que tenga privilegios de sudo.
1. Configurar el firewall en Debian 9
Es importante antes de instalar y usar X2Go configurar el firewall debido a al momento de la instalación de un entorno de escritorio, se generan muchas dependencias y procesos adicionales del software, algunos de las cuales pueden intentar abrir puertos de red dejando vulnerable la seguridad de la información.
En este caso la única excepción a tener presente es el puerto 22, el cual se dejará abierto para que podernos conectar con SSH y X2Go.
Para este ejemplo instalaremos UFW (Uncomplicated Firewall – Firewall sin Complicaciones) ya que su uso y administración es mucho más simple que los demás.
Para su instalación ejecutaremos lo siguiente:
apt-get install ufw
Por defecto, UFW está deshabilitado y lo podemos comprobar ejecutando la siguiente línea:
ufw status verbose
La verificación del estado en este punto es importante para evitar el bloqueo si ufw está activo cuando bloqueamos todas las conexiones entrantes más tarde, de modo que si UFW está activo debemos deshabilitarlo ejecutando lo siguiente:
ufw disable
Ahora estableceremos las siguientes reglas de firewall predeterminadas para denegar todas las conexiones entrantes y permitir todas las salientes:
ufw default deny incoming ufw default allow outgoing
Ahora habilitaremos la conexión al servidor a través del puerto 22 ejecutando la siguiente línea:
ufw allow 22
Activaremos UFW ejecutando:
ufw enable
2. Instalar el entorno gráfico en Debian 9
En este ejemplo instalaremos el entorno de escritorio XFCE y para ello contamos con dos maneras de lograrlo, pero sólo es necesario elegir uno: el entorno de escritorio mínimo o el entorno de escritorio completo.
Un meta paquete como tal no contiene software propio, sólo depende de otros paquetes que se instalen, permitiendo que se instale una colección completa de paquetes a la vez sin tener que escribir cada nombre de paquete individualmente en la línea de comandos.
Si deseamos instalar este tipo de entorno ejecutaremos lo siguiente:
apt-get install xfce4
Allí aceptaremos la descarga y durante el proceso de instalación definiremos el gestor deseado:
En este caso debemos ejecutar el siguiente comando. En este punto hemos configurado el entorno grafico en el servidor X2Go.
apt-get install task-xfce-desktop
3. Configurar el servidor X2Go en Debian 9
Como mencionamos al inicio, la aplicación X2Go cuenta con dos componentes principales: el servidor, el cual inicia y gestiona la sesión gráfica en la máquina remota y el cliente, que instalamos en nuestro ordenador local para ver y controlar el escritorio remoto o la aplicación.
Para configurar X2Go en el servidor debemos agregar un repositorio adicional a la configuración del gestor de paquetes y en primer lugar debemos importar la clave pública de los desarrolladores de X2Go con la cual garantizaremos que la descarga e instalación de los paquetes estarán firmados correctamente con sus claves privadas.
Para esto ejecutaremos lo siguiente:
apt-key adv --recv-keys --keyserver keys.gnupg.net E1F958385BFE2B6E
A continuación agregaremos el repositorio a los archivos de configuración del gestor de paquetes ejecutando lo siguiente:
echo 'deb http://packages.x2go.org/debian stretch main' | tee /etc/apt/sources.list.d/x2go.list
Con esto se crea el archivo /etc/apt/sources.list.d/x2go.list y agregamos la línea deb http://packages.x2go.org/debian stretch main a él, indicando al gestor de paquetes dónde encontrar los paquetes suplementarios. Actualizaremos los paquetes ejecutando
apt-get update
Finalmente instalaremos X2Go en el servidor Debian ejecutando la siguiente línea:
apt-get install x2goserver x2goserver-xsession
Ingresamos la letra S para confirmar la descarga e instalación de los paquetes los cuales una vez finalicen desplegaran lo siguiente. En este momento no se requiere ninguna configuración adicional en el servidor X2Go.
4. Instalar X2Go en el cliente Debian 9
El siguiente paso consiste en instalar el cliente X2Go para conectarnos de forma remota y para ello podemos descargar los ejecutables en los siguientes enlaces.
En ambientes Debian o Ubuntu ejecutaremos lo siguiente:
apt-get install x2goclient
Con el cliente de escritorio instalado, podemos editar la configuración y conectarnos al servidor X2Go para hacer uso del escritorio XFCE de forma remota.
Para instalar X2Go en Windows, en este caso Windows 10, daremos doble clic sobre el ejecutable, seleccionar el idioma y aceptar los términos de la licencia:
Pulsamos en I agree y a continuación seleccionamos los componentes a instalar:
Luego de definir la ruta de instalación iniciara el proceso de instalación de X2Go en Windows 10:
En el caso de macOS, en este caso macOS High Sierra, daremos doble clic sobre el archivo .dmg y será desplegada la siguiente ventana:
En base a nuestra configuración de seguridad es posible que debamos ir a Seguridad y privacidad para permitir la instalación de X2Go. Una vez autorizada será verificado el instalador. De esta forma será instalado en macOS High Sierra.
En Linux, en este caso Ubuntu 17.04, ejecutaremos el comando apt-get install x2goclient:
5. Conectividad remota en Debian 9
Con el cliente X2Go instalado procedemos a conectarnos de forma remota así:
En Windows 10, al momento de ejecutar el cliente es posible que sea desplegado el siguiente mensaje:
Allí pulsamos en el botón Permitir acceso para que el firewall conceda el acceso. Posteriormente tendremos la siguiente ventana donde debemos configurar los siguientes puntos: Nombre de la sesión.
En la sección Servidor definimos lo siguiente:
- En el campo Host ingresaremos la dirección IP del equipo Debian.
- En el campo Usuario especificamos el usuario con el cual se ha de iniciar sesión.
- En el campo Puerto SSH especificamos el 22.
Finalmente, en la opción Tipo de sesión seleccionamos XFCE que fue la instalada en Debian.
Pulsamos en Ok y veremos lo siguiente:
Allí damos Enter en el campo Sesión para que se tome la sesión que hemos creado. A continuación ingresaremos la contraseña de acceso:
Pulsamos en Ok y en todos los casos veremos el siguiente mensaje:
Pulsamos en Sí para continuar el proceso y de esta forma nos conectaremos al equipo Debian desde Windows usando el cliente X2Go:
En el caso de macOS High Sierra será el mismo proceso. Definir parámetros:
Pulsamos en Ok y pulsamos en el campo Sesión para proceder:
Ingresamos credenciales:
Finalmente iniciará el proceso de conectividad:
En Ubuntu 17.04 buscaremos el cliente X2Go y definimos los valores ya indicados:
Pulsamos en Ok para ingresar las respectivas credenciales de acceso:
Finalmente accederemos al servidor Debian desde Ubuntu 17:
Hemos comprendido como gracias a esta potente aplicación la tarea de conectividad remota tendrá mejores funcionalidades y mayor seguridad desde cualquier sistema operativo a usar.