VPS na Linuxu s grafičkim sučeljem: pokretanje RDP poslužitelja na Ubuntu 18.04

VPS na Linuxu s grafičkim sučeljem: pokretanje RDP poslužitelja na Ubuntu 18.04
В prethodni članak razgovarali smo o pokretanju VNC poslužitelja na virtualnom računalu bilo koje vrste. Ova opcija ima puno nedostataka, od kojih su glavni visoki zahtjevi za propusnost kanala za prijenos podataka. Danas ćemo se pokušati spojiti na grafičku radnu površinu na Linuxu putem RDP-a (Remote Desktop Protocol). VNC sustav temelji se na prijenosu nizova piksela pomoću RFB (Remote Framebuffer) protokola, a RDP vam omogućuje slanje složenijih grafičkih primitiva i naredbi visoke razine. Obično se koristi za pružanje usluga udaljene radne površine u sustavu Windows, ali dostupni su i poslužitelji za Linux.

Oglašavanje:

Instalacija grafičkog okruženja
Rusifikacija poslužitelja i instalacija softvera
Instalacija i konfiguracija RDP poslužitelja
Postavljanje vatrozida
Povezivanje s RDP poslužiteljem
Upravitelj sesija i korisničke sesije
Promjena rasporeda tipkovnice

Instalacija grafičkog okruženja

Uzet ćemo virtualni stroj s Ubuntu Serverom 18.04 LTS s dvije računalne jezgre, četiri gigabajta RAM-a i tvrdim diskom (HDD) od dvadeset gigabajta. Slabija konfiguracija nije prikladna za grafičku radnu površinu, iako to ovisi o zadacima koji se rješavaju. Ne zaboravite iskoristiti promo kod Habrahabr10 kako biste ostvarili popust od 10% na svoju narudžbu.

VPS na Linuxu s grafičkim sučeljem: pokretanje RDP poslužitelja na Ubuntu 18.04
Instalacija desktop okruženja sa svim ovisnostima vrši se sljedećom naredbom:

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

Kao i u prethodnom slučaju, odabrali smo XFCE zbog njegovih relativno niskih zahtjeva za računalnim resursima.

Rusifikacija poslužitelja i instalacija softvera

Često se virtualni strojevi postavljaju samo s engleskom lokalizacijom. Na radnoj površini možda će vam trebati ruski, koji je jednostavan za postavljanje. Najprije instalirajmo prijevode za sistemske programe:

sudo apt-get install language-pack-ru

Postavimo lokalizaciju:

sudo update-locale LANG=ru_RU.UTF-8

Isti se učinak može postići ručnim uređivanjem /etc/default/locale.

Za lokalizaciju GNOME-a i KDE-a, repozitorij ima pakete language-pack-gnome-ru i language-pack-kde-ru - trebat će vam ako koristite programe iz ovih desktop okruženja. U XFCE-u, prijevodi se instaliraju s aplikacijama. Zatim možete instalirati rječnike:

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

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

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

Osim toga, instalacija prijevoda može biti potrebna za neke aplikacijske programe:

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

Ovime je završena priprema okruženja radne površine, preostaje samo konfigurirati RDP poslužitelj.

Instalacija i konfiguracija RDP poslužitelja

Ubuntu repozitoriji imaju slobodno distribuiran Xrdp poslužitelj, koji ćemo koristiti:

sudo apt-get install xrdp

Ako je sve prošlo dobro, server bi se trebao pokrenuti automatski:

sudo systemctl status xrdp

VPS na Linuxu s grafičkim sučeljem: pokretanje RDP poslužitelja na Ubuntu 18.04
Xrdp poslužitelj radi s xrdp korisničkim pravima i prema zadanim postavkama uzima certifikat /etc/ssl/private/ssl-cert-snakeoil.key koji se može zamijeniti vašim vlastitim. Da biste imali pristup čitanju datoteke, morate dodati korisnika u grupu ssl-cert:

sudo adduser xrdp ssl-cert

Zadane postavke mogu se pronaći u datoteci /etc/default/xrdp, a sve ostale konfiguracijske datoteke poslužitelja nalaze se u direktoriju /etc/xrdp. Glavni parametri nalaze se u datoteci xrdp.ini koju nije potrebno mijenjati. Konfiguracija je dobro dokumentirana, a uključene su i odgovarajuće stranice priručnika:

man xrdp.ini
man xrdp

Sve što preostaje je urediti /etc/xrdp/startwm.sh skriptu, koja se izvršava kada se korisnička sesija inicijalizira. Prvo, napravimo sigurnosnu kopiju skripte iz distribucije:

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

Za pokretanje XFCE desktop okruženja trebat će vam skripta otprilike ova:

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

Imajte na umu: u skriptama je bolje napisati puni put do izvršnih datoteka - ovo je dobra navika. Učinimo skriptu izvršnom i u ovom trenutku postavljanje Xrdp poslužitelja može se smatrati dovršenim:

sudo chmod 755 /etc/xrdp/startwm.sh

Ponovno pokrenite poslužitelj:

sudo systemctl restart xrdp

Postavljanje vatrozida

Prema zadanim postavkama, Xrdp sluša TCP port 3389 na svim sučeljima. Ovisno o konfiguraciji virtualnog poslužitelja, možda ćete morati konfigurirati vatrozid Netfilter. Na Linuxu se to obično radi pomoću uslužnog programa iptables, ali na Ubuntuu je bolje koristiti ufw. Ako je IP adresa klijenta poznata, konfiguracija se provodi sljedećom naredbom:

sudo ufw allow from IP_Address to any port 3389

Možete dopustiti veze s bilo koje IP adrese ovako:

sudo ufw allow 3389

RDP protokol podržava enkripciju, ali izlaganje Xrdp poslužitelja javnim mrežama je loša ideja. Ako klijent nema fiksni IP, poslužitelj bi trebao slušati samo localhost radi povećanja sigurnosti. Najbolje mu je pristupiti preko SSH tunela, koji će sigurno preusmjeriti promet s klijentskog računala. Imamo sličan pristup korišten u prethodnom članku za VNC poslužitelj.

Povezivanje s RDP poslužiteljem

Za rad s okruženjem radne površine bolje je stvoriti zasebnog neprivilegiranog korisnika:

sudo adduser rdpuser

VPS na Linuxu s grafičkim sučeljem: pokretanje RDP poslužitelja na Ubuntu 18.04
Dodajmo korisnika u grupu sudo kako bi mogao obavljati poslove vezane uz administraciju. Ako nema takve potrebe, možete preskočiti ovaj korak:

sudo gpasswd -a rdpuser sudo

Možete se povezati s poslužiteljem koristeći bilo koji RDP klijent, uključujući ugrađeni Windows Remote Desktop Services klijent. Ako Xrdp sluša vanjsko sučelje, neće biti potrebne dodatne radnje. Dovoljno je u postavkama veze navesti VPS IP adresu, korisničko ime i lozinku. Nakon povezivanja vidjet ćemo nešto poput ovoga:

VPS na Linuxu s grafičkim sučeljem: pokretanje RDP poslužitelja na Ubuntu 18.04
Nakon početnog postavljanja okruženja radne površine, dobit ćemo potpunu radnu površinu. Kao što vidite, ne troši mnogo resursa, iako će sve ovisiti o korištenim aplikacijama.

VPS na Linuxu s grafičkim sučeljem: pokretanje RDP poslužitelja na Ubuntu 18.04
Ako Xrdp poslužitelj sluša samo localhost, promet na klijentskom računalu morat će se upakirati u SSH tunel (sshd mora biti pokrenut na VPS-u). Na Windowsima možete koristiti grafički SSH klijent (na primjer, PuTTY), a na UNIX sustavima potreban vam je uslužni program ssh:

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

Nakon što se tunel inicijalizira, RDP klijent se više neće spajati na udaljeni poslužitelj, već na lokalni host.

Teže je s mobilnim uređajima: morat ćete kupiti SSH klijente koji mogu podići tunel, au iOS-u i iPadOS-u otežan je pozadinski rad aplikacija trećih strana zbog predobre optimizacije potrošnje energije. Na iPhoneu i iPadu nećete moći stvoriti tunel u zasebnoj aplikaciji; trebat će vam harvester aplikacija koja sama može uspostaviti RDP vezu putem SSH-a. Kao što je npr Remoter Pro.

Upravitelj sesija i korisničke sesije

Mogućnost višekorisničkog rada implementirana je izravno u Xrdp poslužitelj i ne zahtijeva dodatnu konfiguraciju. Nakon pokretanja usluge putem systemd-a, jedan proces radi u demonskom načinu rada, sluša port 3389 i komunicira preko localhost s upraviteljem sesije.

ps aux |grep xrdp

VPS na Linuxu s grafičkim sučeljem: pokretanje RDP poslužitelja na Ubuntu 18.04

sudo netstat -ap |grep xrdp

VPS na Linuxu s grafičkim sučeljem: pokretanje RDP poslužitelja na Ubuntu 18.04
Upravitelj sesije obično nije vidljiv korisnicima, jer se prijava i lozinka navedeni u postavkama klijenta automatski prenose na njega. Ako se to ne dogodi ili dođe do pogreške tijekom provjere autentičnosti, umjesto radne površine pojavit će se interaktivni prozor za prijavu.

VPS na Linuxu s grafičkim sučeljem: pokretanje RDP poslužitelja na Ubuntu 18.04
Automatsko pokretanje upravitelja sesije navedeno je u datoteci /etc/default/xrdp, a konfiguracija je pohranjena u /etc/xrdp/sesman.ini. Prema zadanim postavkama izgleda otprilike ovako:

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

Ovdje ne morate ništa mijenjati, samo morate onemogućiti prijavu s root pravima (AllowRootLogin=false). Za svakog autoriziranog korisnika u sustavu pokreće se zaseban xrdp proces: ako prekinete vezu bez završetka sesije, korisnički procesi nastavit će se izvoditi prema zadanim postavkama i možete se ponovno spojiti na sesiju. Postavke se mogu promijeniti u datoteci /etc/xrdp/sesman.ini (odjeljak [Sesije]).

Promjena rasporeda tipkovnice

Obično nema problema s dvosmjernim međuspremnikom, ali s ruskim rasporedom tipkovnice morat ćete se malo poigrati (ruski lokalitet već bi trebao biti instaliran). Uredimo postavke tipkovnice Xrdp poslužitelja:

sudo nano /etc/xrdp/xrdp_keyboard.ini

Morate dodati sljedeće retke na kraj konfiguracijske datoteke:

[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

Sve što preostaje je spremiti datoteku i ponovno pokrenuti Xrdp:

sudo systemctl restart xrdp

Kao što vidite, nije teško postaviti RDP poslužitelj na Linux VPS, ali prethodni članak Već smo razgovarali o postavljanju VNC-a. Osim ovih tehnologija, postoji još jedna zanimljiva opcija: sustav X3Go koji koristi modificirani NX 2 protokol. Njime ćemo se baviti u sljedećoj publikaciji.

VPS na Linuxu s grafičkim sučeljem: pokretanje RDP poslužitelja na Ubuntu 18.04

Izvor: www.habr.com

Dodajte komentar