VPS pe Linux cu o interfață grafică: lansarea unui server RDP pe Ubuntu 18.04

VPS pe Linux cu o interfață grafică: lansarea unui server RDP pe Ubuntu 18.04
В anterioară articol am discutat despre rularea unui server VNC pe o mașină virtuală de orice tip. Această opțiune are o mulțime de dezavantaje, dintre care principalul este cerințele ridicate pentru debitul canalelor de transmisie a datelor. Astăzi vom încerca să ne conectăm la un desktop grafic pe Linux prin RDP (Remote Desktop Protocol). Sistemul VNC se bazează pe transmiterea de rețele de pixeli folosind protocolul RFB (Remote Framebuffer), iar RDP vă permite să trimiteți primitive grafice mai complexe și comenzi de nivel înalt. Este de obicei folosit pentru a găzdui Servicii Desktop la distanță pe Windows, dar sunt disponibile și servere pentru Linux.

Cuprins:

Instalarea mediului grafic
Rusificarea serverului și instalarea software-ului
Instalarea și configurarea unui server RDP
Configurarea unui firewall
Conectarea la un server RDP
Manager de sesiuni și sesiuni de utilizator
Schimbarea aspectului tastaturii

Instalarea mediului grafic

Vom lua o mașină virtuală cu Ubuntu Server 18.04 LTS cu două nuclee de calcul, patru gigabytes de RAM și un hard disk (HDD) de douăzeci de gigabytes. O configurație mai slabă nu este potrivită pentru un desktop grafic, deși acest lucru depinde de sarcinile rezolvate. Nu uitați să utilizați codul promoțional Habrahabr10 pentru a obține o reducere de 10% la comanda dumneavoastră.

VPS pe Linux cu o interfață grafică: lansarea unui server RDP pe Ubuntu 18.04
Instalarea mediului desktop cu toate dependențele se face cu următoarea comandă:

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

Ca și în cazul precedent, am ales XFCE datorită cerințelor sale relativ scăzute de resurse de calcul.

Rusificarea serverului și instalarea software-ului

Adesea, mașinile virtuale sunt implementate numai cu localizare în limba engleză. Pe desktop este posibil să aveți nevoie de limba rusă, care este ușor de configurat. Mai întâi, să instalăm traduceri pentru programele de sistem:

sudo apt-get install language-pack-ru

Să setăm localizarea:

sudo update-locale LANG=ru_RU.UTF-8

Același efect poate fi obținut prin editarea manuală a fișierului /etc/default/locale.

Pentru localizarea GNOME și KDE, depozitul are pachetele language-pack-gnome-ru și language-pack-kde-ru - veți avea nevoie de ele dacă utilizați programe din aceste medii desktop. În XFCE, traducerile sunt instalate cu aplicații. În continuare puteți instala dicționarele:

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

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

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

În plus, instalarea traducerilor poate fi necesară pentru unele programe de aplicație:

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

Acest lucru completează pregătirea mediului desktop, tot ce rămâne este configurarea serverului RDP.

Instalarea și configurarea unui server RDP

Arhivele Ubuntu au un server Xrdp distribuit gratuit, pe care îl vom folosi:

sudo apt-get install xrdp

Dacă totul a mers bine, serverul ar trebui să pornească automat:

sudo systemctl status xrdp

VPS pe Linux cu o interfață grafică: lansarea unui server RDP pe Ubuntu 18.04
Serverul Xrdp rulează cu drepturi de utilizator xrdp și preia implicit certificatul /etc/ssl/private/ssl-cert-snakeoil.key, care poate fi înlocuit cu al tău. Pentru a avea acces pentru a citi fișierul, trebuie să adăugați utilizatorul în grupul ssl-cert:

sudo adduser xrdp ssl-cert

Setările implicite pot fi găsite în fișierul /etc/default/xrdp, iar toate celelalte fișiere de configurare a serverului se află în directorul /etc/xrdp. Parametrii principali se află în fișierul xrdp.ini, care nu trebuie modificat. Configurația este bine documentată și sunt incluse paginile de manual corespunzătoare:

man xrdp.ini
man xrdp

Tot ce rămâne este să editați scriptul /etc/xrdp/startwm.sh, care este executat atunci când sesiunea utilizatorului este inițializată. Mai întâi, să facem o copie de rezervă a scriptului din distribuție:

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

Pentru a porni mediul desktop XFCE, veți avea nevoie de un script de genul acesta:

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

Vă rugăm să rețineți: în scripturi este mai bine să scrieți calea completă către fișierele executabile - acesta este un obicei bun. Să facem scriptul executabil și în acest moment configurarea serverului Xrdp poate fi considerată completă:

sudo chmod 755 /etc/xrdp/startwm.sh

Reporniți serverul:

sudo systemctl restart xrdp

Configurarea unui firewall

Implicit, Xrdp ascultă portul TCP 3389 pe toate interfețele. În funcție de configurația serverului virtual, poate fi necesar să configurați un firewall Netfilter. Pe Linux, acest lucru se face de obicei folosind utilitarul iptables, dar pe Ubuntu este mai bine să utilizați ufw. Dacă adresa IP a clientului este cunoscută, configurarea se realizează cu următoarea comandă:

sudo ufw allow from IP_Address to any port 3389

Puteți permite conexiuni de la orice IP astfel:

sudo ufw allow 3389

Protocolul RDP acceptă criptarea, dar expunerea serverului Xrdp la rețelele publice este o idee proastă. Dacă clientul nu are un IP fix, serverul ar trebui să asculte doar localhost pentru a crește securitatea. Cel mai bine este să îl accesați printr-un tunel SSH, care va redirecționa în siguranță traficul de pe computerul client. Avem o abordare similară folosit în articolul precedent pentru serverul VNC.

Conectarea la un server RDP

Pentru a lucra cu mediul desktop, este mai bine să creați un utilizator neprivilegiat separat:

sudo adduser rdpuser

VPS pe Linux cu o interfață grafică: lansarea unui server RDP pe Ubuntu 18.04
Să adăugăm utilizatorul la grupul sudo, astfel încât să poată efectua sarcini legate de administrare. Dacă nu este nevoie, puteți sări peste acest pas:

sudo gpasswd -a rdpuser sudo

Vă puteți conecta la server folosind orice client RDP, inclusiv clientul Windows Remote Desktop Services încorporat. Dacă Xrdp ascultă interfața externă, nu vor fi necesare acțiuni suplimentare. Este suficient să specificați adresa IP VPS, numele de utilizator și parola în setările de conectare. După conectare, vom vedea ceva de genul acesta:

VPS pe Linux cu o interfață grafică: lansarea unui server RDP pe Ubuntu 18.04
După configurarea inițială a mediului desktop, vom obține un desktop cu drepturi depline. După cum puteți vedea, nu consumă multe resurse, deși totul va depinde de aplicațiile utilizate.

VPS pe Linux cu o interfață grafică: lansarea unui server RDP pe Ubuntu 18.04
Dacă serverul Xrdp ascultă doar localhost, traficul de pe computerul client va trebui să fie împachetat într-un tunel SSH (sshd trebuie să ruleze pe VPS). Pe Windows, puteți utiliza un client grafic SSH (de exemplu, PuTTY), iar pe sistemele UNIX aveți nevoie de utilitarul ssh:

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

După inițializarea tunelului, clientul RDP nu se va mai conecta la serverul de la distanță, ci la gazda locală.

Este mai dificil cu dispozitivele mobile: clienții SSH capabili să ridice un tunel vor trebui achiziționați, iar în iOS și iPadOS, funcționarea în fundal a aplicațiilor terță parte este dificilă din cauza optimizării prea bune a consumului de energie. Pe iPhone și iPad, nu veți putea crea un tunel într-o aplicație separată; veți avea nevoie de o aplicație harvester care poate stabili ea însăși o conexiune RDP prin SSH. Cum ar fi, de exemplu Telecomanda Pro.

Manager de sesiuni și sesiuni de utilizator

Capacitatea de a lucra cu mai mulți utilizatori este implementată direct în serverul Xrdp și nu necesită configurare suplimentară. După pornirea serviciului prin systemd, un proces rulează în modul daemon, ascultă pe portul 3389 și comunică prin localhost cu managerul de sesiune.

ps aux |grep xrdp

VPS pe Linux cu o interfață grafică: lansarea unui server RDP pe Ubuntu 18.04

sudo netstat -ap |grep xrdp

VPS pe Linux cu o interfață grafică: lansarea unui server RDP pe Ubuntu 18.04
Managerul de sesiune nu este de obicei vizibil pentru utilizatori, deoarece datele de conectare și parola specificate în setările clientului sunt transferate automat către acesta. Dacă acest lucru nu se întâmplă sau există o eroare în timpul autentificării, va apărea o fereastră interactivă de conectare în locul desktopului.

VPS pe Linux cu o interfață grafică: lansarea unui server RDP pe Ubuntu 18.04
Lansarea automată a managerului de sesiune este specificată în fișierul /etc/default/xrdp, iar configurația este stocată în /etc/xrdp/sesman.ini. În mod implicit, arată cam așa:

[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]

Nu trebuie să schimbați nimic aici, trebuie doar să dezactivați autentificarea cu drepturi root (AllowRootLogin=false). Pentru fiecare utilizator autorizat în sistem, este lansat un proces xrdp separat: dacă vă deconectați fără a încheia sesiunea, procesele utilizatorului vor continua să ruleze implicit și vă puteți conecta din nou la sesiune. Setările pot fi modificate în fișierul /etc/xrdp/sesman.ini (secțiunea [Sessions]).

Schimbarea aspectului tastaturii

De obicei, nu există probleme cu un clipboard cu două sensuri, dar cu aspectul tastaturii rusești va trebui să jucați puțin (localitatea rusă ar trebui să fie deja instalat). Să edităm setările tastaturii serverului Xrdp:

sudo nano /etc/xrdp/xrdp_keyboard.ini

Trebuie să adăugați următoarele linii la sfârșitul fișierului de configurare:

[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

Tot ce rămâne este să salvați fișierul și să reporniți Xrdp:

sudo systemctl restart xrdp

După cum puteți vedea, nu este dificil să configurați un server RDP pe un VPS Linux, dar anterioară articol Am discutat deja despre configurarea VNC. Pe lângă aceste tehnologii, există o altă opțiune interesantă: sistemul X3Go care utilizează un protocol NX 2 modificat. Ne vom ocupa de el în următoarea publicație.

VPS pe Linux cu o interfață grafică: lansarea unui server RDP pe Ubuntu 18.04

Sursa: www.habr.com

Adauga un comentariu