VPS na Linuxu s grafickým rozhraním: spuštění serveru RDP na Ubuntu 18.04

VPS na Linuxu s grafickým rozhraním: spuštění serveru RDP na Ubuntu 18.04
В předchozí článek diskutovali jsme o spuštění serveru VNC na virtuálním počítači jakéhokoli typu. Tato možnost má řadu nevýhod, z nichž hlavní jsou vysoké požadavky na propustnost kanálů přenosu dat. Dnes se pokusíme připojit ke grafické ploše na Linuxu přes RDP (Remote Desktop Protocol). Systém VNC je založen na přenosu polí pixelů pomocí protokolu RFB (Remote Framebuffer) a RDP umožňuje posílat složitější grafická primitiva a příkazy na vysoké úrovni. Obvykle se používá k hostování Služeb vzdálené plochy v systému Windows, ale jsou k dispozici i servery pro Linux.

Obsah:

Instalace grafického prostředí
Rusifikace serveru a instalace softwaru
Instalace a konfigurace serveru RDP
Konfigurace brány firewall
Připojení k serveru RDP
Správce relací a uživatelské relace
Přepínání rozložení klávesnice

Instalace grafického prostředí

Vezmeme virtuální stroj s Ubuntu Server 18.04 LTS se dvěma výpočetními jádry, čtyřmi gigabajty RAM a dvacetigigabajtovým pevným diskem (HDD). Slabší konfigurace není vhodná pro grafický desktop, i když to závisí na řešených úlohách. Nezapomeňte použít promo kód Habrahabr10 pro získání 10% slevy na vaši objednávku.

VPS na Linuxu s grafickým rozhraním: spuštění serveru RDP na Ubuntu 18.04
Instalace desktopového prostředí se všemi závislostmi se provádí pomocí následujícího příkazu:

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

Stejně jako v předchozím případě jsme zvolili XFCE kvůli jeho relativně nízkým nárokům na výpočetní zdroje.

Rusifikace serveru a instalace softwaru

Často jsou virtuální stroje nasazeny pouze s anglickou lokalizací. Na ploše možná budete potřebovat ruštinu, která se snadno nastavuje. Nejprve nainstalujme překlady pro systémové programy:

sudo apt-get install language-pack-ru

Nastavíme lokalizaci:

sudo update-locale LANG=ru_RU.UTF-8

Stejného efektu lze dosáhnout ruční úpravou souboru /etc/default/locale.

Pro lokalizaci GNOME a KDE má úložiště balíčky language-pack-gnome-ru a language-pack-kde-ru – budete je potřebovat, pokud používáte programy z těchto desktopových prostředí. V XFCE se překlady instalují 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

U některých aplikačních programů může být navíc vyžadována instalace překladů:

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

Instalace a konfigurace serveru RDP

Repozitáře Ubuntu mají volně distribuovaný server Xrdp, který budeme používat:

sudo apt-get install xrdp

Pokud vše proběhlo v pořádku, server by se měl spustit automaticky:

sudo systemctl status xrdp

VPS na Linuxu s grafickým rozhraním: spuštění serveru RDP na Ubuntu 18.04
Server Xrdp běží s uživatelskými právy xrdp a ve výchozím nastavení přebírá certifikát /etc/ssl/private/ssl-cert-snakeoil.key, který lze nahradit vaším vlastním. Chcete-li mít přístup ke čtení souboru, musíte uživatele přidat do skupiny ssl-cert:

sudo adduser xrdp ssl-cert

Výchozí nastavení lze nalézt v souboru /etc/default/xrdp a všechny ostatní konfigurační soubory serveru jsou umístěny v adresáři /etc/xrdp. Hlavní parametry jsou v souboru xrdp.ini, který není třeba měnit. Konfigurace je dobře zdokumentována a jsou zahrnuty odpovídající manuálové stránky:

man xrdp.ini
man xrdp

Zbývá pouze upravit skript /etc/xrdp/startwm.sh, který se spustí při inicializaci uživatelské relace. Nejprve si vytvořte záložní kopii skriptu z distribuce:

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

Chcete-li spustit desktopové prostředí XFCE, budete potřebovat skript něco takového:

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

Poznámka: ve skriptech je lepší napsat úplnou cestu ke spustitelným souborům - to je dobrý zvyk. Udělejme skript spustitelný a v tomto okamžiku lze nastavení serveru Xrdp považovat za dokončené:

sudo chmod 755 /etc/xrdp/startwm.sh

Restartujte server:

sudo systemctl restart xrdp

Konfigurace brány firewall

Ve výchozím nastavení Xrdp naslouchá TCP portu 3389 na všech rozhraních. V závislosti na konfiguraci virtuálního serveru může být nutné nakonfigurovat bránu firewall Netfilter. Na Linuxu se to obvykle provádí pomocí nástroje iptables, ale na Ubuntu je lepší použít ufw. Pokud je známa IP adresa klienta, konfigurace se provede pomocí následujícího příkazu:

sudo ufw allow from IP_Address to any port 3389

Můžete povolit připojení z libovolné IP adresy, jako je tato:

sudo ufw allow 3389

Protokol RDP podporuje šifrování, ale vystavení serveru Xrdp veřejným sítím je špatný nápad. Pokud klient nemá pevnou IP adresu, měl by server pro zvýšení zabezpečení naslouchat pouze localhost. Nejlepší je přistupovat k němu přes SSH tunel, který bezpečně přesměruje provoz z klientského počítače. Máme podobný přístup použitý v předchozím článku pro VNC server.

Připojení k serveru RDP

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

sudo adduser rdpuser

VPS na Linuxu s grafickým rozhraním: spuštění serveru RDP na Ubuntu 18.04
Přidejme uživatele do skupiny sudo, aby mohl provádět úkoly související s administrací. Pokud taková potřeba není, můžete tento krok přeskočit:

sudo gpasswd -a rdpuser sudo

K serveru se můžete připojit pomocí libovolného klienta RDP, včetně vestavěného klienta Windows Remote Desktop Services. Pokud Xrdp naslouchá externímu rozhraní, nebudou potřeba žádné další akce. V nastavení připojení stačí zadat VPS IP adresu, uživatelské jméno a heslo. Po připojení uvidíme něco takového:

VPS na Linuxu s grafickým rozhraním: spuštění serveru RDP na Ubuntu 18.04
Po prvotním nastavení desktopového prostředí získáme plnohodnotný desktop. Jak vidíte, nespotřebovává mnoho zdrojů, i když vše bude záviset na použitých aplikacích.

VPS na Linuxu s grafickým rozhraním: spuštění serveru RDP na Ubuntu 18.04
Pokud server Xrdp naslouchá pouze localhost, bude muset být provoz na klientském počítači zabalen do tunelu SSH (sshd musí běžet na VPS). V systému Windows můžete použít grafického klienta SSH (například PuTTY) a v systémech UNIX potřebujete nástroj ssh:

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

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

S mobilními zařízeními je to složitější: SSH klienty schopné zvednout tunel bude nutné zakoupit a v iOS a iPadOS je provoz aplikací třetích stran na pozadí obtížný kvůli příliš dobré optimalizaci spotřeby energie. Na iPhonu a iPadu nebudete moci vytvořit tunel v samostatné aplikaci; budete potřebovat aplikaci harvester, která sama dokáže vytvořit připojení RDP přes SSH. Jako např Remoter Pro.

Správce relací a uživatelské relace

Schopnost víceuživatelské práce je implementována přímo na serveru Xrdp a nevyžaduje další konfiguraci. Po spuštění služby přes systemd běží jeden proces v režimu démona, naslouchá na portu 3389 a komunikuje přes localhost se správcem relací.

ps aux |grep xrdp

VPS na Linuxu s grafickým rozhraním: spuštění serveru RDP na Ubuntu 18.04

sudo netstat -ap |grep xrdp

VPS na Linuxu s grafickým rozhraním: spuštění serveru RDP na Ubuntu 18.04
Správce relací obvykle není pro uživatele viditelný, protože se do něj automaticky přenáší přihlašovací jméno a heslo zadané v nastavení klienta. Pokud se tak nestane nebo dojde k chybě při ověřování, objeví se místo plochy interaktivní přihlašovací okno.

VPS na Linuxu s grafickým rozhraním: spuštění serveru RDP na Ubuntu 18.04
Automatické spuštění správce relací je uvedeno v souboru /etc/default/xrdp a konfigurace je uložena v /etc/xrdp/sesman.ini. Ve výchozím nastavení to vypadá asi 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
; When AlwaysGroupCheck=false access will be permitted
; if the group TerminalServerUsers is not defined.
AlwaysGroupCheck=false

[Sessions]

Zde nemusíte nic měnit, stačí zakázat přihlášení s právy root (AllowRootLogin=false). Pro každého uživatele autorizovaného v systému je spuštěn samostatný proces xrdp: pokud se odpojíte bez ukončení relace, uživatelské procesy budou ve výchozím nastavení nadále běžet a vy se můžete k relaci znovu připojit. Nastavení lze změnit v souboru /etc/xrdp/sesman.ini (sekce [Sessions]).

Přepínání rozložení klávesnice

S obousměrnou schránkou obvykle nejsou žádné problémy, ale s ruským rozložením klávesnice si budete muset trochu pohrát (ruské národní prostředí by již mělo být nainstalován). Upravme nastavení klávesnice serveru Xrdp:

sudo nano /etc/xrdp/xrdp_keyboard.ini

Na konec konfiguračního souboru musíte 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á pouze uložit soubor a restartovat Xrdp:

sudo systemctl restart xrdp

Jak vidíte, není těžké nastavit server RDP na Linux VPS, ale předchozí článek Nastavení VNC jsme již probrali. Kromě těchto technologií existuje ještě jedna zajímavá možnost: systém X3Go využívající upravený protokol NX 2. Budeme se jím zabývat v příští publikaci.

VPS na Linuxu s grafickým rozhraním: spuštění serveru RDP na Ubuntu 18.04

Zdroj: www.habr.com

Přidat komentář