VPS en Linukso kun grafika interfaco: lanĉante RDP-servilon sur Ubuntu 18.04

VPS en Linukso kun grafika interfaco: lanĉante RDP-servilon sur Ubuntu 18.04
В antaŭa artikolo ni diskutis pri funkciado de VNC-servilo sur virtuala maŝino de ajna tipo. Ĉi tiu opcio havas multajn malavantaĝojn, la ĉefa el kiuj estas la altaj postuloj por la trafluo de datumaj kanaloj. Hodiaŭ ni provos konektiĝi al grafika labortablo en Linukso per RDP (Remote Desktop Protocol). La VNC-sistemo baziĝas sur elsendado de tabeloj de pikseloj per la protokolo RFB (Remote Framebuffer), kaj RDP permesas sendi pli kompleksajn grafikajn primitivulojn kaj altnivelajn komandojn. Ĝi estas kutime uzata por gastigi Remote Desktop Services en Vindozo, sed serviloj por Linukso ankaŭ haveblas.

Enhavtabelo:

Instalado de la grafika medio
Rusigo de la servilo kaj programaro instalado
Instalado kaj agordo de RDP-servilo
Agordo de fajroŝirmilo
Konektante al RDP-servilo
Session Manager kaj Uzanto-Sesioj
Ŝanĝi klavaran aranĝojn

Instalado de la grafika medio

Ni prenos virtualan maŝinon kun Ubuntu Server 18.04 LTS kun du komputilaj kernoj, kvar gigabajtoj da RAM kaj dudek gigabajta malmola disko (HDD). Pli malforta agordo ne taŭgas por grafika labortablo, kvankam tio dependas de la solvitaj taskoj. Ne forgesu uzi reklam-kodon Habrahabr10 por ricevi 10% rabaton sur via mendo.

VPS en Linukso kun grafika interfaco: lanĉante RDP-servilon sur Ubuntu 18.04
Instalado de la labortabla medio kun ĉiuj dependecoj estas farita per la sekva komando:

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

Kiel en la antaŭa kazo, ni elektis XFCE pro ĝiaj relative malaltaj komputikresursaj postuloj.

Rusigo de la servilo kaj programaro instalado

Ofte virtualaj maŝinoj estas deplojitaj nur kun angla lokalizo. Sur la labortablo vi eble bezonos la rusan, kiu estas facile instalebla. Unue, ni instalu tradukojn por sistemaj programoj:

sudo apt-get install language-pack-ru

Ni agordu lokalizon:

sudo update-locale LANG=ru_RU.UTF-8

La sama efiko povas esti atingita mane redaktante la /etc/default/locale.

Por lokalizado de GNOME kaj KDE, la deponejo havas la pakaĵojn language-pack-gnome-ru kaj language-pack-kde-ru - vi bezonos ilin se vi uzas programojn de ĉi tiuj labortablaj medioj. En XFCE, tradukoj estas instalitaj kun aplikaĵoj. Poste vi povas instali la vortarojn:

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

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

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

Krome, instalo de tradukoj povas esti bezonata por iuj aplikaj programoj:

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

Ĉi tio kompletigas la preparadon de la labortabla medio, restas nur agordi la RDP-servilon.

Instalado kaj agordo de RDP-servilo

La Ubuntu-deponejoj havas libere distribuitan Xrdp-servilon, kiun ni uzos:

sudo apt-get install xrdp

Se ĉio iris bone, la servilo devus komenci aŭtomate:

sudo systemctl status xrdp

VPS en Linukso kun grafika interfaco: lanĉante RDP-servilon sur Ubuntu 18.04
La Xrdp-servilo funkcias kun xrdp-uzantrajtoj kaj defaŭlte prenas la /etc/ssl/private/ssl-cert-snakeoil.key-atestilon, kiu povas esti anstataŭigita per via propra. Por havi aliron por legi la dosieron, vi devas aldoni la uzanton al la grupo ssl-cert:

sudo adduser xrdp ssl-cert

La defaŭltaj agordoj troviĝas en la /etc/default/xrdp-dosiero, kaj ĉiuj aliaj servilaj agordaj dosieroj troviĝas en la dosierujo /etc/xrdp. La ĉefaj parametroj estas en la dosiero xrdp.ini, kiu ne bezonas esti ŝanĝita. La agordo estas bone dokumentita, kaj la respondaj manpaĝoj estas inkluzivitaj:

man xrdp.ini
man xrdp

Restas nur redakti la skripton /etc/xrdp/startwm.sh, kiu estas ekzekutita kiam la uzantsesio estas pravigita. Unue, ni faru rezervan kopion de la skripto de la distribuo:

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

Por komenci la labortablan medion XFCE, vi bezonos skripton kiel ĉi tion:

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

Bonvolu noti: en skriptoj estas pli bone skribi la plenan vojon al la plenumeblaj dosieroj - tio estas bona kutimo. Ni faru la skripton plenumebla kaj ĉe ĉi tiu punkto la aranĝo de la Xrdp-servilo povas esti konsiderata kompleta:

sudo chmod 755 /etc/xrdp/startwm.sh

Rekomencu la servilon:

sudo systemctl restart xrdp

Agordo de fajroŝirmilo

Defaŭlte, Xrdp aŭskultas TCP-havenon 3389 sur ĉiuj interfacoj. Depende de la virtuala servila agordo, vi eble bezonos agordi Netfilter fajroŝirmilon. En Linukso tio estas kutime farita per la ilo iptables, sed en Ubuntu estas pli bone uzi ufw. Se la IP-adreso de la kliento estas konata, agordo estas farita per la sekva komando:

sudo ufw allow from IP_Address to any port 3389

Vi povas permesi konektojn de iu ajn IP kiel ĉi tio:

sudo ufw allow 3389

La RDP-protokolo subtenas ĉifradon, sed elmontri la Xrdp-servilon al publikaj retoj estas malbona ideo. Se la kliento ne havas fiksan IP, la servilo nur aŭskultu lokagastiganton por pliigi sekurecon. Plej bone estas aliri ĝin per SSH-tunelo, kiu sekure redirektos trafikon de la klienta komputilo. Ni havas similan aliron uzata en la antaŭa artikolo por VNC-servilo.

Konektante al RDP-servilo

Por labori kun la labortabla medio, estas pli bone krei apartan senprivilegian uzanton:

sudo adduser rdpuser

VPS en Linukso kun grafika interfaco: lanĉante RDP-servilon sur Ubuntu 18.04
Ni aldonu la uzanton al la sudo-grupo, por ke li povu plenumi administrado-rilatajn taskojn. Se ne ekzistas tia bezono, vi povas preterlasi ĉi tiun paŝon:

sudo gpasswd -a rdpuser sudo

Vi povas konektiĝi al la servilo uzante ajnan RDP-klienton, inkluzive de la enkonstruita kliento de Windows Remote Desktop Services. Se Xrdp aŭskultas la eksteran interfacon, neniuj aldonaj agoj estos bezonataj. Sufiĉas specifi la IP-adreson de VPS, uzantnomon kaj pasvorton en la konekto-agordoj. Post konekto, ni vidos ion tian:

VPS en Linukso kun grafika interfaco: lanĉante RDP-servilon sur Ubuntu 18.04
Post la komenca agordo de la labortabla medio, ni ricevos plenan labortablon. Kiel vi povas vidi, ĝi ne konsumas multajn rimedojn, kvankam ĉio dependos de la aplikaĵoj uzataj.

VPS en Linukso kun grafika interfaco: lanĉante RDP-servilon sur Ubuntu 18.04
Se la Xrdp-servilo aŭskultas nur lokagastiganton, la trafiko sur la klienta komputilo devos esti pakita en SSH-tunelo (sshd devas funkcii sur la VPS). En Vindozo, vi povas uzi grafikan SSH-klienton (ekzemple PuTTY), kaj en UNIX-sistemoj vi bezonas la ssh-ilaĵon:

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

Post kiam la tunelo estas pravigita, la RDP-kliento ne plu konektos al la fora servilo, sed al la loka gastiganto.

Pli malfacilas kun porteblaj aparatoj: SSH-klientoj kapablaj levi tunelon devos esti aĉetitaj, kaj en iOS kaj iPadOS, la fona funkciado de triaj aplikaĵoj malfacilas pro tro bona optimumigo de energikonsumo. En iPhone kaj iPad, vi ne povos krei tunelon en aparta aplikaĵo; vi bezonos rikoltilan aplikaĵon, kiu povas mem establi RDP-konekton per SSH. Kiel ekzemple Remoter Pro.

Session Manager kaj Uzanto-Sesioj

La kapablo al pluruza laboro estas efektivigita rekte en la Xrdp-servilo kaj ne postulas plian agordon. Post ekfunkciigo de la servo per systemd, unu procezo funkcias en demona reĝimo, aŭskultas sur la haveno 3389 kaj komunikas per localhost kun la seanca administranto.

ps aux |grep xrdp

VPS en Linukso kun grafika interfaco: lanĉante RDP-servilon sur Ubuntu 18.04

sudo netstat -ap |grep xrdp

VPS en Linukso kun grafika interfaco: lanĉante RDP-servilon sur Ubuntu 18.04
La seanca administranto kutime ne videblas por uzantoj, ĉar la ensaluto kaj pasvorto specifitaj en la klientaj agordoj estas aŭtomate translokigitaj al ĝi. Se ĉi tio ne okazas aŭ estas eraro dum aŭtentigo, interaga ensaluta fenestro aperos anstataŭ la labortablo.

VPS en Linukso kun grafika interfaco: lanĉante RDP-servilon sur Ubuntu 18.04
Aŭtomata lanĉo de la seanca administranto estas specifita en la dosiero /etc/default/xrdp, kaj la agordo estas konservita en /etc/xrdp/sesman.ini. Defaŭlte ĝi aspektas kiel ĉi tio:

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

Vi ne devas ŝanĝi ion ĉi tie, vi nur devas malŝalti ensaluti kun radikrajtoj (AllowRootLogin=false). Por ĉiu uzanto rajtigita en la sistemo, aparta xrdp-procezo estas lanĉita: se vi malkonektos sen fini la seancon, uzantprocezoj daŭre ruliĝos defaŭlte, kaj vi povas denove konektiĝi al la sesio. Agordoj povas esti ŝanĝitaj en la dosiero /etc/xrdp/sesman.ini (sekcio [Sesioj]).

Ŝanĝi klavaran aranĝojn

Kutime ne estas problemoj kun dudirekta tondujo, sed kun la rusa klavararanĝo vi devos iomete ludi (la rusa lokado devus esti jam instalita). Ni redaktu la klavarajn agordojn de la Xrdp-servilo:

sudo nano /etc/xrdp/xrdp_keyboard.ini

Vi devas aldoni la sekvajn liniojn al la fino de la agorda dosiero:

[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

Restas nur konservi la dosieron kaj rekomenci Xrdp:

sudo systemctl restart xrdp

Kiel vi povas vidi, ne estas malfacile agordi RDP-servilon sur Linukso VPS, sed antaŭa artikolo Ni jam diskutis pri la agordo de VNC. Krom ĉi tiuj teknologioj, ekzistas alia interesa opcio: la sistemo X3Go uzante modifitan protokolon NX 2. Ni pritraktos ĝin en la venonta eldonaĵo.

VPS en Linukso kun grafika interfaco: lanĉante RDP-servilon sur Ubuntu 18.04

fonto: www.habr.com