Cómo habilitar el Protocolo de Escritorio Remoto usando xrdp en Ubuntu 22.04

El autor seleccionó el Fondo de Ayuda COVID-19 para recibir una donación como parte del programa Write for Donations.

Introducción

Protocolo de Escritorio Remoto (RDP, por sus siglas en inglés) es un protocolo de red desarrollado por Microsoft que permite a los usuarios acceder de forma remota e interactuar con la interfaz gráfica de usuario de un servidor remoto de Windows. RDP funciona bajo el modelo cliente-servidor, donde un cliente RDP está instalado en una máquina local y un servidor RDP está instalado en el servidor remoto.

RDP se utiliza ampliamente para conexiones remotas de Windows, pero también puedes acceder e interactuar con la interfaz gráfica de usuario de un servidor remoto de Linux utilizando una herramienta como xrdp, una implementación de código abierto del servidor RDP.

En este tutorial, instalarás y configurarás un servidor RDP utilizando xrdp en un servidor Ubuntu 22.04 y accederás a él utilizando un cliente RDP desde tu máquina local. Entenderás cómo establecer acceso a un servidor remoto de Linux mediante la configuración y el uso de una conexión RDP.

Implementa tus aplicaciones frontend desde GitHub utilizando la Plataforma de Aplicaciones de DigitalOcean. Deja que DigitalOcean se encargue de escalar tu aplicación.

Prerrequisitos

Para completar este tutorial, necesitarás:

  • Un servidor Ubuntu 22.04 con un usuario no root con privilegios de sudo, un cortafuegos y al menos 1 GB de RAM, que puedes configurar siguiendo la guía de configuración inicial de Ubuntu 22.04.

  • Una computadora local con un cliente RDP instalado. Se proporciona a continuación una lista de clientes RDP disponibles para diferentes sistemas operativos:

    • En Windows, puedes utilizar la aplicación predeterminada Conexión de Escritorio Remoto.
    • En macOS, puedes utilizar la aplicación Microsoft Remote Desktop.
    • En Linux, puedes utilizar FreeRDP o Remmina.

Paso 1 — Instalar un Entorno de Escritorio en Ubuntu

En este paso, instalarás y configurarás un entorno de escritorio en tu servidor Ubuntu. Por defecto, un servidor Ubuntu viene solo con un entorno de terminal. Se deberá instalar un entorno de escritorio para acceder a una interfaz de usuario.

De las opciones disponibles para Ubuntu, instalarás el entorno de escritorio Xfce. Xfce ofrece un entorno de escritorio ligero y fácil de usar para sistemas basados en Linux.

Para empezar, conéctate a tu servidor usando SSH y actualiza la lista de paquetes disponibles usando el siguiente comando:

  1. sudo apt update

A continuación, instala los paquetes xfce y xfce-goodies en tu servidor:

  1. sudo apt install xfce4 xfce4-goodies -y

Se te pedirá que elijas un gestor de visualización, que es un programa que gestiona los mecanismos de inicio de sesión gráficos y las sesiones de usuario. Puedes seleccionar cualquier opción de la lista de gestores de visualización disponibles, pero este tutorial usará gdm3.

Después de instalar el entorno de escritorio, ahora instalarás xrdp en tu servidor.

Paso 2 — Instalando xrdp en Ubuntu

xrdp es una implementación de código abierto del servidor RDP que permite conexiones RDP para servidores basados en Linux. En este paso, instalarás xrdp en tu servidor Ubuntu.

Para instalar xrdp, ejecuta el siguiente comando en la terminal:

  1. sudo apt install xrdp -y

Después de instalar xrdp, verifica el estado de xrdp usando systemctl:

  1. sudo systemctl status xrdp

Este comando mostrará el estado como active (running):

Output
● xrdp.service - xrdp daemon Loaded: loaded (/lib/systemd/system/xrdp.service; enabled; vendor preset: enabled) Active: **active (running)** since Sun 2022-08-07 13:00:44 UTC; 26s ago Docs: man:xrdp(8) man:xrdp.ini(5) Main PID: 17904 (xrdp) Tasks: 1 (limit: 1131) Memory: 1016.0K CGroup: /system.slice/xrdp.service └─17904 /usr/sbin/xrdp

Si el estado de xrdp no es running, es posible que tengas que iniciar el servicio manualmente con este comando:

  1. sudo systemctl start xrdp

Después de ejecutar el comando anterior, verifica nuevamente el estado para asegurarte de que xrdp esté en un estado running.

Ahora has instalado xrdp en tu servidor. A continuación, revisarás la configuración de xrdp para aceptar conexiones de clientes remotos.

Paso 3 — Configurando xrdp y Actualizando tu Firewall

En este paso, revisarás la configuración predeterminada de xrdp, que se encuentra almacenada en /etc/xrdp/xrdp.ini, y agregarás una configuración para una conexión RDP. También actualizarás la configuración del firewall.

xrdp.ini es el archivo de configuración predeterminado para establecer conexiones RDP con el servidor xrdp. Este archivo de configuración se puede modificar y personalizar para cumplir con los requisitos de la conexión RDP.

Abre el archivo con el editor de texto nano o cualquier otro editor de tu elección:

  1. sudo nano /etc/xrdp/xrdp.ini

El archivo de configuración contiene diferentes secciones:

  • Globals define algunas configuraciones globales para xrdp.
  • Logging define parámetros del subsistema de registro para los registros.
  • Channels define múltiples parámetros de canal que RDP admite.
  • Tipos de sesión define múltiples tipos de sesión admitidos por xrdp. Cada configuración de tipo de sesión se define como una sección separada bajo el nombre de su tipo de sesión, encerrado entre corchetes, como [Xorg] y [XVnc]. No hay un encabezado [Tipos de sesiones] en el archivo; en cambio, se escribe como un comentario.

En el archivo de configuración, navega hasta la sección Tipos de sesión. Encontrarás múltiples tipos de sesión admitidos y sus parámetros listados:

Output
... ; ; Session types ; ; Some session types such as Xorg, X11rdp, and Xvnc start a display server. ; Startup command-line parameters for the display server are configured ; in sesman.ini. See and configure also sesman.ini. [Xorg] name=Xorg lib=libxup.so username=ask password=ask ip=127.0.0.1 port=-1 code=20 [Xvnc] name=Xvnc lib=libvnc.so username=ask password=ask ip=127.0.0.1 port=-1 #xserverbpp=24 #delay_ms=2000 [vnc-any] ... [neutrinordp-any] ... ...

Por defecto, los parámetros username y password están configurados como ask, lo que significa que se solicitará al usuario que ingrese su nombre de usuario y contraseña para conectarse a través de RDP. Los parámetros, como name, username y password, se pueden modificar si es necesario. Para la conexión inicial por RDP al servidor, la configuración predeterminada será suficiente.

Guarda y cierra el archivo cuando hayas terminado.

Ahora, muévete al directorio principal de tu usuario si aún no estás allí:

  1. cd ~

A continuación, crearás un archivo .xsession bajo /home/sammy y agregarás xfce4-session como el gestor de sesiones a usar al iniciar sesión:

  1. echo "xfce4-session" | tee .xsession

tee escribe la cadena "xfce4-session" en el archivo .xsession. La configuración anterior garantiza que xfce4-session se utilice como gestor de sesiones al solicitar inicio de sesión gráfico. Como resultado de instalar xfce como tu entorno de escritorio, xfce4-session sirve como su gestor de sesiones. Si no incluyes esta información en el archivo .xsession, no se elegirá ningún gestor de sesiones y la sesión RDP no podrá conectarse a la pantalla gráfica.

Reinicia el servidor xrdp:

  1. sudo systemctl restart xrdp

A continuación, configurarás tu firewall para permitir conexiones remotas desde tu IP pública en el puerto 3389. Una conexión RDP se realiza en el puerto TCP/IP 3389. Para acceder al servidor remoto a través de RDP, debes permitir el puerto 3389 en tu firewall.

Primero, encuentra la IP pública de tu máquina local:

  1. curl ifconfig.me

En Windows, utiliza el Símbolo del sistema de Windows para ejecutar este comando.

curl realiza una solicitud a ifconfig.me que devuelve tu dirección IP pública como resultado:

Output
... your_local_ip

A continuación, permite el acceso al puerto RDP 3389 en tu servidor remoto, sustituyendo tu_dirección_ip_local con el resultado del último comando:

  1. sudo ufw allow from your_local_ip/32 to any port 3389

Verifica el estado de tu firewall UFW:

  1. sudo ufw status

La salida debería parecerse a lo siguiente:

Output
Status: Active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 3389 ALLOW your_local_ip OpenSSH (v6) ALLOW Anywhere (v6) ...

Ahora has habilitado el puerto 3389 para aceptar conexiones desde tu IP pública. A continuación, probarás la conexión RDP desde tu máquina local a tu servidor remoto.

Paso 4: Prueba de la Conexión RDP

En este paso, probarás la conexión RDP desde tu máquina local. Las secciones a continuación incluyen acciones para probar la conexión en máquinas con Windows, macOS y Linux.

Prueba de la Conexión RDP en Windows

Para probar la conexión usando el cliente Conexión de Escritorio Remoto en Windows, primero inicia la aplicación Conexión de Escritorio Remoto.

Ingrese la IP pública de su servidor remoto y el nombre de usuario en los cuadros de texto para Equipo y Nombre de usuario. Es posible que necesite presionar la flecha hacia abajo para Mostrar opciones para ingresar el nombre de usuario:

Pulse el botón Conectar. Si recibe una alerta de que Escritorio remoto no puede conectarse al equipo remoto, verifique que haya activado la opción de Escritorio remoto en la configuración del sistema.

Pulse si recibe la ventana emergente de verificación de identidad:

Luego, ingrese el nombre de usuario de su servidor remoto (sammy) y la contraseña que creó para el usuario sammy durante la configuración inicial del servidor. Presione Aceptar.

Una vez que haya iniciado sesión, debería poder acceder a su entorno de escritorio de Ubuntu:

Utilizando RDP, se conectó correctamente a su servidor remoto de Ubuntu desde su máquina local. Puede cerrarlo con el botón de salida cuando haya terminado de usar su escritorio gráfico.

Prueba de la conexión RDP en macOS

Para probar la conexión utilizando el cliente de Conexión de Escritorio Remoto en macOS, primero inicie la aplicación Microsoft Remote Desktop Connection.

Pulse Agregar PC, luego ingrese la IP pública de su servidor remoto en el cuadro editable:

Puede Agregar una cuenta de usuario al configurar la conexión:

Si no agregas un usuario durante la configuración, se te pedirá que ingreses tus credenciales de inicio de sesión:

Pulsa para omitir la ventana de verificación de identidad:

Una vez que hayas iniciado sesión, podrás acceder al escritorio remoto de Ubuntu. Puedes cerrarlo con el botón de salida cuando hayas terminado de usar tu escritorio gráfico.

Probando la conexión RDP en Linux

Necesitarás un cliente RDP para probar la conexión RDP en una máquina Linux local. Primero, instala el cliente RDP remmina para Ubuntu:

  1. sudo apt install remmina

Selecciona y si se te solicita completar la instalación. Este comando instalará Remmina, un cliente de escritorio remoto de código abierto en tu sistema Ubuntu utilizando apt. Para otras distribuciones de Linux, puedes revisar la documentación de Remmina para la instalación.

Una vez instalado, inicia la aplicación remmina en tu máquina Linux local e introduce la IP pública de tu servidor remoto en el cuadro rellenable. Presiona Enter en tu teclado para conectarte a tu escritorio remoto.

Luego, ingresa el nombre de usuario de tu servidor remoto (para este tutorial, el nombre de usuario es sammy) y la contraseña que creaste para el usuario durante la configuración inicial del servidor. Presiona Ok.

Puede que necesites ingresar la contraseña de tu usuario nuevamente para desbloquear el escritorio remoto.

Una vez que hayas iniciado sesión, deberías poder acceder a tu entorno de escritorio de Ubuntu.

Usando RDP, te has conectado con éxito a tu servidor remoto de Ubuntu desde tu máquina local. Puedes cerrarlo con el botón de salida cuando hayas terminado de usar tu escritorio gráfico.

Una vez que te hayas asegurado de que la conexión remota funciona, puedes utilizar esta secuencia siempre que necesites utilizar la interfaz gráfica para tu servidor Linux remoto.

Conclusión

En este artículo, configuraste xrdp para conectarte a un escritorio gráfico para tu servidor remoto de Ubuntu a través de una conexión RDP desde una máquina local.

Ahora, puedes intentar configurar una conexión VNC para tu servidor Linux con Cómo Instalar y Configurar VNC en Ubuntu 20.04. VNC es otra opción para la conexión remota a un escritorio Linux.

Source:
https://www.digitalocean.com/community/tutorials/how-to-enable-remote-desktop-protocol-using-xrdp-on-ubuntu-22-04