VPS in Linux cù una interfaccia grafica: lanciazione di un servitore RDP in Ubuntu 18.04

VPS in Linux cù una interfaccia grafica: lanciazione di un servitore RDP in Ubuntu 18.04
В articulu precedente avemu discututu di eseguisce un servitore VNC in una macchina virtuale di ogni tipu. Questa opzione hà assai svantaghji, u principale di quale hè l'alti requisiti per u throughput di i canali di trasmissione di dati. Oghje avemu da pruvà à cunnette à un desktop graficu in Linux via RDP (Protokollu Desktop Remote). U sistema VNC hè basatu annantu à trasmette array di pixel cù u protocolu RFB (Remote Framebuffer), è RDP permette di mandà primitivi grafichi più cumplessi è cumandamenti d'altu livellu. Hè tipicamente utilizatu per ospitare Servizi di Desktop Remote in Windows, ma i servitori per Linux sò ancu dispunibili.

Table di cuntenutu:

Installazione di l'ambiente graficu
Russificazione di u servitore è installazione di software
Installazione è cunfigurazione di un servitore RDP
Configurazione di un firewall
Cunnessione à un servitore RDP
Session Manager è User Sessions
Cambia u layout di u teclatu

Installazione di l'ambiente graficu

Piglieremu una macchina virtuale cù Ubuntu Server 18.04 LTS cù dui core di computing, quattru gigabyte di RAM è un discu duru di vinti gigabyte (HDD). Una cunfigurazione più debule ùn hè micca adattata per un desktop gràficu, ancu s'ellu dipende di e funzioni chì sò risolte. Ùn vi scurdate di utilizà u codice promozionale Habrahabr10 per uttene un scontu di 10% nantu à u vostru ordine.

VPS in Linux cù una interfaccia grafica: lanciazione di un servitore RDP in Ubuntu 18.04
L'installazione di l'ambiente di u desktop cù tutte e dipendenze hè fatta cù u cumandimu seguente:

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

Cum'è in u casu precedente, avemu sceltu XFCE per via di e so esigenze di risorse informatiche relativamente bassu.

Russificazione di u servitore è installazione di software

Spessu e macchine virtuali sò implementate solu cù a localizazione inglese. Nant'à u desktop, pudete bisognu di u Russu, chì hè faciule d'installà. Prima, installemu traduzzioni per i prugrammi di u sistema:

sudo apt-get install language-pack-ru

Fighjemu a localizazione:

sudo update-locale LANG=ru_RU.UTF-8

U listessu effettu pò esse ottenutu editendu manualmente u /etc/default/locale.

Per a localizazione di GNOME è KDE, u repository hà i pacchetti language-pack-gnome-ru è language-pack-kde-ru - avete bisognu di elli se utilizate prugrammi da questi ambienti desktop. In XFCE, i traduzzioni sò stallati cù l'applicazioni. In seguitu pudete installà i dizionari:

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

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

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

Inoltre, l'installazione di traduzzioni pò esse necessariu per alcuni prugrammi di l'applicazione:

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

Questu compie a preparazione di l'ambienti desktop, tuttu ciò chì resta hè di cunfigurà u servitore RDP.

Installazione è cunfigurazione di un servitore RDP

I repositori Ubuntu anu un servitore Xrdp distribuitu liberamente, chì useremu:

sudo apt-get install xrdp

Se tuttu hè andatu bè, u servitore deve principià automaticamente:

sudo systemctl status xrdp

VPS in Linux cù una interfaccia grafica: lanciazione di un servitore RDP in Ubuntu 18.04
U servitore Xrdp funziona cù diritti d'utilizatore xrdp è per difettu piglia u certificatu /etc/ssl/private/ssl-cert-snakeoil.key, chì pò esse rimpiazzatu cù u vostru propiu. Per avè accessu à leghje u schedariu, avete bisognu di aghjunghje l'utilizatore à u gruppu ssl-cert:

sudo adduser xrdp ssl-cert

I paràmetri predeterminati ponu esse truvati in u schedariu /etc/default/xrdp, è tutti l'altri schedarii di cunfigurazione di u servitore si trovanu in u cartulare /etc/xrdp. I paràmetri principali sò in u schedariu xrdp.ini, chì ùn hà micca bisognu di cambià. A cunfigurazione hè ben documentata, è i manpages currispondenti sò inclusi:

man xrdp.ini
man xrdp

Tuttu ciò chì resta hè di edità u script /etc/xrdp/startwm.sh, chì hè eseguitu quandu a sessione d'utilizatore hè inizializzata. Prima, facemu una copia di salvezza di u script da a distribuzione:

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

Per inizià l'ambiente desktop XFCE, avete bisognu di un script cum'è questu:

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

Per piacè nutate: in scripts hè megliu scrive u percorsu sanu à i schedarii eseguibili - questu hè un bonu abitudine. Facemu u script eseguibile è à questu puntu a cunfigurazione di u servitore Xrdp pò esse cunsideratu cumpleta:

sudo chmod 755 /etc/xrdp/startwm.sh

Riavvia u servitore:

sudo systemctl restart xrdp

Configurazione di un firewall

Per automaticamente, Xrdp ascolta u portu TCP 3389 nantu à tutte l'interfacce. Sicondu a cunfigurazione di u servitore virtuale, pudete avè bisognu di cunfigurà un firewall Netfilter. In Linux questu hè generalmente fattu cù l'utilità iptables, ma in Ubuntu hè megliu aduprà ufw. Se l'indirizzu IP di u cliente hè cunnisciutu, a cunfigurazione hè realizata cù u cumandimu seguente:

sudo ufw allow from IP_Address to any port 3389

Pudete permette cunnessione da qualsiasi IP cum'è questu:

sudo ufw allow 3389

U protocolu RDP soporta a criptografia, ma l'esposizione di u servitore Xrdp à e rete publiche hè una mala idea. Se u cliente ùn hà micca una IP fissa, u servitore deve esse solu à sente u localhost per aumentà a sicurità. Hè megliu accede à ellu via un tunnel SSH, chì redirigerà in modu sicuru u trafficu da l'urdinatore cliente. Avemu un approcciu simili utilizatu in l'articulu precedente per u servitore VNC.

Cunnessione à un servitore RDP

Per travaglià cù l'ambiente di u desktop, hè megliu creà un utilizatore senza privilegiu separatu:

sudo adduser rdpuser

VPS in Linux cù una interfaccia grafica: lanciazione di un servitore RDP in Ubuntu 18.04
Aghjunghjite l'utilizatore à u gruppu sudo per ch'ellu possa eseguisce attività amministrative. Se ùn ci hè micca bisognu, pudete saltà stu passu:

sudo gpasswd -a rdpuser sudo

Pudete cunnette à u servitore utilizendu qualsiasi cliente RDP, cumpresu u cliente Windows Remote Desktop Services integratu. Se Xrdp sta à sente l'interfaccia esterna, ùn serà micca necessariu azzione supplementaria. Hè abbastanza per specificà l'indirizzu IP VPS, u nome d'utilizatore è a password in i paràmetri di cunnessione. Dopu a cunnessione, vedemu qualcosa cum'è questu:

VPS in Linux cù una interfaccia grafica: lanciazione di un servitore RDP in Ubuntu 18.04
Dopu a cunfigurazione iniziale di l'ambiente desktop, averemu un desktop cumpletu. Comu pudete vede, ùn cunsuma micca assai risorse, ancu se tuttu dipende di l'applicazioni utilizati.

VPS in Linux cù una interfaccia grafica: lanciazione di un servitore RDP in Ubuntu 18.04
Se u servitore Xrdp ascolta solu u locale host, u trafficu nantu à l'urdinatore cliente duverà esse imballatu in un tunnel SSH (sshd deve esse in esecuzione nantu à u VPS). In Windows, pudete aduprà un cliente gràficu SSH (per esempiu, PuTTY), è in sistemi UNIX avete bisognu di l'utilità ssh:

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

Dopu chì u tunelu hè inizializatu, u cliente RDP ùn sarà più cunnessu à u servitore remotu, ma à l'ospite lucale.

Hè più difficiuli cù i dispositi mobili: i clienti SSH capaci di alzà un tunelu duverà esse acquistatu, è in iOS è iPadOS, l'operazione di fondo di l'applicazioni di terzu hè difficiule per una ottimisazione troppu bona di u cunsumu d'energia. Nantu à l'iPhone è l'iPad, ùn puderete micca creà un tunnel in una applicazione separata; avete bisognu di una applicazione di cugliera chì pò stabilisce una cunnessione RDP via SSH. Cume, per esempiu Remoter Pro.

Session Manager è User Sessions

A capacità di travagliu multi-utilizatori hè implementata direttamente in u servitore Xrdp è ùn hè micca bisognu di cunfigurazione supplementaria. Dopu avè principiatu u serviziu via systemd, un prucessu corre in modu daemon, ascolta u portu 3389 è cumunicà per u locale host cù u gestore di sessione.

ps aux |grep xrdp

VPS in Linux cù una interfaccia grafica: lanciazione di un servitore RDP in Ubuntu 18.04

sudo netstat -ap |grep xrdp

VPS in Linux cù una interfaccia grafica: lanciazione di un servitore RDP in Ubuntu 18.04
U gestore di sessione ùn hè generalmente micca visibile à l'utilizatori, perchè u login è a password specificata in i paràmetri di u cliente sò trasferiti automaticamente. Se questu ùn succede micca o ci hè un errore durante l'autentificazione, una finestra di login interattiva apparirà invece di u desktop.

VPS in Linux cù una interfaccia grafica: lanciazione di un servitore RDP in Ubuntu 18.04
U lanciamentu automaticu di u gestore di sessione hè specificatu in u schedariu /etc/default/xrdp, è a cunfigurazione hè guardata in /etc/xrdp/sesman.ini. Per automaticamente, pare qualcosa cusì:

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

Ùn ci vole micca cambià nunda quì, basta à disattivà u login cù diritti di root (AllowRootLogin=false). Per ogni utilizatore autorizatu in u sistema, un prucessu xrdp separatu hè lanciatu: se disconnette senza finisce a sessione, i prucessi di l'utilizatori continuanu à eseguisce per automaticamente, è pudete cunnette à a sessione di novu. I paràmetri ponu esse cambiati in u schedariu /etc/xrdp/sesman.ini (rùbbrica [Sessions]).

Cambia u layout di u teclatu

Di solitu ùn ci sò micca prublemi cù un clipboard bidirezionale, ma cù u layout di u teclatu russu duverà ghjucà un pocu (a locale russa deve esse digià stallatu). Editemu i paràmetri di u teclatu di u servitore Xrdp:

sudo nano /etc/xrdp/xrdp_keyboard.ini

Avete bisognu di aghjunghje e seguenti linee à a fine di u schedariu di cunfigurazione:

[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

Tuttu ciò chì resta hè di salvà u schedariu è riavvia Xrdp:

sudo systemctl restart xrdp

Comu pudete vede, ùn hè micca difficiule di stallà un servitore RDP in un VPS Linux, ma articulu precedente Avemu digià discututu a configurazione di VNC. In più di sti tecnulugii, ci hè una altra opzione interessante: u sistema X3Go cù un protocolu NX 2 mudificatu. Avemu da trattà in a prossima publicazione.

VPS in Linux cù una interfaccia grafica: lanciazione di un servitore RDP in Ubuntu 18.04

Source: www.habr.com

Add a comment