В
Obsah:
Inštalácia grafického prostredia
Vezmeme si virtuálny stroj s Ubuntu Server 18.04 LTS s dvoma výpočtovými jadrami, štyrmi gigabajtmi RAM a dvadsaťgigabajtovým pevným diskom (HDD). Slabšia konfigurácia nie je vhodná pre grafický desktop, aj keď to závisí od riešených úloh. Nezabudnite použiť promo kód Habrahabr10 na získanie 10% zľavy na vašu objednávku.
Inštalácia desktopového prostredia so všetkými závislosťami sa vykonáva pomocou nasledujúceho príkazu:
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 nárokom na výpočtové zdroje.
Rusifikácia servera a inštalácia softvéru
Virtuálne stroje sú často nasadené iba s anglickou lokalizáciou. Na pracovnej ploche možno budete potrebovať ruštinu, ktorá sa dá ľahko nastaviť. Najprv nainštalujte preklady pre systémové programy:
sudo apt-get install language-pack-ru
Nastavíme lokalizáciu:
sudo update-locale LANG=ru_RU.UTF-8
Rovnaký efekt možno dosiahnuť manuálnou úpravou súboru /etc/default/locale.
Pre lokalizáciu GNOME a KDE má úložisko balíky language-pack-gnome-ru a language-pack-kde-ru – budete ich potrebovať, ak používate programy z týchto desktopových prostredí. V XFCE sa preklady inštalujú s aplikáciami. Ďalej môžete 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ť pre niektoré aplikačné programy potrebná inštalácia prekladov:
# Браузер 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 príprava desktopového prostredia hotová, ostáva už len nakonfigurovať RDP server.
Inštalácia a konfigurácia servera RDP
Repozitáre Ubuntu majú voľne distribuovaný server Xrdp, ktorý budeme používať:
sudo apt-get install xrdp
Ak všetko prebehlo v poriadku, server by sa mal spustiť automaticky:
sudo systemctl status xrdp
Server Xrdp beží s používateľskými právami xrdp a štandardne preberá certifikát /etc/ssl/private/ssl-cert-snakeoil.key, ktorý je možné nahradiť vlastným. Ak chcete mať prístup na čítanie súboru, musíte pridať používateľa do skupiny ssl-cert:
sudo adduser xrdp ssl-cert
Predvolené nastavenia možno nájsť v súbore /etc/default/xrdp a všetky ostatné konfiguračné súbory servera sa nachádzajú v adresári /etc/xrdp. Hlavné parametre sú v súbore xrdp.ini, ktorý nie je potrebné meniť. Konfigurácia je dobre zdokumentovaná a sú zahrnuté príslušné manuálové stránky:
man xrdp.ini
man xrdp
Zostáva len upraviť skript /etc/xrdp/startwm.sh, ktorý sa spustí pri inicializácii relácie používateľa. Najprv urobme záložnú kópiu skriptu z distribúcie:
sudo mv /etc/xrdp/startwm.sh /etc/xrdp/startwm.b
sudo nano /etc/xrdp/startwm.sh
Ak chcete spustiť desktopové prostredie XFCE, budete potrebovať skript, napríklad:
#!/bin/sh
if [ -r /etc/default/locale ]; then
. /etc/default/locale
export LANG LANGUAGE
fi
exec /usr/bin/startxfce4
Poznámka: v skriptoch je lepšie napísať úplnú cestu k spustiteľným súborom - to je dobrý zvyk. Urobme skript spustiteľným a v tomto bode možno považovať nastavenie servera Xrdp za dokončené:
sudo chmod 755 /etc/xrdp/startwm.sh
Reštartujte server:
sudo systemctl restart xrdp
Nastavenie brány firewall
Štandardne Xrdp počúva TCP port 3389 na všetkých rozhraniach. V závislosti od konfigurácie virtuálneho servera možno budete musieť nakonfigurovať bránu firewall Netfilter. Na Linuxe sa to zvyčajne robí pomocou nástroja iptables, ale na Ubuntu je lepšie použiť ufw. Ak je známa IP adresa klienta, konfigurácia sa vykoná pomocou nasledujúceho príkazu:
sudo ufw allow from IP_Address to any port 3389
Môžete povoliť pripojenia z akejkoľvek adresy IP, ako je táto:
sudo ufw allow 3389
Protokol RDP podporuje šifrovanie, ale vystavenie servera Xrdp verejným sieťam je zlý nápad. Ak klient nemá pevnú IP, server by mal na zvýšenie bezpečnosti počúvať iba localhost. Najlepšie je k nemu pristupovať cez SSH tunel, ktorý bezpečne presmeruje prevádzku z klientskeho počítača. Máme podobný prístup
Pripojenie k serveru RDP
Ak chcete pracovať s prostredím pracovnej plochy, je lepšie vytvoriť samostatného neprivilegovaného používateľa:
sudo adduser rdpuser
Pridajme používateľa do skupiny sudo, aby mohol vykonávať úlohy súvisiace s administráciou. Ak to nie je potrebné, môžete tento krok preskočiť:
sudo gpasswd -a rdpuser sudo
K serveru sa môžete pripojiť pomocou ľubovoľného klienta RDP vrátane vstavaného klienta Windows Remote Desktop Services. Ak Xrdp počúva externé rozhranie, nebudú potrebné žiadne ďalšie akcie. V nastaveniach pripojenia stačí zadať VPS IP adresu, užívateľské meno a heslo. Po pripojení uvidíme niečo takéto:
Po prvotnom nastavení desktopového prostredia získame plnohodnotnú pracovnú plochu. Ako vidíte, nespotrebováva veľa zdrojov, aj keď všetko bude závisieť od použitých aplikácií.
Ak server Xrdp počúva iba localhost, prenos na klientskom počítači bude musieť byť zabalený do tunela SSH (sshd musí bežať na VPS). V systéme Windows môžete použiť grafického klienta SSH (napríklad PuTTY) a v systémoch UNIX 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 už nepripojí k vzdialenému serveru, ale k lokálnemu hostiteľovi.
S mobilnými zariadeniami je to zložitejšie: SSH klienti schopní vybudovať tunel budú musieť byť zakúpení a v iOS a iPadOS je obtiažna prevádzka aplikácií tretích strán na pozadí kvôli príliš dobrej optimalizácii spotreby energie. Na zariadeniach iPhone a iPad nebudete môcť vytvoriť tunel v samostatnej aplikácii; budete potrebovať aplikáciu harvester, ktorá dokáže sama vytvoriť pripojenie RDP cez SSH. Ako je napr
Správca relácií a relácie používateľov
Schopnosť pracovať pre viacerých používateľov je implementovaná priamo na serveri Xrdp a nevyžaduje ďalšiu konfiguráciu. Po spustení služby cez systemd jeden proces beží v režime démona, počúva na porte 3389 a komunikuje cez localhost so správcom relácie.
ps aux |grep xrdp
sudo netstat -ap |grep xrdp
Správca relácií zvyčajne nie je pre používateľov viditeľný, pretože prihlasovacie meno a heslo zadané v nastaveniach klienta sa do neho prenášajú automaticky. Ak sa tak nestane alebo pri autentifikácii dôjde k chybe, namiesto pracovnej plochy sa zobrazí interaktívne prihlasovacie okno.
Automatické spustenie správcu relácie je špecifikované v súbore /etc/default/xrdp a konfigurácia je uložená v /etc/xrdp/sesman.ini. V predvolenom nastavení to vyzerá 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]
Tu nemusíte nič meniť, stačí zakázať prihlásenie s právami root (AllowRootLogin=false). Pre každého používateľa autorizovaného v systéme sa spustí samostatný proces xrdp: ak sa odpojíte bez ukončenia relácie, používateľské procesy budú štandardne naďalej bežať a môžete sa znova pripojiť k relácii. Nastavenia je možné zmeniť v súbore /etc/xrdp/sesman.ini (sekcia [Sessions]).
Prepínanie rozložení klávesnice
S obojsmernou schránkou zvyčajne nie sú žiadne problémy, ale s ruským rozložením klávesnice sa budete musieť trochu pohrať (ruské miestne nastavenie by už malo byť
sudo nano /etc/xrdp/xrdp_keyboard.ini
Na koniec konfiguračného súboru musíte 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 len uložiť súbor a reštartovať Xrdp:
sudo systemctl restart xrdp
Ako vidíte, nie je ťažké nastaviť server RDP na Linux VPS, ale
Zdroj: hab.com