VPS en Linux cunha interface gráfica: lanzamento dun servidor RDP en Ubuntu 18.04

VPS en Linux cunha interface gráfica: lanzamento dun servidor RDP en Ubuntu 18.04
В artigo anterior falamos de executar un servidor VNC nunha máquina virtual de calquera tipo. Esta opción ten moitas desvantaxes, a principal das cales son os altos requisitos para o rendemento das canles de transmisión de datos. Hoxe intentaremos conectarnos a un escritorio gráfico en Linux mediante RDP (Remote Desktop Protocol). O sistema VNC baséase na transmisión de matrices de píxeles mediante o protocolo RFB (Remote Framebuffer), e RDP permítelle enviar primitivos gráficos máis complexos e comandos de alto nivel. Normalmente úsase para aloxar servizos de escritorio remoto en Windows, pero tamén están dispoñibles servidores para Linux.

Imaxe:

Instalación do contorno gráfico
Rusificación do servidor e instalación de software
Instalación e configuración dun servidor RDP
Configurar un cortalumes
Conexión a un servidor RDP
Xestor de sesións e sesións de usuarios
Cambio de disposición do teclado

Instalación do contorno gráfico

Levaremos unha máquina virtual con Ubuntu Server 18.04 LTS con dous núcleos de computación, catro gigabytes de RAM e un disco duro (HDD) de vinte gigabytes. Unha configuración máis débil non é adecuada para un escritorio gráfico, aínda que isto depende das tarefas que se resolvan. Non esquezas usar o código promocional Habrahabr10 para obter un desconto do 10 % no teu pedido.

VPS en Linux cunha interface gráfica: lanzamento dun servidor RDP en Ubuntu 18.04
A instalación do ambiente de escritorio con todas as dependencias faise co seguinte comando:

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

Como no caso anterior, escollemos XFCE debido aos seus requisitos de recursos informáticos relativamente baixos.

Rusificación do servidor e instalación de software

Moitas veces, as máquinas virtuais só se despregan con localización en inglés. No escritorio pode que necesites ruso, que é fácil de configurar. En primeiro lugar, imos instalar traducións para programas do sistema:

sudo apt-get install language-pack-ru

Configuramos a localización:

sudo update-locale LANG=ru_RU.UTF-8

O mesmo efecto pódese conseguir editando manualmente o /etc/default/locale.

Para a localización de GNOME e KDE, o repositorio ten os paquetes language-pack-gnome-ru e language-pack-kde-ru; necesitarás se utilizas programas destes contornos de escritorio. En XFCE, as traducións instálanse con aplicacións. A continuación podes instalar os dicionarios:

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

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

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

Ademais, pode ser necesaria a instalación de traducións para algúns 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

Deste xeito complétase a preparación do entorno de escritorio, só queda configurar o servidor RDP.

Instalación e configuración dun servidor RDP

Os repositorios de Ubuntu teñen un servidor Xrdp distribuído libremente, que utilizaremos:

sudo apt-get install xrdp

Se todo saíu ben, o servidor debería iniciarse automaticamente:

sudo systemctl status xrdp

VPS en Linux cunha interface gráfica: lanzamento dun servidor RDP en Ubuntu 18.04
O servidor Xrdp execútase con dereitos de usuario xrdp e, por defecto, leva o certificado /etc/ssl/private/ssl-cert-snakeoil.key, que se pode substituír polo seu propio. Para ter acceso a ler o ficheiro, cómpre engadir o usuario ao grupo ssl-cert:

sudo adduser xrdp ssl-cert

A configuración predeterminada pódese atopar no ficheiro /etc/default/xrdp, e todos os demais ficheiros de configuración do servidor atópanse no directorio /etc/xrdp. Os parámetros principais están no ficheiro xrdp.ini, que non é necesario cambiar. A configuración está ben documentada e inclúense as páxinas de manual correspondentes:

man xrdp.ini
man xrdp

Só queda editar o script /etc/xrdp/startwm.sh, que se executa cando se inicializa a sesión do usuario. Primeiro, imos facer unha copia de seguridade do script da distribución:

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

Para iniciar o entorno de escritorio XFCE, necesitarás un script como o seguinte:

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

Teña en conta: nos scripts é mellor escribir o camiño completo aos ficheiros executables - este é un bo hábito. Imos facer o script executable e neste momento a configuración do servidor Xrdp pódese considerar completa:

sudo chmod 755 /etc/xrdp/startwm.sh

Reinicie o servidor:

sudo systemctl restart xrdp

Configurar un cortalumes

Por defecto, Xrdp escoita o porto TCP 3389 en todas as interfaces. Dependendo da configuración do servidor virtual, pode ter que configurar un firewall de Netfilter. En Linux isto adoita facerse mediante a utilidade iptables, pero en Ubuntu é mellor usar ufw. Se se coñece o enderezo IP do cliente, a configuración realízase co seguinte comando:

sudo ufw allow from IP_Address to any port 3389

Podes permitir conexións desde calquera IP como esta:

sudo ufw allow 3389

O protocolo RDP admite o cifrado, pero expor o servidor Xrdp a redes públicas é unha mala idea. Se o cliente non ten unha IP fixa, o servidor só debería escoitar localhost para aumentar a seguridade. É mellor acceder a el a través dun túnel SSH, que redirixirá de forma segura o tráfico do ordenador cliente. Temos un enfoque similar usado no artigo anterior para servidor VNC.

Conexión a un servidor RDP

Para traballar co entorno de escritorio, é mellor crear un usuario sen privilexios separado:

sudo adduser rdpuser

VPS en Linux cunha interface gráfica: lanzamento dun servidor RDP en Ubuntu 18.04
Engadimos o usuario ao grupo sudo para que poida realizar tarefas relacionadas coa administración. Se non hai tal necesidade, pode omitir este paso:

sudo gpasswd -a rdpuser sudo

Pode conectarse ao servidor mediante calquera cliente RDP, incluído o cliente de Servizos de escritorio remoto de Windows integrado. Se Xrdp está escoitando a interface externa, non serán necesarias accións adicionais. É suficiente especificar o enderezo IP do VPS, o nome de usuario e o contrasinal na configuración de conexión. Despois de conectar, veremos algo así:

VPS en Linux cunha interface gráfica: lanzamento dun servidor RDP en Ubuntu 18.04
Despois da configuración inicial do ambiente de escritorio, obteremos un escritorio completo. Como vedes, non consume moitos recursos, aínda que todo dependerá das aplicacións utilizadas.

VPS en Linux cunha interface gráfica: lanzamento dun servidor RDP en Ubuntu 18.04
Se o servidor Xrdp só escoita localhost, o tráfico no ordenador cliente terá que ser empaquetado nun túnel SSH (sshd debe estar en execución no VPS). En Windows, pode usar un cliente gráfico SSH (por exemplo, PuTTY) e en sistemas UNIX necesita a utilidade ssh:

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

Despois de inicializar o túnel, o cliente RDP xa non se conectará ao servidor remoto, senón ao host local.

É máis difícil cos dispositivos móbiles: haberá que comprar clientes SSH capaces de levantar un túnel e, en iOS e iPadOS, o funcionamento en segundo plano das aplicacións de terceiros é difícil debido a unha moi boa optimización do consumo de enerxía. No iPhone e iPad, non poderás crear un túnel nunha aplicación separada; necesitarás unha aplicación de colleita que poida establecer unha conexión RDP a través de SSH. Como, por exemplo Control remoto Pro.

Xestor de sesións e sesións de usuarios

A capacidade de traballo multiusuario implícase directamente no servidor Xrdp e non require configuración adicional. Despois de iniciar o servizo a través de systemd, un proceso execútase en modo daemon, escoita no porto 3389 e comunícase a través do localhost co xestor de sesións.

ps aux |grep xrdp

VPS en Linux cunha interface gráfica: lanzamento dun servidor RDP en Ubuntu 18.04

sudo netstat -ap |grep xrdp

VPS en Linux cunha interface gráfica: lanzamento dun servidor RDP en Ubuntu 18.04
O xestor de sesións normalmente non é visible para os usuarios, porque o inicio de sesión e o contrasinal especificados na configuración do cliente transfírenselle automaticamente. Se isto non ocorre ou se produce un erro durante a autenticación, aparecerá unha xanela de inicio de sesión interactiva en lugar do escritorio.

VPS en Linux cunha interface gráfica: lanzamento dun servidor RDP en Ubuntu 18.04
O inicio automático do xestor de sesións especifícase no ficheiro /etc/default/xrdp e a configuración gárdase en /etc/xrdp/sesman.ini. Por defecto parece algo 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]

Non tes que cambiar nada aquí, só tes que desactivar o inicio de sesión con dereitos de root (AllowRootLogin=false). Para cada usuario autorizado no sistema, lánzase un proceso xrdp separado: se se desconecta sen finalizar a sesión, os procesos de usuario seguirán executándose de forma predeterminada e poderá conectarse de novo á sesión. A configuración pódese cambiar no ficheiro /etc/xrdp/sesman.ini (sección [Sesións]).

Cambio de disposición do teclado

Normalmente non hai problemas co portapapeis bidireccional, pero coa disposición do teclado ruso terás que xogar un pouco (a configuración rusa xa debería estar instalado). Imos editar a configuración do teclado do servidor Xrdp:

sudo nano /etc/xrdp/xrdp_keyboard.ini

Debe engadir as seguintes liñas ao final do ficheiro 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 o que queda é gardar o ficheiro e reiniciar Xrdp:

sudo systemctl restart xrdp

Como podes ver, non é difícil configurar un servidor RDP nun VPS Linux, pero artigo anterior Xa falamos da configuración de VNC. Ademais destas tecnoloxías, hai outra opción interesante: o sistema X3Go que utiliza un protocolo NX 2 modificado. Tratarémolo na próxima publicación.

VPS en Linux cunha interface gráfica: lanzamento dun servidor RDP en Ubuntu 18.04

Fonte: www.habr.com

Engadir un comentario