VPS Linuxi graafilise liidese jaotamiseks: käivitame RDP serveri Ubuntu 18.04-s

VPS Linuxi graafilise liidese jaotamiseks: käivitame RDP serveri Ubuntu 18.04-s
Uues eelnevas artiklis Me oleme käsitlenud VNC-serveri käivitamist mis tahes tüüpi virtuaalses masinas. Sellel variantil on palju puudusi, milleks on peamiselt kõrged nõudmised andmeedastuskanalite ribalaiusele. Täna proovime ühendada Linuxi graafilise töölauaga RDP (Remote Desktop Protocol) kaudu. VNC-süsteem põhineb pikslimassiivide edastamisel RFB (Remote Framebuffer) protokolli kaudu, samas kui RDP võimaldab saata keerukamaid graafilisi primaare ja kõrgema taseme käske. Tavaline on, et seda kasutatakse Windowsi kaugtegelikkuse teenuste korraldamiseks, kuid ka Linuxile on saadaval serverid.

Sisukord:

Graafilise keskkonna installimine
Serveri venekeelne versioon ja tarkvara installeerimine
RDP-serveri paigaldamine ja seadistamine
Tulemüüriseade seadistamine
Ühendamine RDP-serveriga
Sessioonide haldur ja kasutajate sessioonid
Klaviatuuripaigutuste vahetamine

Graafilise keskkonna installimine

Võtame virtuaalse masina, millel on Ubuntu Server 18.04 LTS, kahe protsessorituuma, nelja gigabaidi mälu ja kakskümmend gigabaiti kõvakettaruumi (HDD). Nõrgem konfiguratsioon ei sobi hästi graafilisele töölauale, kuigi see sõltub lahendatavatest ülesannetest. Ärge unustage kasutada sooduskoodi Habrahabr10 10% allahindluse saamiseks tellimisel.

VPS Linuxi graafilise liidese jaotamiseks: käivitame RDP serveri Ubuntu 18.04-s
Töölaua keskkonna installimine koos kõigi sõltuvustega toimub järgmise käsu abil:

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

Nagu eelnevas juhul, valisime XFCE, kuna sellel on suhteliselt madalad nõuded arvutusressurssidele.

Serveri venekeelne versioon ja tarkvara installeerimine

Sageli käivitatakse virtuaalsed masinad ainult ingliskeelse lokaliseerimisega. Töölaual võib vajada vene keelt, mille seadistamine ei ole keeruline. Esiteks paigaldame süsteemsete programmide tõlked:

sudo apt-get install language-pack-et

Seadistame lokaliseerimise:

sudo update-locale LANG=et_EE.UTF-8

Sama efekti võib saavutada, redigeerides käsitsi faili /etc/default/locale.

GNOME-i ja KDE lokaliseerimiseks on hoidlas paketid language-pack-gnome-et ja language-pack-kde-et — need on vajalikud, kui kasutate nende töölauakeskkondade programme. XFCE-s installitakse tõlked koos rakendustega. Edasi saame installida sõnaraamatud:

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

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

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

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

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

Sellega on töölaua keskkonna ettevalmistamine lõpetatud, on jäänud seadistada RDP-server.

RDP-serveri paigaldamine ja seadistamine

Ubuntu hoidlatest on vabalt kättesaadav Xrdp-server, mida me ka kasutame:

sudo apt-get install xrdp

Kui kõik sujus, peaks server automaatselt käivituma:

sudo systemctl status xrdp

VPS Linuxi graafilise liidese jaotamiseks: käivitame RDP serveri Ubuntu 18.04-s
Xrdp server töötab kasutaja xrdp õigustega ja kasutab vaikimisi sertifikaati /etc/ssl/private/ssl-cert-snakeoil.key, mille saab asendada oma sertifikaadiga. Faili lugemisõiguse saamiseks tuleb kasutaja lisada ssl-cert rühma:

sudo adduser xrdp ssl-cert

Vaikeseaded leiate failist /etc/default/xrdp, kõik ülejäänud serveri konfiguratsioonifailid asuvad kaustas /etc/xrdp. Peamised parameetrid asuvad failis xrdp.ini, mida ei pea muutma. Konfiguratsioon on hästi dokumenteeritud ja koos on lisatud vastavad manpages:

man xrdp.ini
man xrdp

Peab redigeerima skripti /etc/xrdp/startwm.sh, mis käivitatakse kasutaja seansi algatamisel. Esiteks teeme skriptist varukoopia distributsioonist:

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

Kuna soovime käivitada XFCE töökeskkonna, peab skripti sisu olema umbes selline:

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

Pange tähele: skripti sises tõstke parendatult failide täisrada — see on hea harjumus. Teeme skripti täitmiseks lubatavaks ja sellega saab serveri Xrdp seadistuse lõpetatuks:

sudo chmod 755 /etc/xrdp/startwm.sh

Taaskäivitame serveri:

sudo systemctl restart xrdp

Tulemüüriseade seadistamine

Vaikimisi kuulab Xrdp TCP-port 3389 kõigil liidestel. Vastavalt virtuaalserveri konfigureerimisele võib olla vajalik Netfilteri tulemüürisätetega tegelemine. Linuxis tehakse seda tavaliselt iptables utiliidiga, kuid Ubuntu puhul on parem kasutada ufw-d. Kui kliendi IP-aadress on teada, viiakse seadistus läbi järgmise käsu abil:

sudo ufw allow from IP_Address to any port 3389

Kuid saate lubada ühendusi mistahes IP-st järgmiselt:

sudo ufw allow 3389

RDP-protokoll toetab krüpteerimist, kuid avada Xrdp serverit avalikes võrkudes on halb mõte. Kui kliendil ei ole fikseeritud IP-d, peaks server kuulama ainult localhosti. Parim on seadistada sellele juurdepääs SSH tunneliga, mis suunab liiklust kliendi arvutist turvaliselt. Sarnast lähenemist oleme kasutanud eelmises artiklis VNC serveri jaoks.

Ühendamine RDP-serveriga

Töökeskkonnaga töötamiseks on parem luua eraldi privileegideta kasutaja:

sudo adduser rdpuser

VPS Linuxi graafilise liidese jaotamiseks: käivitame RDP serveri Ubuntu 18.04-s
Lisame kasutaja sudo gruppi, et ta saaks lahendada haldustöid. Kui sellist vajadust pole, võib selle sammu vahele jätta:

sudo gpasswd -a rdpuser sudo

Serverisse saab ühenduda igasuguste RDP klientide abil, sealhulgas Windowsi sisseehitatud kaugjuhtimistöölaua kliendiga. Kui Xrdp kuulab välisseadet, ei ole täiendavaid tegevusi vaja. Piisab VPS-i ühenduse seadistustes IP-aadressi, kasutajanime ja parooli sisestamisest. Pärast ühenduse loomist näeme midagi sellist:

VPS Linuxi graafilise liidese jaotamiseks: käivitame RDP serveri Ubuntu 18.04-s
Pärast töökeskkonna esialgset seadistamist saame täieliku töölaua. Nagu näete, ei tarbi see palju ressursse, kuigi edaspidine sõltub kasutatavatest rakendustest.

VPS Linuxi graafilise liidese jaotamiseks: käivitame RDP serveri Ubuntu 18.04-s
Kui Xrdp server kuulab ainult localhosti, tuleb kliendi arvuti liiklus pakendada SSH tunnelisse (VPS-is peab olema käimas sshd). Windowsis saab kasutada graafilist SSH klienti (näiteks PuTTY), UNIX-süsteemides on vajalik ssh utiliit:

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

Pärast tunnelite loomist ühendub RDP klient mitte kaugserveriga, vaid kohaliku hostiga.

Mobiilseadmetega on keerulisem: tunnelit toetavate SSH klientide ostmine võib osutuda vajalikuks, lisaks on iOS-is ja iPadOS-is kolmandate rakenduste taustatöö keeruline, kuna energiatõhususe optimeerimine on liiga hea. iPhone'is ja iPadis ei saa tunnelit eraldi rakenduses luua — vajalik on rakendus, mis suudab ise RDP ühendust SSH kaudu luua. Näiteks selline, nagu Remoter Pro.

Sessioonide haldur ja kasutajate sessioonid

Mitme kasutaja töövõime on Xrdp serveris juba olemas ja ei vaja lisaseadistamist. Pärast teenuse käivitamist läbi systemd töötab üks protsess deemonirežiimis, kuulab porti 3389 ja suhtleb localhostiga seansihalduriga.

ps aux |grep xrdp

VPS Linuxi graafilise liidese jaotamiseks: käivitame RDP serveri Ubuntu 18.04-s

sudo netstat -ap |grep xrdp

VPS Linuxi graafilise liidese jaotamiseks: käivitame RDP serveri Ubuntu 18.04-s
Seansihaldur ei ole tavaliselt kasutajatele nähtav, kuna kliendi seadetes määratud logi ja parooli edastatakse automaatselt. Kui seda ei juhtunud või autentimisel tekkis viga, näeme töölaudade asemel sisse logimise interaktiivset akent.

VPS Linuxi graafilise liidese jaotamiseks: käivitame RDP serveri Ubuntu 18.04-s
Seansihalduri automaatne käivitamine on määratud failis /etc/default/xrdp ja konfiguratsioon salvestatakse /etc/xrdp/sesman.ini. Vaikimisi näeb see välja umbes nii:

[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 pole midagi muuta, vaid tuleb lihtsalt keelata juurdepääs root õigustega (AllowRootLogin=false). Iga autoriseeritud süsteemi kasutaja jaoks käivitatakse eraldi protsess xrdp: kui sessioon katkestatakse, jäävad kasutaja protsessid vaikimisi töötama ning sessioonile saab uuesti juurde pääseda. Seadeid saab muuta failis /etc/xrdp/sesman.ini (sektsioon [Sessions]).

Klaviatuuripaigutuste vahetamine

Kahepoolse lõikega probleemide olemasolu ei ole tavaliselt, kuid venekeelse klaviatuuriga tuleb natuke mässata (vene lokaliseerimine peab olema juba paigaldatud). Muudame Xrdp serveri klaviatuuri seadeid:

sudo nano /etc/xrdp/xrdp_keyboard.ini

Konfiguratsioonifaili lõppu tuleb lisada 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

Fail tuleb salvestada ja Xrdp taaskäivitada:

sudo systemctl restart xrdp

Nagu näete, ei ole RDP serveri tõstmine Linuxi VPS-il keeruline, ja eelnevas artiklis oleme juba tutvunud VNC seadmisega. Lisaks nendele tehnoloogiatele on veel üks huvitav variant: modifitseeritud NX 3 protokolli kasutav X2Go süsteem. Sellega tutvume järgmises postituses.

VPS Linuxi graafilise liidese jaotamiseks: käivitame RDP serveri Ubuntu 18.04-s

Allikas: habr.com

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster