VPS Linuxis graafilise liidesega: RDP-serveri käivitamine Ubuntu 18.04-s

VPS Linuxis graafilise liidesega: RDP-serveri käivitamine Ubuntu 18.04-s
В Eelmine artikkel arutasime VNC-serveri käitamist mis tahes tüüpi virtuaalmasinas. Sellel valikul on palju puudusi, millest peamine on kõrged nõuded andmeedastuskanalite läbilaskevõimele. Täna proovime luua ühenduse graafilise töölauaga Linuxis RDP (Remote Desktop Protocol) kaudu. VNC-süsteem põhineb pikslite massiivide edastamisel RFB (Remote Framebuffer) protokolli abil ning RDP võimaldab saata keerukamaid graafikaprimitiive ja kõrgetasemelisi käske. Tavaliselt kasutatakse seda Windowsi kaugtöölauateenuste hostimiseks, kuid saadaval on ka Linuxi serverid.

Оглавление

Graafilise keskkonna installimine
Serveri venestamine ja tarkvara installeerimine
RDP-serveri installimine ja konfigureerimine
Tulemüüri seadistamine
Ühenduse loomine RDP serveriga
Seansihaldur ja kasutajaseansid
Klaviatuuripaigutuste vahetamine

Graafilise keskkonna installimine

Võtame Ubuntu Server 18.04 LTS-iga virtuaalmasina, millel on kaks arvutustuuma, neli gigabaiti muutmälu ja kahekümne gigabaidine kõvaketas (HDD). Nõrgem konfiguratsioon ei sobi graafilisele töölauale, kuigi see sõltub lahendatavatest ülesannetest. Ärge unustage kasutada sooduskoodi Habrahabr10, et saada oma tellimuselt 10% allahindlust.

VPS Linuxis graafilise liidesega: RDP-serveri käivitamine Ubuntu 18.04-s
Kõigi sõltuvustega töölauakeskkonna installimine toimub järgmise käsuga:

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

Nagu ka eelmisel juhul, valisime XFCE selle suhteliselt madalate arvutusressursside vajaduse tõttu.

Serveri venestamine ja tarkvara installeerimine

Sageli juurutatakse virtuaalseid masinaid ainult ingliskeelse lokaliseerimisega. Töölaual võib vaja minna vene keelt, mida on lihtne seadistada. Esmalt installime süsteemiprogrammide tõlked:

sudo apt-get install language-pack-ru

Seadistame lokaliseerimise:

sudo update-locale LANG=ru_RU.UTF-8

Sama efekti saab saavutada faili /etc/default/locale käsitsi redigeerimisega.

GNOME ja KDE lokaliseerimiseks on hoidlas paketid language-pack-gnome-ru ja language-pack-kde-ru – neid läheb vaja, kui kasutate nende töölauakeskkondade programme. XFCE-s installitakse tõlked koos rakendustega. Järgmisena saate installida sõnastikud:

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

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

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

Lisaks võib mõne rakendusprogrammi jaoks olla vajalik tõlgete installimine:

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

See lõpetab töölauakeskkonna ettevalmistamise, jääb üle vaid RDP-server konfigureerida.

RDP-serveri installimine ja konfigureerimine

Ubuntu hoidlates on vabalt levitatav Xrdp-server, mida kasutame:

sudo apt-get install xrdp

Kui kõik läks hästi, peaks server automaatselt käivituma:

sudo systemctl status xrdp

VPS Linuxis graafilise liidesega: RDP-serveri käivitamine Ubuntu 18.04-s
Xrdp server töötab xrdp kasutajaõigustega ja võtab vaikimisi sertifikaadi /etc/ssl/private/ssl-cert-snakeoil.key, mille saab asendada enda omaga. Faili lugemiseks juurdepääsu saamiseks peate lisama kasutaja ssl-cert rühma:

sudo adduser xrdp ssl-cert

Vaikesätted leiate failist /etc/default/xrdp ja kõik muud serveri konfiguratsioonifailid asuvad kataloogis /etc/xrdp. Peamised parameetrid on failis xrdp.ini, mida pole vaja muuta. Konfiguratsioon on hästi dokumenteeritud ja lisatud on vastavad juhised:

man xrdp.ini
man xrdp

Jääb üle vaid redigeerida skripti /etc/xrdp/startwm.sh, mis käivitatakse kasutajaseansi initsialiseerimisel. Kõigepealt teeme distributsioonist skriptist varukoopia:

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

XFCE töölauakeskkonna käivitamiseks vajate umbes sellist skripti:

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

Pange tähele: skriptides on parem kirjutada käivitatavate failide täielik tee - see on hea harjumus. Teeme skripti käivitatavaks ja siinkohal võib Xrdp-serveri häälestuse lugeda lõpetatuks:

sudo chmod 755 /etc/xrdp/startwm.sh

Taaskäivitage server:

sudo systemctl restart xrdp

Tulemüüri seadistamine

Vaikimisi kuulab Xrdp kõigis liidestes TCP-porti 3389. Sõltuvalt virtuaalserveri konfiguratsioonist peate võib-olla konfigureerima Netfilteri tulemüüri. Linuxis tehakse seda tavaliselt iptablesi utiliidi abil, kuid Ubuntu puhul on parem kasutada ufw-d. Kui kliendi IP-aadress on teada, tehakse konfigureerimine järgmise käsuga:

sudo ufw allow from IP_Address to any port 3389

Saate lubada ühendusi mis tahes IP-st, näiteks järgmiselt:

sudo ufw allow 3389

RDP-protokoll toetab krüptimist, kuid Xrdp-serveri avamine avalikes võrkudes on halb mõte. Kui kliendil pole fikseeritud IP-d, peaks server turvalisuse suurendamiseks kuulama ainult kohalikku hosti. Parim on sellele juurde pääseda SSH-tunneli kaudu, mis suunab liikluse turvaliselt ümber klientarvutist. Meil on sarnane lähenemine kasutatud eelmises artiklis VNC serveri jaoks.

Ühenduse loomine RDP serveriga

Töölauakeskkonnaga töötamiseks on parem luua eraldi privilegeerimata kasutaja:

sudo adduser rdpuser

VPS Linuxis graafilise liidesega: RDP-serveri käivitamine Ubuntu 18.04-s
Lisame kasutaja sudo gruppi, et ta saaks täita administreerimisega seotud ülesandeid. Kui sellist vajadust pole, võite selle sammu vahele jätta:

sudo gpasswd -a rdpuser sudo

Saate serveriga ühenduse luua mis tahes RDP-kliendi, sealhulgas sisseehitatud Windows Remote Desktop Services kliendi abil. Kui Xrdp kuulab välist liidest, pole lisatoiminguid vaja. Piisab VPS-i IP-aadressi, kasutajanime ja parooli määramisest ühenduse seadetes. Pärast ühendamist näeme midagi sellist:

VPS Linuxis graafilise liidesega: RDP-serveri käivitamine Ubuntu 18.04-s
Pärast töölauakeskkonna esialgset seadistamist saame täisväärtusliku töölaua. Nagu näete, ei kuluta see palju ressursse, kuigi kõik sõltub kasutatavatest rakendustest.

VPS Linuxis graafilise liidesega: RDP-serveri käivitamine Ubuntu 18.04-s
Kui Xrdp-server kuulab ainult kohalikku hosti, tuleb klientarvuti liiklus pakkida SSH-tunnelisse (sshd peab töötama VPS-is). Windowsis saate kasutada graafilist SSH-klienti (nt PuTTY) ja UNIX-süsteemides vajate ssh-utiliiti:

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

Pärast tunneli lähtestamist ei loo RDP klient enam ühendust kaugserveriga, vaid kohaliku hostiga.

Mobiilseadmetega on keerulisem: tuleb osta SSH-kliendid, mis on võimelised tunnelit tõstma ning iOS-is ja iPadOS-is on kolmandate osapoolte rakenduste taustatöö keeruline energiatarbimise liiga hea optimeerimise tõttu. IPhone'is ja iPadis ei saa te tunnelit luua eraldi rakenduses; vajate harvesterirakendust, mis suudab SSH kaudu ise luua RDP-ühenduse. Nagu näiteks Kaugjuht Pro.

Seansihaldur ja kasutajaseansid

Mitme kasutajaga töötamise võimalus rakendatakse otse Xrdp-serveris ja see ei vaja täiendavat konfigureerimist. Pärast teenuse käivitamist systemd kaudu töötab üks protsess deemoni režiimis, kuulab porti 3389 ja suhtleb kohaliku hosti kaudu seansihalduriga.

ps aux |grep xrdp

VPS Linuxis graafilise liidesega: RDP-serveri käivitamine Ubuntu 18.04-s

sudo netstat -ap |grep xrdp

VPS Linuxis graafilise liidesega: RDP-serveri käivitamine Ubuntu 18.04-s
Seansihaldur ei ole tavaliselt kasutajatele nähtav, kuna kliendi seadetes määratud sisselogimine ja parool kantakse sinna automaatselt. Kui seda ei juhtu või autentimisel ilmneb tõrge, ilmub töölaua asemel interaktiivne sisselogimisaken.

VPS Linuxis graafilise liidesega: RDP-serveri käivitamine Ubuntu 18.04-s
Seansihalduri automaatne käivitamine on määratud failis /etc/default/xrdp ja konfiguratsioon salvestatakse faili /etc/xrdp/sesman.ini. Vaikimisi näeb see välja umbes selline:

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

Siin ei pea te midagi muutma, peate lihtsalt juurõigustega sisselogimise keelama (AllowRootLogin=false). Iga süsteemis volitatud kasutaja jaoks käivitatakse eraldi xrdp-protsess: kui katkestate ühenduse seanssi lõpetamata, jätkavad kasutajaprotsessid vaikimisi töötamist ja saate seansiga uuesti ühenduse luua. Sätteid saab muuta failis /etc/xrdp/sesman.ini (jaotis [Seansid]).

Klaviatuuripaigutuste vahetamine

Kahesuunalise lõikepuhvriga tavaliselt probleeme pole, kuid venekeelse klaviatuuripaigutusega peate natuke mängima (vene lokaal peaks juba olema paigaldatud). Redigeerime Xrdp-serveri klaviatuuri sätteid:

sudo nano /etc/xrdp/xrdp_keyboard.ini

Konfiguratsioonifaili lõppu peate lisama järgmised read:

[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

Jääb üle vaid fail salvestada ja Xrdp taaskäivitada:

sudo systemctl restart xrdp

Nagu näete, pole RDP-serveri seadistamine Linuxi VPS-is keeruline, kuid Eelmine artikkel Oleme juba arutanud VNC seadistamist. Lisaks nendele tehnoloogiatele on veel üks huvitav võimalus: X3Go süsteem, mis kasutab muudetud NX 2 protokolli. Seda käsitleme järgmises väljaandes.

VPS Linuxis graafilise liidesega: RDP-serveri käivitamine Ubuntu 18.04-s

Allikas: www.habr.com

Lisa kommentaar