VPS na Linuxu s grafickým rozhraním: spouštíme server RDP na Ubuntu 18.04

VPS na Linuxu s grafickým rozhraním: spouštíme server RDP na Ubuntu 18.04
V předchozí článku Probrali jsme spuštění serveru VNC na virtuálním stroji jakéhokoli typu. Tento variant má spoustu nedostatků, přičemž hlavním z nich jsou vysoké požadavky na šířku pásma přenosových kanálů. Dnes se pokusíme připojit k grafické pracovní ploše na Linuxu pomocí RDP (Remote Desktop Protocol). Systém VNC je založen na přenosu políček pixelů prostřednictvím protokolu RFB (Remote Framebuffer), zatímco RDP umožňuje posílat složitější grafické primitiva a vysoce úrovňové příkazy. Obvykle se používá k organizaci služeb vzdálených pracovních ploch ve Windows, ale servery pro Linux jsou také k dispozici.

Obsah:

Instalace grafického prostředí
Čeština serveru a instalace software
Instalace a nastavení serveru RDP
Nastavení firewallu
Připojení k serveru RDP
Správce relací a relace uživatelů
Přepínání jazykových rozložení klávesnice

Instalace grafického prostředí

Vezmeme si virtuální stroj s Ubuntu Server 18.04 LTS se dvěma procesorovými jádry, čtyřmi gigabajty RAM a pevným diskem (HDD) o velikosti dvacet gigabajtů. Slabší konfigurace se špatně hodí pro grafickou plochu, i když to záleží na úlohách, které řešíte. Nezapomínejte používat promo kód Habrahabr10 pro získání 10% slevy při objednávce.

VPS na Linuxu s grafickým rozhraním: spouštíme server RDP na Ubuntu 18.04
Instalace pracovního prostředí se všemi závislostmi se provádí následujícím příkazem:

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

Jak již bylo řečeno, vybrali jsme XFCE kvůli relativně nízkým požadavkům na výpočetní zdroje.

Čeština serveru a instalace software

Často se virtuální stroje rozbíhají pouze s anglickou lokalizací. Na ploše může být potřeba čeština, kterou není těžké nastavit. Nejprve nainstalujeme překlady systémových programů:

sudo apt-get install language-pack-cs

Nastavíme lokalizaci:

sudo update-locale LANG=cs_CZ.UTF-8

Téhož efektu lze dosáhnout úpravou souboru /etc/default/locale ručně.

Pro lokalizaci GNOME a KDE jsou v repozitáři k dispozici balíčky language-pack-gnome-cs a language-pack-kde-cs – budou potřebné, pokud budete používat programy z těchto prostředí desktopu. V XFCE se překlady instalují spolu s aplikacemi. Dále můžete nainstalovat slovníky:

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

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

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

Kromě toho může být instalace překladů nutná pro některé aplikace:

# Браузер 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 příprava desktopového prostředí dokončena, zbývá nastavit server RDP.

Instalace a nastavení serveru RDP

V repozitářích Ubuntu je dostupný server Xrdp, který využijeme:

sudo apt-get install xrdp

Pokud vše proběhlo správně, server by měl automaticky naběhnout:

sudo systemctl status xrdp

VPS na Linuxu s grafickým rozhraním: spouštíme server RDP na Ubuntu 18.04
Server Xrdp běží s právy uživatele xrdp a standardně používá certifikát /etc/ssl/private/ssl-cert-snakeoil.key, který lze nahradit vlastním. Pro přístup ke čtení souboru je třeba uživatele přidat do skupiny ssl-cert:

sudo adduser xrdp ssl-cert

Výchozí nastavení můžete nalézt v souboru /etc/default/xrdp, zatímco všechny ostatní konfigurační soubory serveru jsou umístěny v adresáři /etc/xrdp. Hlavní parametry se nacházejí v souboru xrdp.ini, který lze nechat beze změn. Konfigurace je dobře zdokumentována a navíc jsou k dispozici odpovídající manpages:

man xrdp.ini
man xrdp

Zbývá pouze upravit skript /etc/xrdp/startwm.sh, který se spouští při inicializaci uživatelské relace. Nejprve vytvoříme zálohu skriptu z distribuce:

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

Pro spuštění prostředí desktopu XFCE bude potřeba skript přibližně takovéhoto obsahu:

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

Všimněte si, že ve skriptech je lepší psát úplnou cestu k vykonávaným souborům — je to dobrý zvyk. Uděláme skript vykonavatelným a tímto můžeme považovat nastavení serveru Xrdp za ukončené:

sudo chmod 755 /etc/xrdp/startwm.sh

Restartujeme server:

sudo systemctl restart xrdp

Nastavení firewallu

Standardně Xrdp naslouchá na TCP portu 3389 na všech rozhraních. V závislosti na konfiguraci virtuálního serveru může být třeba nastavit firewall Netfilter. V Linuxu se to obvykle provádí pomocí nástroje iptables, ale v Ubuntu je lepší použít ufw. Pokud je známá IP adresa klienta, konfigurace se provádí následujícím příkazem:

sudo ufw allow from IP_Address to any port 3389

Povolit spojení z jakéhokoliv IP lze takto:

sudo ufw allow 3389

Protokol RDP podporuje šifrování, ale zpřístupnit server Xrdp z veřejných sítí — je špatný nápad. Pokud klient nemá pevnou IP adresu, pro zvýšení úrovně bezpečnosti by server měl naslouchat pouze na localhost. Přístup k němu je lepší nastavit přes SSH tunel, který bezpečně přesměruje provoz z klientského počítače. Podobný přístup jsme použili v předchozím článku pro server VNC.

Připojení k serveru RDP

Pro práci s desktopovým prostředím je lepší vytvořit jednotlivého neprivilegovaného uživatele:

sudo adduser rdpuser

VPS na Linuxu s grafickým rozhraním: spouštíme server RDP na Ubuntu 18.04
Přidáme uživatele do skupiny sudo, aby mohl vyřešit administrativní úkoly. Pokud to není nutné, tento krok lze přeskočit:

sudo gpasswd -a rdpuser sudo

K serveru se lze připojit pomocí jakéhokoli RDP klienta, včetně vestavěného klienta služby vzdálených pracovních ploch Windows. Pokud Xrdp poslouchá na externím rozhraní, nejsou potřeba žádné další kroky. Stačí zadat v nastavení připojení IP adresu VPS, uživatelské jméno a heslo. Po připojení uvidíme přibližně takový obraz:

VPS na Linuxu s grafickým rozhraním: spouštíme server RDP na Ubuntu 18.04
Po počátečním nastavení pracovní plochy získáme plnohodnotný desktop. Jak vidíte, nezabírá to mnoho prostředků, i když vše bude záviset na používaných aplikacích.

VPS na Linuxu s grafickým rozhraním: spouštíme server RDP na Ubuntu 18.04
Pokud server Xrdp poslouchá pouze na localhost, bude třeba na klientském počítači zabalit provoz do SSH tunelu (na VPS musí běžet sshd). Pod Windows lze použít grafického SSH klienta (například PuTTY), zatímco v UNIXových systémech je potřeba utilita ssh:

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

Po inicializaci tunelu se klient RDP nebude připojovat k vzdálenému serveru, ale k místnímu hostiteli.

S mobilními zařízeními je to složitější: klienti SSH schopní zřídit tunel si budete muset zakoupit, navíc na iOS a iPadOS je obtížné, aby běžely alternativní aplikace na pozadí kvůli příliš dobré optimalizaci spotřeby energie. Na iPhonu a iPadu nebude možné zřídit tunel v samostatné aplikaci – budete potřebovat aplikaci-kombinaci, která umí samostatně navázat připojení RDP přes SSH. Taková, například, jako Remoter Pro.

Správce relací a relace uživatelů

Možnost víc uživatelské práce je realizována přímo v serveru Xrdp a nevyžaduje žádné dodatečné nastavení. Po spuštění služby přes systemd běží jeden proces v režimu démona, poslouchá na portu 3389 a komunikuje přes localhost s manažerem relací.

ps aux |grep xrdp

VPS na Linuxu s grafickým rozhraním: spouštíme server RDP na Ubuntu 18.04

sudo netstat -ap |grep xrdp

VPS na Linuxu s grafickým rozhraním: spouštíme server RDP na Ubuntu 18.04
Manažer relací obvykle není uživatelům viditelný, protože nastavené v klientských nastaveních uživatelské jméno a heslo mu jsou automaticky předávány. Pokud k tomu nezapůsobilo, nebo pokud při ověřování nastala chyba, místo pracovní plochy se zobrazí interaktivní okno pro přihlášení.

VPS na Linuxu s grafickým rozhraním: spouštíme server RDP na Ubuntu 18.04
Automatické spuštění manažera relací je zapsáno v souboru /etc/default/xrdp, a konfigurace je uložena v /etc/xrdp/sesman.ini. Ve výchozím stavu vypadá přibližně 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
; Když je AlwaysGroupCheck=false, bude přístup povolen
; pokud není definována skupina TerminalServerUsers.
AlwaysGroupCheck=false

[Sessions]

Tady není třeba nic měnit, stačí zakázat přihlášení s právy root (AllowRootLogin=false). Pro každého uživatele, který se do systému autorizuje, se spustí samostatný proces xrdp: pokud se odpojí bez ukončení relace, uživatelské procesy budou ve výchozím nastavení pokračovat, a k relaci se bude možné znovu připojit. Nastavení lze změnit v souboru /etc/xrdp/sesman.ini (sekce [Sessions]).

Přepínání jazykových rozložení klávesnice

S obousměrným clipboardem obvykle nejsou problémy, ale s ruskou klávesnicí bude třeba trochu experimentovat (ruská lokalizace již nainstalována). Upravíme klávesové nastavení serveru Xrdp:

sudo nano /etc/xrdp/xrdp_keyboard.ini

Na konec konfiguračního souboru je třeba přidat následující řádky:

[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

Zbývá uložit soubor a restartovat Xrdp:

sudo systemctl restart xrdp

Jak vidíte, zprovoznit RDP server na linuxovém VPS není obtížné, a v předchozí článku už jsme probrali nastavení VNC. Kromě těchto technologií existuje ještě jedna zajímavá možnost: systém X2Go používající modifikovaný protokol NX 3. S tím se seznámíme v následujícím příspěvku.

VPS na Linuxu s grafickým rozhraním: spouštíme server RDP na Ubuntu 18.04

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster