VPS en Linux con interfaz gráfica: lanzamiento de un servidor RDP en Ubuntu 18.04

VPS en Linux con interfaz gráfica: lanzamiento de un servidor RDP en Ubuntu 18.04
В artículo anterior Hablamos de ejecutar un servidor VNC en una máquina virtual de cualquier tipo. Esta opción tiene muchas desventajas, la principal de las cuales son los altos requisitos de rendimiento de los canales de transmisión de datos. Hoy intentaremos conectarnos a un escritorio gráfico en Linux a través de RDP (Protocolo de escritorio remoto). El sistema VNC se basa en la transmisión de matrices de píxeles mediante el protocolo RFB (Remote Framebuffer), y RDP le permite enviar primitivas gráficas más complejas y comandos de alto nivel. Normalmente se utiliza para alojar servicios de escritorio remoto en Windows, pero también hay servidores disponibles para Linux.

Tabla de contenido:

Instalación del entorno gráfico
Rusificación del servidor e instalación de software.
Instalación y configuración de un servidor RDP
Configurar un cortafuegos
Conexión a un servidor RDP
Administrador de sesiones y sesiones de usuario
Cambiar la distribución del teclado

Instalación del entorno gráfico

Cogeremos una máquina virtual con Ubuntu Server 18.04 LTS con dos núcleos informáticos, cuatro gigabytes de RAM y un disco duro (HDD) de veinte gigabytes. Una configuración más débil no es adecuada para un escritorio gráfico, aunque esto depende de las tareas a resolver. No olvide utilizar el código de promoción Habrahabr10 para obtener un 10% de descuento en su pedido.

VPS en Linux con interfaz gráfica: lanzamiento de un servidor RDP en Ubuntu 18.04
La instalación del entorno de escritorio con todas las dependencias se realiza con el siguiente comando:

sudo apt-get install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils

Como en el caso anterior, elegimos XFCE debido a sus requisitos de recursos informáticos relativamente bajos.

Rusificación del servidor e instalación de software.

A menudo, las máquinas virtuales se implementan únicamente con localización en inglés. En el escritorio es posible que necesites ruso, que es fácil de configurar. Primero, instalemos traducciones para programas del sistema:

sudo apt-get install language-pack-ru

Configuremos la localización:

sudo update-locale LANG=ru_RU.UTF-8

Se puede lograr el mismo efecto editando manualmente el archivo /etc/default/locale.

Para la localización de GNOME y KDE, el repositorio tiene los paquetes language-pack-gnome-ru y language-pack-kde-ru; los necesitará si utiliza programas de estos entornos de escritorio. En XFCE, las traducciones se instalan con aplicaciones. A continuación puedes instalar los diccionarios:

# Словари для проверки орфографии
sudo apt-get install hunspell hunspell-ru

# Тезаурус для LibreOffice
sudo apt-get install mythes-ru

# Англо-русский словарь в формате DICT
sudo apt-get install mueller7-dict

Además, es posible que se requiera la instalación de traducciones para algunos programas de aplicación:

# Браузер Firefox
sudo apt-get install firefox firefox-locale-ru

# Почтовый клиент Thunderbird
sudo apt-get install thunderbird thunderbird-locale-ru

# Офисный пакет LibreOffice
sudo apt-get install libreoffice libreoffice-l10n-ru libreoffice-help-ru

Esto completa la preparación del entorno de escritorio, solo queda configurar el servidor RDP.

Instalación y configuración de un servidor RDP

Los repositorios de Ubuntu cuentan con un servidor Xrdp de distribución gratuita, el cual utilizaremos:

sudo apt-get install xrdp

Si todo ha ido bien, el servidor debería iniciarse automáticamente:

sudo systemctl status xrdp

VPS en Linux con interfaz gráfica: lanzamiento de un servidor RDP en Ubuntu 18.04
El servidor Xrdp se ejecuta con derechos de usuario xrdp y, de forma predeterminada, toma el certificado /etc/ssl/private/ssl-cert-snakeoil.key, que puede reemplazarse por el suyo. Para tener acceso para leer el archivo, debe agregar el usuario al grupo ssl-cert:

sudo adduser xrdp ssl-cert

La configuración predeterminada se puede encontrar en el archivo /etc/default/xrdp, y todos los demás archivos de configuración del servidor se encuentran en el directorio /etc/xrdp. Los parámetros principales se encuentran en el archivo xrdp.ini, que no es necesario modificar. La configuración está bien documentada y se incluyen las páginas de manual correspondientes:

man xrdp.ini
man xrdp

Todo lo que queda es editar el script /etc/xrdp/startwm.sh, que se ejecuta cuando se inicializa la sesión del usuario. Primero, hagamos una copia de seguridad del script de la distribución:

sudo mv /etc/xrdp/startwm.sh /etc/xrdp/startwm.b
sudo nano /etc/xrdp/startwm.sh

Para iniciar el entorno de escritorio XFCE, necesitará un script similar a este:

#!/bin/sh
if [ -r /etc/default/locale ]; then
. /etc/default/locale
export LANG LANGUAGE
fi
exec /usr/bin/startxfce4

Tenga en cuenta: en los scripts es mejor escribir la ruta completa a los archivos ejecutables; este es un buen hábito. Hagamos que el script sea ejecutable y en este punto la configuración del servidor Xrdp se puede considerar completa:

sudo chmod 755 /etc/xrdp/startwm.sh

Reinicie el servidor:

sudo systemctl restart xrdp

Configurar un cortafuegos

De forma predeterminada, Xrdp escucha el puerto TCP 3389 en todas las interfaces. Dependiendo de la configuración del servidor virtual, es posible que necesite configurar un firewall Netfilter. En Linux esto normalmente se hace usando la utilidad iptables, pero en Ubuntu es mejor usar ufw. Si se conoce la dirección IP del cliente la configuración se realiza con el siguiente comando:

sudo ufw allow from IP_Address to any port 3389

Puedes permitir conexiones desde cualquier IP como esta:

sudo ufw allow 3389

El protocolo RDP admite el cifrado, pero exponer el servidor Xrdp a redes públicas es una mala idea. Si el cliente no tiene una IP fija, el servidor solo debe escuchar localhost para aumentar la seguridad. Es mejor acceder a él a través de un túnel SSH, que redirigirá de forma segura el tráfico desde la computadora cliente. Tenemos un enfoque similar utilizado en el artículo anterior para servidor VNC.

Conexión a un servidor RDP

Para trabajar con el entorno de escritorio, es mejor crear un usuario independiente sin privilegios:

sudo adduser rdpuser

VPS en Linux con interfaz gráfica: lanzamiento de un servidor RDP en Ubuntu 18.04
Agreguemos el usuario al grupo sudo para que pueda realizar tareas relacionadas con la administración. Si no es necesario, puedes omitir este paso:

sudo gpasswd -a rdpuser sudo

Puede conectarse al servidor utilizando cualquier cliente RDP, incluido el cliente integrado de Servicios de Escritorio remoto de Windows. Si Xrdp está escuchando la interfaz externa, no serán necesarias acciones adicionales. Basta con especificar la dirección IP, el nombre de usuario y la contraseña del VPS en la configuración de conexión. Después de conectarnos, veremos algo como esto:

VPS en Linux con interfaz gráfica: lanzamiento de un servidor RDP en Ubuntu 18.04
Después de la configuración inicial del entorno de escritorio, obtendremos un escritorio completo. Como ves, no consume muchos recursos, aunque todo dependerá de las aplicaciones utilizadas.

VPS en Linux con interfaz gráfica: lanzamiento de un servidor RDP en Ubuntu 18.04
Si el servidor Xrdp escucha solo a localhost, el tráfico en la computadora cliente deberá empaquetarse en un túnel SSH (sshd debe estar ejecutándose en el VPS). En Windows, puede utilizar un cliente SSH gráfico (por ejemplo, PuTTY) y en sistemas UNIX necesita la utilidad ssh:

ssh -L 3389:127.0.0.1:3389 -C -N -l rdpuser RDP_server_ip

Una vez inicializado el túnel, el cliente RDP ya no se conectará al servidor remoto, sino al host local.

Con los dispositivos móviles es más difícil: habrá que comprar clientes SSH capaces de crear un túnel, y en iOS y iPadOS, el funcionamiento en segundo plano de aplicaciones de terceros es complicado debido a una optimización demasiado buena del consumo de energía. En iPhone y iPad, no podrá crear un túnel en una aplicación separada; necesitará una aplicación recolectora que pueda establecer una conexión RDP a través de SSH. Como por ejemplo Más remoto profesional.

Administrador de sesiones y sesiones de usuario

La capacidad de trabajo multiusuario se implementa directamente en el servidor Xrdp y no requiere configuración adicional. Después de iniciar el servicio a través de systemd, un proceso se ejecuta en modo demonio, escucha en el puerto 3389 y se comunica a través de localhost con el administrador de sesión.

ps aux |grep xrdp

VPS en Linux con interfaz gráfica: lanzamiento de un servidor RDP en Ubuntu 18.04

sudo netstat -ap |grep xrdp

VPS en Linux con interfaz gráfica: lanzamiento de un servidor RDP en Ubuntu 18.04
El administrador de sesiones generalmente no es visible para los usuarios porque el nombre de usuario y la contraseña especificados en la configuración del cliente se transfieren automáticamente a él. Si esto no sucede o hay un error durante la autenticación, aparecerá una ventana de inicio de sesión interactiva en lugar del escritorio.

VPS en Linux con interfaz gráfica: lanzamiento de un servidor RDP en Ubuntu 18.04
El inicio automático del administrador de sesiones se especifica en el archivo /etc/default/xrdp y la configuración se almacena en /etc/xrdp/sesman.ini. Por defecto se ve así:

[Globals]
ListenAddress=127.0.0.1
ListenPort=3350
EnableUserWindowManager=true
UserWindowManager=startwm.sh
DefaultWindowManager=startwm.sh

[Security]
AllowRootLogin=true
MaxLoginRetry=4
TerminalServerUsers=tsusers
TerminalServerAdmins=tsadmins
; When AlwaysGroupCheck=false access will be permitted
; if the group TerminalServerUsers is not defined.
AlwaysGroupCheck=false

[Sessions]

No tienes que cambiar nada aquí, sólo tienes que desactivar el inicio de sesión con derechos de root (AllowRootLogin=false). Para cada usuario autorizado en el sistema, se inicia un proceso xrdp separado: si se desconecta sin finalizar la sesión, los procesos del usuario continuarán ejecutándose de forma predeterminada y podrá conectarse nuevamente a la sesión. La configuración se puede cambiar en el archivo /etc/xrdp/sesman.ini (sección [Sesiones]).

Cambiar la distribución del teclado

Por lo general, no hay problemas con un portapapeles bidireccional, pero con la distribución del teclado ruso tendrás que jugar un poco (la configuración regional rusa ya debería estar instalado). Editemos la configuración del teclado del servidor Xrdp:

sudo nano /etc/xrdp/xrdp_keyboard.ini

Debe agregar las siguientes líneas al final del archivo de configuración:

[rdp_keyboard_ru]
keyboard_type=4
keyboard_type=7
keyboard_subtype=1
model=pc105
options=grp:alt_shift_toggle
rdp_layouts=default_rdp_layouts
layouts_map=layouts_map_ru

[layouts_map_ru]
rdp_layout_us=us,ru
rdp_layout_ru=us,ru

Todo lo que queda es guardar el archivo y reiniciar Xrdp:

sudo systemctl restart xrdp

Como puede ver, no es difícil configurar un servidor RDP en un VPS Linux, pero artículo anterior Ya hemos hablado de la configuración de VNC. Además de estas tecnologías, existe otra opción interesante: el sistema X3Go que utiliza un protocolo NX 2 modificado. Nos ocuparemos de ello en la próxima publicación.

VPS en Linux con interfaz gráfica: lanzamiento de un servidor RDP en Ubuntu 18.04

Fuente: habr.com

Añadir un comentario