VPS a Linux amb una interfície gràfica: llançament d'un servidor RDP a Ubuntu 18.04

VPS a Linux amb una interfície gràfica: llançament d'un servidor RDP a Ubuntu 18.04
В article anterior vam parlar de l'execució d'un servidor VNC en una màquina virtual de qualsevol tipus. Aquesta opció té molts desavantatges, el principal dels quals és els alts requisits per al rendiment dels canals de transmissió de dades. Avui intentarem connectar-nos a un escriptori gràfic a Linux mitjançant RDP (Remote Desktop Protocol). El sistema VNC es basa en la transmissió de matrius de píxels mitjançant el protocol RFB (Remote Framebuffer), i RDP us permet enviar primitives gràfics més complexes i ordres d'alt nivell. Normalment s'utilitza per allotjar serveis d'escriptori remot a Windows, però també hi ha servidors per a Linux disponibles.

Taula de continguts:

Instal·lació de l'entorn gràfic
Russificació del servidor i instal·lació de programari
Instal·lació i configuració d'un servidor RDP
Configuració d'un tallafoc
Connexió a un servidor RDP
Gestor de sessions i sessions d'usuari
Canvi de disposició del teclat

Instal·lació de l'entorn gràfic

Prenem una màquina virtual amb Ubuntu Server 18.04 LTS amb dos nuclis informàtics, quatre gigabytes de memòria RAM i un disc dur (HDD) de vint gigabytes. Una configuració més feble no és adequada per a un escriptori gràfic, tot i que això depèn de les tasques que es resolguin. No oblidis utilitzar el codi promocional Habrahabr10 per obtenir un descompte del 10% a la teva comanda.

VPS a Linux amb una interfície gràfica: llançament d'un servidor RDP a Ubuntu 18.04
La instal·lació de l'entorn d'escriptori amb totes les dependències es fa amb l'ordre següent:

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

Com en el cas anterior, vam triar XFCE a causa dels seus requisits de recursos informàtics relativament baixos.

Russificació del servidor i instal·lació de programari

Sovint, les màquines virtuals només es despleguen amb localització en anglès. A l'escriptori és possible que necessiteu rus, que és fàcil de configurar. Primer, instal·lem traduccions per als programes del sistema:

sudo apt-get install language-pack-ru

Configurem la localització:

sudo update-locale LANG=ru_RU.UTF-8

El mateix efecte es pot aconseguir editant manualment el fitxer /etc/default/locale.

Per a la localització de GNOME i KDE, el repositori té els paquets language-pack-gnome-ru i language-pack-kde-ru; els necessitareu si feu servir programes d'aquests entorns d'escriptori. A XFCE, les traduccions s'instal·len amb aplicacions. A continuació podeu instal·lar els diccionaris:

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

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

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

A més, pot ser que calgui instal·lar traduccions per a alguns programes d'aplicació:

# Браузер 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

Així es completa la preparació de l'entorn d'escriptori, només queda configurar el servidor RDP.

Instal·lació i configuració d'un servidor RDP

Els repositoris d'Ubuntu tenen un servidor Xrdp distribuït lliurement, que farem servir:

sudo apt-get install xrdp

Si tot ha anat bé, el servidor hauria d'iniciar-se automàticament:

sudo systemctl status xrdp

VPS a Linux amb una interfície gràfica: llançament d'un servidor RDP a Ubuntu 18.04
El servidor Xrdp s'executa amb drets d'usuari xrdp i, per defecte, pren el certificat /etc/ssl/private/ssl-cert-snakeoil.key, que es pot substituir pel vostre. Per tenir accés per llegir el fitxer, cal afegir l'usuari al grup ssl-cert:

sudo adduser xrdp ssl-cert

La configuració predeterminada es pot trobar al fitxer /etc/default/xrdp, i tots els altres fitxers de configuració del servidor es troben al directori /etc/xrdp. Els paràmetres principals es troben al fitxer xrdp.ini, que no cal canviar-lo. La configuració està ben documentada i s'inclouen les pàgines de manual corresponents:

man xrdp.ini
man xrdp

Només queda editar l'script /etc/xrdp/startwm.sh, que s'executa quan s'inicia la sessió d'usuari. Primer, fem una còpia de seguretat de l'script des de la distribució:

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

Per iniciar l'entorn d'escriptori XFCE, necessitareu un script com aquest:

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

Tingueu en compte: als scripts és millor escriure el camí complet als fitxers executables: aquest és un bon hàbit. Fem que l'script sigui executable i en aquest punt la configuració del servidor Xrdp es pot considerar completa:

sudo chmod 755 /etc/xrdp/startwm.sh

Reinicieu el servidor:

sudo systemctl restart xrdp

Configuració d'un tallafoc

Per defecte, Xrdp escolta el port TCP 3389 a totes les interfícies. Depenent de la configuració del servidor virtual, és possible que hàgiu de configurar un tallafoc de Netfilter. A Linux això es fa normalment amb la utilitat iptables, però a Ubuntu és millor utilitzar ufw. Si es coneix l'adreça IP del client, la configuració es realitza amb l'ordre següent:

sudo ufw allow from IP_Address to any port 3389

Podeu permetre connexions des de qualsevol IP com aquesta:

sudo ufw allow 3389

El protocol RDP admet el xifratge, però exposar el servidor Xrdp a xarxes públiques és una mala idea. Si el client no té una IP fixa, el servidor només hauria d'escoltar localhost per augmentar la seguretat. El millor és accedir-hi mitjançant un túnel SSH, que redirigirà de manera segura el trànsit des de l'ordinador client. Tenim un enfocament semblant utilitzat en l'article anterior per al servidor VNC.

Connexió a un servidor RDP

Per treballar amb l'entorn d'escriptori, és millor crear un usuari sense privilegis independent:

sudo adduser rdpuser

VPS a Linux amb una interfície gràfica: llançament d'un servidor RDP a Ubuntu 18.04
Afegim l'usuari al grup sudo perquè pugui realitzar tasques relacionades amb l'administració. Si no és necessari, podeu ometre aquest pas:

sudo gpasswd -a rdpuser sudo

Podeu connectar-vos al servidor mitjançant qualsevol client RDP, inclòs el client de serveis d'escriptori remot de Windows integrat. Si Xrdp està escoltant la interfície externa, no caldrà cap acció addicional. N'hi ha prou amb especificar l'adreça IP del VPS, el nom d'usuari i la contrasenya a la configuració de connexió. Després de connectar-nos, veurem alguna cosa com això:

VPS a Linux amb una interfície gràfica: llançament d'un servidor RDP a Ubuntu 18.04
Després de la configuració inicial de l'entorn d'escriptori, obtindrem un escriptori complet. Com veieu, no consumeix molts recursos, tot i que tot dependrà de les aplicacions utilitzades.

VPS a Linux amb una interfície gràfica: llançament d'un servidor RDP a Ubuntu 18.04
Si el servidor Xrdp només escolta localhost, el trànsit de l'ordinador client s'haurà d'empaquetar en un túnel SSH (sshd s'ha d'executar al VPS). A Windows, podeu utilitzar un client SSH gràfic (per exemple, PuTTY) i en sistemes UNIX necessiteu la utilitat ssh:

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

Un cop inicialitzat el túnel, el client RDP ja no es connectarà al servidor remot, sinó a l'amfitrió local.

Amb els dispositius mòbils és més difícil: caldrà comprar clients SSH capaços d'aixecar un túnel, i a iOS i iPadOS, el funcionament en segon pla d'aplicacions de tercers és difícil a causa d'una optimització massa bona del consum d'energia. A l'iPhone i l'iPad, no podreu crear un túnel en una aplicació independent; necessitareu una aplicació recol·lectora que pugui establir una connexió RDP mitjançant SSH. Com per exemple Remoter Pro.

Gestor de sessions i sessions d'usuari

La capacitat de treballar multiusuari s'implementa directament al servidor Xrdp i no requereix configuració addicional. Després d'iniciar el servei mitjançant systemd, un procés s'executa en mode dimoni, escolta al port 3389 i es comunica mitjançant localhost amb el gestor de sessions.

ps aux |grep xrdp

VPS a Linux amb una interfície gràfica: llançament d'un servidor RDP a Ubuntu 18.04

sudo netstat -ap |grep xrdp

VPS a Linux amb una interfície gràfica: llançament d'un servidor RDP a Ubuntu 18.04
El gestor de sessions normalment no és visible per als usuaris, perquè l'inici de sessió i la contrasenya especificats a la configuració del client s'hi transfereixen automàticament. Si això no passa o hi ha un error durant l'autenticació, apareixerà una finestra d'inici de sessió interactiva en lloc de l'escriptori.

VPS a Linux amb una interfície gràfica: llançament d'un servidor RDP a Ubuntu 18.04
L'inici automàtic del gestor de sessions s'especifica al fitxer /etc/default/xrdp i la configuració s'emmagatzema a /etc/xrdp/sesman.ini. Per defecte, sembla una cosa així:

[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 cal que canvieu res aquí, només heu de desactivar l'inici de sessió amb drets d'arrel (AllowRootLogin=false). Per a cada usuari autoritzat al sistema, s'inicia un procés xrdp independent: si us desconnecteu sense finalitzar la sessió, els processos d'usuari continuaran executant-se de manera predeterminada i us podreu tornar a connectar a la sessió. La configuració es pot canviar al fitxer /etc/xrdp/sesman.ini (secció [Sessions]).

Canvi de disposició del teclat

Normalment no hi ha problemes amb un porta-retalls bidireccional, però amb la disposició del teclat rus haureu de jugar una mica (la configuració regional russa ja hauria d'estar instal·lat). Editem la configuració del teclat del servidor Xrdp:

sudo nano /etc/xrdp/xrdp_keyboard.ini

Heu d'afegir les línies següents al final del fitxer de configuració:

[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

Només queda desar el fitxer i reiniciar Xrdp:

sudo systemctl restart xrdp

Com podeu veure, no és difícil configurar un servidor RDP en un VPS Linux, però article anterior Ja hem parlat de la configuració de VNC. A més d'aquestes tecnologies, hi ha una altra opció interessant: el sistema X3Go que utilitza un protocol NX 2 modificat. Ho tractarem en la propera publicació.

VPS a Linux amb una interfície gràfica: llançament d'un servidor RDP a Ubuntu 18.04

Font: www.habr.com

Afegeix comentari