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 Oleme arutanud, kuidas käivitada VNC-serverit mis tahes tüüpi virtuaalmasinal. Sellel valikul on palju puudusi, millest peamine on andmeedastuskanalite suur ribalaiuse nõue. Täna proovime luua ühenduse Linuxi graafilise töölauaga RDP (Remote Desktop Protocol) kaudu. VNC-süsteem põhineb piksli massiivide edastamisel RFB (Remote Framebuffer) protokolli kaudu ja RDP võimaldab saata keerukamaid graafilisi primitiive ja kõrgetasemelisi käske. Tavaliselt kasutatakse seda Windowsi kaugtöölaua teenuste korraldamiseks, 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 virtuaalmasina Ubuntu Server 18.04 LTS-iga, 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 tellimuse esitamisel kasutada sooduskoodi Habrahabr10, et saada 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 eelmisel juhul, valisime XFCE selle suhteliselt madalate arvutusnõuete tõttu.

Serveri venestamine ja tarkvara installeerimine

Virtuaalmasinaid juurutatakse sageli ainult ingliskeelse lokaliseerimisega. Töölaual võib vaja minna vene keelt, mida on lihtne seadistada. Kõigepealt 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-serveri konfigureerimine.

RDP-serveri installimine ja konfigureerimine

Ubuntu repositooriumides on vabalt levitatav Xrdp server, mida me 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 vaikimisi kasutab see sertifikaati /etc/ssl/private/ssl-cert-snakeoil.key, mille saab asendada teie enda sertifikaadiga. Failile juurdepääsuks peate kasutaja lisama ssl-cert gruppi:

sudo adduser xrdp ssl-cert

Vaikimisi sätted asuvad failis /etc/default/xrdp ja kõik muud serveri konfiguratsioonifailid asuvad kataloogis /etc/xrdp. Peamised parameetrid asuvad failis xrdp.ini, mida pole vaja muuta. Konfiguratsioon on hästi dokumenteeritud ja vastavad man-lehed on lisatud:

man xrdp.ini
man xrdp

Jääb üle vaid muuta skripti /etc/xrdp/startwm.sh, mis käivitatakse kasutaja seansi initsialiseerimisel. Teeme eelnevalt skriptist varukoopia levitatavast paketilt:

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

XFCE töölauakeskkonna käivitamiseks vajate skripti, mis näeb välja umbes selline:

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

Pane tähele: skriptidesse on parem kirjutada käivitatavate failide täielik tee – see on hea harjumus. Teeme skripti käivitatavaks ja see viib Xrdp serveri seadistamise lõpule:

sudo chmod 755 /etc/xrdp/startwm.sh

Taaskäivitage server:

sudo systemctl restart xrdp

Tulemüüri seadistamine

Vaikimisi kuulab Xrdp kõigil liidestel TCP-porti 3389. Sõltuvalt virtuaalserveri konfiguratsioonist peate võib-olla konfigureerima Netfilteri tulemüüri. Linuxis tehakse seda tavaliselt iptables'i utiliidi abil, kuid Ubuntus 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-aadressilt, näiteks nii:

sudo ufw allow 3389

RDP protokoll toetab krüpteerimist, kuid avalikest võrkudest Xrdp serverile juurdepääsu avamine on halb mõte. Kui kliendil pole fikseeritud IP-aadressi, peaks server turvalisuse suurendamiseks kuulama ainult localhosti. Parem on konfigureerida juurdepääs sellele SSH-tunneli kaudu, mis suunab liikluse turvaliselt kliendiarvutist ümber. Meil ​​on sarnane lähenemisviis. eelmises artiklis kasutatud 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

Serveriga saab ühenduse luua mis tahes RDP-kliendi, sealhulgas sisseehitatud Windows Remote Desktop Service'i kliendi abil. Kui Xrdp kuulab välist liidest, pole täiendavaid samme vaja. Piisab VPS-i IP-aadressi, kasutajanime ja parooli määramisest ühenduse seadetes. Pärast ühenduse loomist näeme midagi sellist:

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

VPS Linuxis graafilise liidesega: RDP-serveri käivitamine Ubuntu 18.04-s
Kui Xrdp-server kuulab ainult localhost'i, tuleb kliendiarvuti liiklus pakkida SSH-tunnelisse (sshd peab VPS-il töötama). Windowsi all saab kasutada graafilist SSH-klienti (näiteks PuTTY) ja UNIX-süsteemides on vaja ssh-utiliiti:

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

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

Mobiilseadmetega on keerulisem: peate ostma SSH-kliendid, mis suudavad tunneli luua, ning iOS-is ja iPadOS-is on kolmandate osapoolte rakenduste taustatöö keeruline liiga hea energiatarbimise optimeerimise tõttu. iPhone'is ja iPadis ei saa te tunnelit eraldi rakenduses seadistada - vajate kombineeritud rakendust, mis suudab ise SSH kaudu RDP-ühenduse luua. Näiteks Kaugjuhtimisega Pro.

Seansihaldur ja kasutajaseansid

Mitme kasutaja funktsioon on rakendatud otse Xrdp serveris ja ei vaja täiendavat konfigureerimist. Pärast teenuse käivitamist systemd kaudu töötab üks protsess deemonirežiimis, kuulab porti 3389 ja suhtleb seansihalduriga localhosti kaudu.

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 pole kasutajatele tavaliselt nähtav, kuna kliendi seadetes määratud sisselogimisnimi ja parool edastatakse sinna automaatselt. Kui seda ei juhtu või autentimise ajal ilmneb tõrge, kuvatakse 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 on salvestatud 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 pole vaja midagi muuta, tuleb lihtsalt keelata root'i sisselogimine (AllowRootLogin=false). Iga süsteemi sisselogitud kasutaja jaoks käivitatakse eraldi xrdp protsess: kui katkestate ühenduse seanssi lõpetamata, jätkavad kasutajaprotsessid vaikimisi tööd ja saate seansiga uuesti ühenduse luua. Seadistusi saab muuta failis /etc/xrdp/sesman.ini (jaotis [Sessions]).

Klaviatuuripaigutuste vahetamine

Tavaliselt pole kahesuunalise lõikelauaga probleeme, aga vene klaviatuuripaigutusega tuleb natuke maagiat teha (vene keel peaks juba olemas olema). paigaldatud). Muudame Xrdp-serveri klaviatuuri sätteid:

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

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

sudo systemctl restart xrdp

Nagu näete, pole RDP-serveri seadistamine Linux VPS-il keeruline ja ... Eelmine artikkel VNC seadistust oleme juba arutanud. Lisaks neile tehnoloogiatele on veel üks huvitav variant: X3Go süsteem, mis kasutab modifitseeritud NX 2 protokolli. Vaatleme seda järgmises väljaandes.

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

Allikas: www.habr.com