VPS Linux sistemoje su grafine sąsaja: paleidžiamas KPP serveris Ubuntu 18.04

VPS Linux sistemoje su grafine sąsaja: paleidžiamas KPP serveris Ubuntu 18.04
В ankstesnis straipsnis aptarėme VNC serverio paleidimą bet kokio tipo virtualioje mašinoje. Ši parinktis turi daug trūkumų, iš kurių pagrindinis yra aukšti reikalavimai duomenų perdavimo kanalų pralaidumui. Šiandien bandysime prisijungti prie grafinio darbalaukio Linux sistemoje per RDP (Remote Desktop Protocol). VNC sistema pagrįsta pikselių matricų perdavimu naudojant RFB (Remote Framebuffer) protokolą, o RDP leidžia siųsti sudėtingesnius grafikos primityvus ir aukšto lygio komandas. Paprastai jis naudojamas nuotolinio darbalaukio paslaugoms priglobti sistemoje „Windows“, tačiau yra ir „Linux“ serverių.

Turinys:

Grafinės aplinkos diegimas
Serverio rusifikavimas ir programinės įrangos diegimas
KPP serverio diegimas ir konfigūravimas
Ugniasienės nustatymas
Prisijungimas prie KPP serverio
Seansų tvarkyklė ir vartotojo seansai
Klaviatūros išdėstymo perjungimas

Grafinės aplinkos diegimas

Paimsime virtualią mašiną su Ubuntu Server 18.04 LTS su dviem skaičiavimo branduoliais, keturiais gigabaitais RAM ir dvidešimties gigabaitų kietuoju disku (HDD). Silpnesnė konfigūracija netinka grafiniam darbalaukiui, nors tai priklauso nuo sprendžiamų užduočių. Nepamirškite naudoti reklamos kredito kodo Habrahabr10, kad gautumėte 10% nuolaidą užsakymui.

VPS Linux sistemoje su grafine sąsaja: paleidžiamas KPP serveris Ubuntu 18.04
Darbalaukio aplinkos su visomis priklausomybėmis diegimas atliekamas naudojant šią komandą:

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

Kaip ir ankstesniu atveju, pasirinkome XFCE dėl santykinai mažų skaičiavimo išteklių poreikių.

Serverio rusifikavimas ir programinės įrangos diegimas

Dažnai virtualios mašinos diegiamos tik su anglų kalbos lokalizacija. Darbalaukyje gali prireikti rusų kalbos, kurią lengva nustatyti. Pirmiausia įdiegkime sistemos programų vertimus:

sudo apt-get install language-pack-ru

Nustatykime lokalizaciją:

sudo update-locale LANG=ru_RU.UTF-8

Tą patį efektą galima pasiekti rankiniu būdu redaguojant /etc/default/locale.

GNOME ir KDE lokalizavimui saugykloje yra paketai language-pack-gnome-ru ir language-pack-kde-ru – jums jų prireiks, jei naudosite programas iš šių darbalaukio aplinkų. XFCE vertimai įdiegiami kartu su programomis. Tada galite įdiegti žodynus:

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

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

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

Be to, kai kuriose taikomosiose programose gali reikėti įdiegti vertimus:

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

Taip baigiamas darbalaukio aplinkos paruošimas, belieka sukonfigūruoti KPP serverį.

KPP serverio diegimas ir konfigūravimas

Ubuntu saugyklose yra laisvai platinamas Xrdp serveris, kurį naudosime:

sudo apt-get install xrdp

Jei viskas klostėsi gerai, serveris turėtų įsijungti automatiškai:

sudo systemctl status xrdp

VPS Linux sistemoje su grafine sąsaja: paleidžiamas KPP serveris Ubuntu 18.04
Xrdp serveris veikia su xrdp vartotojo teisėmis ir pagal numatytuosius nustatymus paima /etc/ssl/private/ssl-cert-snakeoil.key sertifikatą, kurį galima pakeisti savo. Kad galėtumėte skaityti failą, turite įtraukti vartotoją į ssl-cert grupę:

sudo adduser xrdp ssl-cert

Numatytuosius nustatymus galima rasti /etc/default/xrdp faile, o visi kiti serverio konfigūracijos failai yra /etc/xrdp kataloge. Pagrindiniai parametrai yra xrdp.ini faile, kurio keisti nereikia. Konfigūracija yra gerai dokumentuota ir yra įtraukti atitinkami vadovo puslapiai:

man xrdp.ini
man xrdp

Belieka tik redaguoti /etc/xrdp/startwm.sh scenarijų, kuris vykdomas inicijuojant vartotojo sesiją. Pirmiausia sukurkime atsarginę scenarijaus kopiją iš platinimo:

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

Norėdami paleisti XFCE darbalaukio aplinką, jums reikės tokio scenarijaus:

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

Atkreipkite dėmesį: scenarijuose geriau parašyti visą vykdomųjų failų kelią - tai geras įprotis. Padarykime scenarijų vykdomąjį ir šiuo metu Xrdp serverio sąranka gali būti laikoma baigta:

sudo chmod 755 /etc/xrdp/startwm.sh

Iš naujo paleiskite serverį:

sudo systemctl restart xrdp

Ugniasienės nustatymas

Pagal numatytuosius nustatymus Xrdp klausosi TCP 3389 prievado visose sąsajose. Atsižvelgiant į virtualaus serverio konfigūraciją, gali tekti sukonfigūruoti Netfilter ugniasienę. „Linux“ sistemoje tai paprastai daroma naudojant „iptables“ įrankį, tačiau „Ubuntu“ geriau naudoti „ufw“. Jei kliento IP adresas yra žinomas, konfigūracija atliekama naudojant šią komandą:

sudo ufw allow from IP_Address to any port 3389

Galite leisti prisijungti iš bet kurio IP, pavyzdžiui:

sudo ufw allow 3389

KPP protokolas palaiko šifravimą, tačiau Xrdp serverio atskleidimas viešuosiuose tinkluose yra bloga idėja. Jei klientas neturi fiksuoto IP, serveris turėtų klausytis tik „localhost“, kad padidintų saugumą. Geriausia jį pasiekti per SSH tunelį, kuris saugiai nukreips srautą iš kliento kompiuterio. Mes turime panašų požiūrį naudotas ankstesniame straipsnyje VNC serveriui.

Prisijungimas prie KPP serverio

Norėdami dirbti su darbalaukio aplinka, geriau sukurti atskirą neprivilegijuotą vartotoją:

sudo adduser rdpuser

VPS Linux sistemoje su grafine sąsaja: paleidžiamas KPP serveris Ubuntu 18.04
Įtraukime vartotoją į sudo grupę, kad jis galėtų atlikti su administravimu susijusias užduotis. Jei tokio poreikio nėra, galite praleisti šį veiksmą:

sudo gpasswd -a rdpuser sudo

Prie serverio galite prisijungti naudodami bet kurį KPP klientą, įskaitant įtaisytąjį „Windows Remote Desktop Services“ klientą. Jei Xrdp klausosi išorinės sąsajos, papildomų veiksmų nereikės. Pakanka ryšio nustatymuose nurodyti VPS IP adresą, vartotojo vardą ir slaptažodį. Prisijungę pamatysime kažką panašaus:

VPS Linux sistemoje su grafine sąsaja: paleidžiamas KPP serveris Ubuntu 18.04
Po pirminio darbalaukio aplinkos nustatymo gausime visavertį darbalaukį. Kaip matote, tai nesunaudoja daug resursų, nors viskas priklausys nuo naudojamų programų.

VPS Linux sistemoje su grafine sąsaja: paleidžiamas KPP serveris Ubuntu 18.04
Jei Xrdp serveris klauso tik „localhost“, srautas kliento kompiuteryje turės būti supakuotas į SSH tunelį (sshd turi veikti VPS). Sistemoje Windows galite naudoti grafinį SSH klientą (pvz., PuTTY), o UNIX sistemose jums reikia ssh paslaugų:

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

Inicijuojus tunelį, RDP klientas nebeprisijungs prie nuotolinio serverio, o prie vietinio pagrindinio kompiuterio.

Su mobiliaisiais įrenginiais yra sunkiau: teks pirkti SSH klientus, galinčius kelti tunelį, o iOS ir iPadOS foninis trečiųjų šalių programų veikimas apsunkinamas dėl per gero energijos suvartojimo optimizavimo. „IPhone“ ir „iPad“ įrenginiuose negalėsite sukurti tunelio atskiroje programoje; jums reikės kombaino programos, kuri pati galėtų sukurti KPP ryšį per SSH. Tokie kaip pvz Remote Pro.

Seansų tvarkyklė ir vartotojo seansai

Galimybė dirbti keliems vartotojams yra įdiegta tiesiogiai Xrdp serveryje ir nereikalauja papildomos konfigūracijos. Paleidus paslaugą per systemd, vienas procesas veikia demono režimu, klausosi 3389 prievado ir per localhost bendrauja su sesijos tvarkykle.

ps aux |grep xrdp

VPS Linux sistemoje su grafine sąsaja: paleidžiamas KPP serveris Ubuntu 18.04

sudo netstat -ap |grep xrdp

VPS Linux sistemoje su grafine sąsaja: paleidžiamas KPP serveris Ubuntu 18.04
Seansų tvarkyklė dažniausiai vartotojams nėra matoma, nes kliento nustatymuose nurodytas prisijungimas ir slaptažodis į jį perduodami automatiškai. Jei taip neatsitiks arba autentifikavimo metu įvyko klaida, vietoj darbalaukio atsiras interaktyvus prisijungimo langas.

VPS Linux sistemoje su grafine sąsaja: paleidžiamas KPP serveris Ubuntu 18.04
Automatinis seansų tvarkyklės paleidimas nurodytas /etc/default/xrdp faile, o konfigūracija saugoma /etc/xrdp/sesman.ini. Pagal numatytuosius nustatymus jis atrodo maždaug taip:

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

Čia nieko keisti nereikia, tereikia išjungti prisijungimą su root teisėmis (AllowRootLogin=false). Kiekvienam sistemoje įgaliotam vartotojui paleidžiamas atskiras xrdp procesas: jei atsijungsite nebaigę seanso, vartotojo procesai ir toliau bus vykdomi pagal numatytuosius nustatymus ir galėsite vėl prisijungti prie seanso. Nustatymai gali būti pakeisti /etc/xrdp/sesman.ini faile (skiltyje [Sesijos]).

Klaviatūros išdėstymo perjungimas

Su dvipuse iškarpine paprastai problemų nekyla, bet su rusiškos klaviatūros išdėstymu teks šiek tiek pažaisti (rusiška lokalė jau turėtų būti įdiegta). Redaguojame Xrdp serverio klaviatūros nustatymus:

sudo nano /etc/xrdp/xrdp_keyboard.ini

Konfigūracijos failo pabaigoje turite pridėti šias eilutes:

[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

Belieka išsaugoti failą ir iš naujo paleisti Xrdp:

sudo systemctl restart xrdp

Kaip matote, nėra sunku nustatyti KPP serverį Linux VPS, bet ankstesnis straipsnis Mes jau aptarėme VNC sąranką. Be šių technologijų, yra dar vienas įdomus variantas: X3Go sistema naudojant modifikuotą NX 2 protokolą. Apie tai kalbėsime kitame leidinyje.

VPS Linux sistemoje su grafine sąsaja: paleidžiamas KPP serveris Ubuntu 18.04

Šaltinis: www.habr.com

Добавить комментарий