VPS na Linuxe s grafickým rozhraním: spúšťame server RDP na Ubuntu 18.04

VPS na Linuxe s grafickým rozhraním: spúšťame server RDP na Ubuntu 18.04
V predchádzajúcej článku Rozobrali sme spustenie VNC servera na virtuálnom stroji akéhokoľvek typu. Táto možnosť má množstvo nevýhod, pričom hlavná z nich sú vysoké požiadavky na šírku pásma prenosových kanálov. Dnes sa pokúsime pripojiť k grafickej pracovnej ploche na Linuxe pomocou RDP (Remote Desktop Protocol). Systém VNC je založený na prenose políčok pixelov prostredníctvom protokolu RFB (Remote Framebuffer), zatiaľ čo RDP umožňuje posielať zložitejšie grafické primitívy a príkazy na vysokej úrovni. Zvyčajne sa používa na organizáciu služieb vzdialených pracovných plôch vo Windows, ale servery pre Linux sú tiež k dispozícii.

Obsah:

Inštalácia grafického prostredia
Ruská lokalizácia servera a inštalácia softvéru
Inštalácia a nastavenie RDP servera
Nastavenie firewallu
Pripojenie k RDP serveru
Správca relácií a relácie používateľov
Prepínanie rozložení klávesnice

Inštalácia grafického prostredia

Vezmeme virtuálny stroj s Ubuntu Server 18.04 LTS s dvoma výpočtovými jadrami, štyrmi gigabajtmi RAM a pevným diskom (HDD) s kapacitou dvadsať gigabajtov. Slabšia konfigurácia nie je vhodná pre grafickú pracovnú plochu, aj keď to závisí od úloh. Nezabudnite použiť propagačný kód Habrahabr10 na získanie 10% zľavy pri objednávke.

VPS na Linuxe s grafickým rozhraním: spúšťame server RDP na Ubuntu 18.04
Inštalácia prostredia pracovnej plochy so všetkými závislosťami sa vykonáva nasledujúcim príkazom:

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

Rovnako ako v predchádzajúcom prípade, sme si vybrali XFCE kvôli relatívne nízkym požiadavkám na výpočtové zdroje.

Ruská lokalizácia servera a inštalácia softvéru

Často sú virtuálne stroje nasadené iba s anglickou lokalizáciou. Na pracovnej ploche môže byť potrebná ruská, ktorú je jednoduché nastaviť. Najprv nainštalujeme preklady pre systémové programy:

sudo apt-get install language-pack-sk

Nastavíme lokalizáciu:

sudo update-locale LANG=sk_SK.UTF-8

Rovnakého efektu možno dosiahnuť manuálnym úpravou súboru /etc/default/locale.

Pre lokalizáciu GNOME a KDE sú v repozitári k dispozícii balíky language-pack-gnome-sk a language-pack-kde-sk — budú potrebné, ak plánujete používať programy z týchto desktopových prostredí. V XFCE sa preklady inštalujú spolu s aplikáciami. Potom je možné nainštalovať slovníky:

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

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

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

Okrem toho môže byť inštalácia prekladov potrebná pre niektoré aplikačné programy:

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

Týmto je príprava prostredia pracovnej plochy dokončená, zostáva nastaviť RDP server.

Inštalácia a nastavenie RDP servera

V repozitároch Ubuntu je voľne dostupný server Xrdp, ktorý využijeme:

sudo apt-get install xrdp

Ak všetko prebehlo bez problémov, server by sa mal spustiť automaticky:

sudo systemctl status xrdp

VPS na Linuxe s grafickým rozhraním: spúšťame server RDP na Ubuntu 18.04
Server Xrdp sa spúšťa s právami používateľa xrdp a predvolene berie certifikát /etc/ssl/private/ssl-cert-snakeoil.key, ktorý môže byť nahradený vlastným. Na prístup k súboru je potrebné pridať používateľa do skupiny ssl-cert:

sudo adduser xrdp ssl-cert

Predvoľby je možné nájsť v súbore /etc/default/xrdp a všetky ostatné konfiguračné súbory servera sú v adresári /etc/xrdp. Hlavné parametre nájdeme v súbore xrdp.ini, ktorý nie je potrebné meniť. Konfigurácia je dobre zdokumentovaná a súčasťou sú aj príslušné manpages:

man xrdp.ini
man xrdp

Zostáva len upraviť skript /etc/xrdp/startwm.sh, ktorý sa vykonáva pri inicializácii používateľskej relácie. Predtým si vytvoríme zálohu skriptu z distribúcie:

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

Na spustenie pracovného prostredia XFCE bude potrebný skript približne takto:

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

Všimnite si: v skriptoch je lepšie uvádzať úplnú cestu k spustiteľným súborom — je to dobrý zvyk. Urobíme skript spustiteľným a týmto je nastavenie servera Xrdp ukončené:

sudo chmod 755 /etc/xrdp/startwm.sh

Reštartujeme server:

sudo systemctl restart xrdp

Nastavenie firewallu

Predvolene Xrdp počúva na TCP porte 3389 na všetkých rozhraniach. V závislosti od konfigurácie virtuálneho servera môže byť potrebné nastaviť firewall Netfilter. V Linuxe sa to zvyčajne robí pomocou nástroja iptables, ale v Ubuntu je lepšie použiť ufw. Ak je známa IP adresa klienta, konfigurácia sa vykoná nasledujúcou príkazom:

sudo ufw allow from IP_Address to any port 3389

Povoliť pripojenia z akejkoľvek IP je možné takto:

sudo ufw allow 3389

Protokol RDP podporuje šifrovanie, ale otvárať prístup k serveru Xrdp z verejných sietí — je zlé rozhodnutie. Ak klient nemá statickú IP, na zvýšenie úrovne zabezpečenia by mal server počúvať iba na localhost. Prístup je lepšie nastaviť cez SSH tunel, ktorý bezpečne presmeruje prenos z klientského počítača. Podobný prístup sme použili v predchádzajúcom článku pre server VNC.

Pripojenie k RDP serveru

Na prácu s pracovným prostredím je lepšie vytvoriť samostatného nepremenného používateľa:

sudo adduser rdpuser

VPS na Linuxe s grafickým rozhraním: spúšťame server RDP na Ubuntu 18.04
Pridáme používateľa do skupiny sudo, aby mohol riešiť úlohy súvisiace s administráciou. Ak nie je táto potreba, tento krok možno preskočiť:

sudo gpasswd -a rdpuser sudo

Na pripojenie k serveru je možné použiť akéhokoľvek RDP klienta, vrátane integrovaného klienta služby vzdialených pracovných stolov Windows. Ak Xrdp počúva na vonkajšom rozhraní, nebude potrebné žiadne ďalšie kroky. Stačí zadať v nastaveniach pripojenia IP adresu VPS, meno používateľa a heslo. Po pripojení uvidíme približne takýto obraz:

VPS na Linuxe s grafickým rozhraním: spúšťame server RDP na Ubuntu 18.04
Po počiatočnom nastavení pracovného prostredia získame plnohodnotný desktop. Ako vidíte, nevyžaduje to veľa zdrojov, hoci ďalšie závisí od používaných aplikácií.

VPS na Linuxe s grafickým rozhraním: spúšťame server RDP na Ubuntu 18.04
Ak server Xrdp počúva len na localhost, musí sa na klientskej počítači prenášať prenos cez SSH tunel (na VPS musí bežať sshd). Na Windows môžete použiť grafického SSH klienta (napríklad PuTTY), zatiaľ čo v UNIX systémoch potrebujete nástroj ssh:

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

Po inicializácii tunela sa klient RDP bude pripájať už nie k vzdialenému serveru, ale k lokálnemu hostiteľovi.

S mobilnými zariadeniami je to zložitejšie: budete musieť zakúpiť klientov SSH schopných vytiahnuť tunel, navyše v iOS a iPadOS je zložitá práca na pozadí s aplikáciami tretích strán kvôli príliš dobrej optimalizácii energetickej spotreby. Na iPhone a iPade nebude možné vytiahnuť tunel v samostatnej aplikácii — bude potrebná aplikácia kombinujúca oboje, ktorá sama dokáže nadviazať pripojenie RDP cez SSH. Napríklad taká, ako je Remoter Pro.

Správca relácií a relácie používateľov

Možnosť viacerých používateľov je realizovaná priamo v serveri Xrdp a nevyžaduje dodatočné nastavenie. Po spustení služby cez systemd jeden proces funguje v režime démona, počúva port 3389 a interaguje cez localhost s manažérom relácií.

ps aux |grep xrdp

VPS na Linuxe s grafickým rozhraním: spúšťame server RDP na Ubuntu 18.04

sudo netstat -ap |grep xrdp

VPS na Linuxe s grafickým rozhraním: spúšťame server RDP na Ubuntu 18.04
Manažér relácií nie je používateľom zvyčajne viditeľný, pretože v nastaveniach klienta sú zadané prihlásenie a heslo automaticky prenášané. Ak sa tak nestane alebo ak pri autentifikácii nastane chyba, namiesto pracovnej plochy sa zobrazí interaktívne okno na prihlásenie do systému.

VPS na Linuxe s grafickým rozhraním: spúšťame server RDP na Ubuntu 18.04
Automatické spustenie manažéra relácií je zapísané v súbore /etc/default/xrdp a konfigurácia sa ukladá v /etc/xrdp/sesman.ini. Predvolená podoba vyzerá približne takto:

[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
; Ak je AlwaysGroupCheck=false, prístup bude povolený
; ak skupina TerminalServerUsers nie je definovaná.
AlwaysGroupCheck=false

[Sessions]

Tu nie je potrebné nič meniť, stačí zakázať prihlasovanie s právami root (AllowRootLogin=false). Pre každého užívateľa, ktorý sa v systéme autentizuje, je spustený samostatný proces xrdp: ak sa odpojí bez ukončenia relácie, procesy používateľov budú predvolene pokračovať v prevádzke a k relácii sa bude možné znova pripojiť. Nastavenia je možné zmeniť v súbore /etc/xrdp/sesman.ini (sekcia [Sessions]).

Prepínanie rozložení klávesnice

S obojsmerným clipboardom zvyčajne nie sú problémy, ale s ruskou klávesnicou bude potrebné trochu laborovať (ruská lokalizácia musí byť už nainštalovaná). Upraviť nastavenia klávesnice servera Xrdp:

sudo nano /etc/xrdp/xrdp_keyboard.ini

Na koniec konfiguračného súboru je potrebné pridať nasledujúce riadky:

[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

Zostáva súbor uložiť a reštartovať Xrdp:

sudo systemctl restart xrdp

Ako vidíte, spustiť server RDP na linuxovom VPS nie je ťažké, už predchádzajúcej článku sme rozobrali nastavenie VNC. Okrem týchto technológií existuje ešte jedna zaujímavá varianta: systém X2Go, ktorý využíva modifikovaný protokol NX 3. S ňou sa budeme zaoberať v nasledujúcom príspevku.

VPS na Linuxe s grafickým rozhraním: spúšťame server RDP na Ubuntu 18.04

Zdroj: habr.com

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster