VPS na Linuxu s grafičkim sučeljem: pokretanje RDP servera na Ubuntu 18.04

VPS na Linuxu s grafičkim sučeljem: pokretanje RDP servera na Ubuntu 18.04
В prethodni članak razgovarali smo o pokretanju VNC servera na virtuelnoj mašini bilo koje vrste. Ova opcija ima puno nedostataka, od kojih su glavni visoki zahtjevi za propusnost kanala za prijenos podataka. Danas ćemo pokušati da se povežemo na grafičku radnu površinu na Linux-u preko RDP-a (Remote Desktop Protocol). VNC sistem je baziran na prenošenju nizova piksela koristeći RFB (Remote Framebuffer) protokol, a RDP vam omogućava slanje složenijih grafičkih primitiva i komandi visokog nivoa. Obično se koristi za hostovanje usluga udaljene radne površine na Windows-u, ali su dostupni i serveri za Linux.

Sadržaj:

Instaliranje grafičkog okruženja
Rusifikacija servera i instalacija softvera
Instalacija i konfiguracija RDP servera
Postavljanje zaštitnog zida
Povezivanje na RDP server
Upravitelj sesijama i korisničke sesije
Promjena rasporeda tastature

Instaliranje grafičkog okruženja

Uzećemo virtuelnu mašinu sa Ubuntu Server 18.04 LTS sa dva računarska jezgra, četiri gigabajta RAM-a i hard diskom od dvadeset gigabajta (HDD). Slabija konfiguracija nije prikladna za grafičku radnu površinu, iako to ovisi o zadacima koji se rješavaju. Ne zaboravite koristiti promotivni kod Habrahabr10 kako biste ostvarili 10% popusta na svoju narudžbu.

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

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

Kao iu prethodnom slučaju, odabrali smo XFCE zbog relativno niskih zahtjeva za računarskim resursima.

Rusifikacija servera i instalacija softvera

Često se virtuelne mašine postavljaju samo uz englesku lokalizaciju. Na desktopu će vam možda trebati ruski jezik, koji je lako podesiti. Prvo, instalirajmo prijevode za sistemske programe:

sudo apt-get install language-pack-ru

Postavimo lokalizaciju:

sudo update-locale LANG=ru_RU.UTF-8

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

Za lokalizaciju GNOME-a i KDE-a, spremište ima pakete language-pack-gnome-ru i language-pack-kde-ru - biće vam potrebni ako koristite programe iz ovih desktop okruženja. U XFCE, 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, za neke aplikativne programe može biti potrebna instalacija prijevoda:

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

Ovim je završena priprema desktop okruženja, preostaje samo da se konfiguriše RDP server.

Instalacija i konfiguracija RDP servera

Ubuntu spremišta imaju slobodno distribuirani Xrdp server, koji ćemo koristiti:

sudo apt-get install xrdp

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

sudo systemctl status xrdp

VPS na Linuxu s grafičkim sučeljem: pokretanje RDP servera na Ubuntu 18.04
Xrdp server radi sa xrdp korisničkim pravima i podrazumevano uzima /etc/ssl/private/ssl-cert-snakeoil.key sertifikat, koji se može zameniti vašim. Da biste imali pristup za čitanje datoteke, morate dodati korisnika u ssl-cert grupu:

sudo adduser xrdp ssl-cert

Podrazumevane postavke se mogu naći u /etc/default/xrdp datoteci, a sve ostale konfiguracione datoteke servera se nalaze u /etc/xrdp direktorijumu. Glavni parametri se nalaze u datoteci xrdp.ini, koju ne treba mijenjati. Konfiguracija je dobro dokumentirana, a uključene su i odgovarajuće man-stranice:

man xrdp.ini
man xrdp

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

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

Da biste pokrenuli XFCE desktop okruženje, trebat će vam skripta otprilike ovako:

#!/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 punu putanju do izvršnih datoteka - to je dobra navika. Učinimo skriptu izvršnom i u ovom trenutku se postavljanje Xrdp servera može smatrati završenim:

sudo chmod 755 /etc/xrdp/startwm.sh

Ponovo pokrenite server:

sudo systemctl restart xrdp

Postavljanje zaštitnog zida

Podrazumevano, Xrdp sluša TCP port 3389 na svim interfejsima. U zavisnosti od konfiguracije virtuelnog servera, možda ćete morati da konfigurišete Netfilter zaštitni zid. Na Linuxu se to obično radi pomoću iptables uslužnog programa, ali na Ubuntuu je bolje koristiti ufw. Ako je IP adresa klijenta poznata, konfiguracija se vrši sljedećom naredbom:

sudo ufw allow from IP_Address to any port 3389

Možete dozvoliti konekcije sa bilo kojeg IP-a ovako:

sudo ufw allow 3389

RDP protokol podržava enkripciju, ali izlaganje Xrdp servera javnim mrežama je loša ideja. Ako klijent nema fiksnu IP adresu, server bi trebao slušati samo localhost kako bi povećao sigurnost. Najbolje mu je pristupiti preko SSH tunela, koji će sigurno preusmjeriti promet sa klijentskog računara. Imamo sličan pristup korišteno u prethodnom članku za VNC server.

Povezivanje na RDP server

Za rad sa desktop okruženjem, bolje je kreirati zasebnog neprivilegiranog korisnika:

sudo adduser rdpuser

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

sudo gpasswd -a rdpuser sudo

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

VPS na Linuxu s grafičkim sučeljem: pokretanje RDP servera na Ubuntu 18.04
Nakon početnog podešavanja desktop okruženja, dobićemo punopravni desktop. 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 servera na Ubuntu 18.04
Ako Xrdp server sluša samo localhost, promet na klijentskom računaru će morati biti upakovan u SSH tunel (sshd mora biti pokrenut na VPS-u). Na Windows-u možete koristiti grafički SSH klijent (na primjer, PuTTY), a na UNIX sistemima vam je potreban ssh uslužni program:

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 povezivati ​​na udaljeni server, već na lokalni host.

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

Upravitelj sesijama i korisničke sesije

Mogućnost višekorisničkog rada implementirana je direktno u Xrdp server i ne zahtijeva dodatnu konfiguraciju. Nakon pokretanja usluge preko systemd-a, jedan proces radi u demonskom modu, sluša port 3389 i komunicira preko lokalnog hosta sa upraviteljem sesije.

ps aux |grep xrdp

VPS na Linuxu s grafičkim sučeljem: pokretanje RDP servera na Ubuntu 18.04

sudo netstat -ap |grep xrdp

VPS na Linuxu s grafičkim sučeljem: pokretanje RDP servera na Ubuntu 18.04
Upravljač sesijama obično nije vidljiv korisnicima, jer se na njega automatski prenose login i lozinka navedeni u postavkama klijenta. Ako se to ne dogodi ili dođe do greške tokom autentifikacije, umjesto radne površine pojavit će se interaktivni prozor za prijavu.

VPS na Linuxu s grafičkim sučeljem: pokretanje RDP servera na Ubuntu 18.04
Automatsko pokretanje upravitelja sesije je navedeno u /etc/default/xrdp datoteci, a konfiguracija je pohranjena u /etc/xrdp/sesman.ini. Standardno 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 korisnika autorizovanog u sistemu, pokreće se poseban xrdp proces: ako prekinete vezu bez završetka sesije, korisnički procesi će nastaviti da se izvršavaju podrazumevano, a vi se možete ponovo povezati na sesiju. Postavke se mogu promijeniti u datoteci /etc/xrdp/sesman.ini (odjeljak [Sesije]).

Promjena rasporeda tastature

Obično nema problema sa dvosmernim međuspremnikom, ali sa ruskim rasporedom tastature moraćete malo da se poigrate (ruska lokacija bi već trebala biti instaliran). Uredimo postavke tastature Xrdp servera:

sudo nano /etc/xrdp/xrdp_keyboard.ini

Morate dodati sljedeće redove 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 ostaje je da sačuvate datoteku i ponovo pokrenete Xrdp:

sudo systemctl restart xrdp

Kao što vidite, nije teško postaviti RDP server na Linux VPS, ali prethodni članak Već smo razgovarali o VNC postavci. Pored ovih tehnologija, postoji još jedna zanimljiva opcija: X3Go sistem koji koristi modifikovani NX 2 protokol. Njime ćemo se pozabaviti u sljedećoj publikaciji.

VPS na Linuxu s grafičkim sučeljem: pokretanje RDP servera na Ubuntu 18.04

izvor: www.habr.com

Dodajte komentar