VPS på Linux med grafisk interface: vi opsætter RDP-server på Ubuntu 18.04

VPS på Linux med grafisk interface: vi opsætter RDP-server på Ubuntu 18.04
I i den foregående artikel Vi har gennemgået opstart af en VNC-server på en virtuel maskine af enhver type. Denne løsning har mange ulemper, hvoraf den primære er de høje krav til båndbredde i datatransmissionskanaler. I dag vil vi forsøge at oprette forbindelse til en grafisk skrivebord i Linux via RDP (Remote Desktop Protocol). VNC-systemet er baseret på overførsel af pixel-arrays via RFB-protokollen (Remote Framebuffer), mens RDP muliggør sending af mere komplekse grafiske primitiv og høj-niveau kommandoer. Det bruges typisk til at organisere fjernskrivebords tjenester i Windows, men servere til Linux er også tilgængelige.

Indholdsfortegnelse:

Installation af grafisk miljø
Oversættelse af server og installation af software
Installation og konfiguration af RDP-server
Konfiguration af firewall
Forbindelse til RDP-server
Sessionsmanager og bruger-sessioner
Skift af tastaturlayout

Installation af grafisk miljø

Vi vil tage en virtuel maskine med Ubuntu Server 18.04 LTS med to CPU-kerner, fire gigabyte RAM og en harddisk (HDD) på 20 gigabyte. En svagere konfiguration er dårlig til grafiske desktop-opgaver, selvom det afhænger af opgaverne. Husk at bruge rabatkoden Habrahabr10 for at få 10% rabat ved bestilling.

VPS på Linux med grafisk interface: vi opsætter RDP-server på Ubuntu 18.04
Installationen af desktopmiljøet med alle afhængigheder udføres med følgende kommando:

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

Som i det forrige tilfælde valgte vi XFCE på grund af de relativt lave krav til computerressourcer.

Oversættelse af server og installation af software

Ofte implementeres virtuelle maskiner kun med engelsk lokalisation. På skrivebordet kan der være behov for russisk, som ikke er svært at konfigurere. Først installerer vi oversættelser til systemprogrammerne:

sudo apt-get install language-pack-da

Lad os konfigurere lokaliseringen:

sudo update-locale LANG=da_DK.UTF-8

Den samme effekt kan opnås ved at redigere filen /etc/default/locale manuelt.

For lokalisering af GNOME og KDE er der pakkerne language-pack-gnome-da og language-pack-kde-da i repository, som vil være nødvendige, hvis du bruger programmer fra disse skrivebordsomgivelser. I XFCE installeres oversættelserne sammen med applikationerne. Derefter kan du installere ordbøger:

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

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

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

Derudover kan installation af oversættelser være påkrævet for nogle applikationsprogrammer:

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

Med dette er forberedelsen af skrivebordsomgivelserne afsluttet, og vi skal konfigurere RDP-serveren.

Installation og konfiguration af RDP-server

I Ubuntu-arkiverne findes den frit distribuerede server Xrdp, som vi vil bruge:

sudo apt-get install xrdp

Hvis alt gik godt, skal serveren starte automatisk:

sudo systemctl status xrdp

VPS på Linux med grafisk interface: vi opsætter RDP-server på Ubuntu 18.04
Xrdp-serveren starter med brugeren xrdp og bruger som standard certifikatet /etc/ssl/private/ssl-cert-snakeoil.key, som kan erstattes med dit eget. For at give læseadgang til filen skal du tilføje brugeren til gruppen ssl-cert:

sudo adduser xrdp ssl-cert

Standardindstillingerne kan findes i filen /etc/default/xrdp, og alle andre konfigurationsfiler for serveren er i mappen /etc/xrdp. De vigtigste indstillinger findes i filen xrdp.ini, som ikke nødvendigvis skal ændres. Konfigurationen er godt dokumenteret, og der er også de relevante manpages tilgængelige:

man xrdp.ini
man xrdp

Det er kun nødvendigt at redigere scriptet /etc/xrdp/startwm.sh, som køres ved initialisering af brugersessionen. Først laver vi en sikkerhedskopi af scriptet fra distributionen:

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

For at starte XFCE skrivebords miljøet kræves et script af cirka følgende indhold:

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

Bemærk: I scripts er det bedre at angive den fulde sti til eksekverbare filer — det er en god vane. Vi gør scriptet eksekverbart, og så kan opsætningen af Xrdp-serveren betragtes som afsluttet:

sudo chmod 755 /etc/xrdp/startwm.sh

Vi genstarter serveren:

sudo systemctl restart xrdp

Konfiguration af firewall

Som standard lytter Xrdp på TCP-port 3389 på alle grænseflader. Afhængigt af konfigurationen af den virtuelle server kan det være nødvendigt at justere Netfilter-firewallen. I Linux håndteres dette normalt med værktøjet iptables, men i Ubuntu er det bedre at bruge ufw. Hvis klientens IP-adresse er kendt, udføres opsætningen med følgende kommando:

sudo ufw allow from IP_Address to any port 3389

For at tillade forbindelser fra en hvilken som helst IP kan du gøre det sådan:

sudo ufw allow 3389

RDP-protokollen understøtter kryptering, men det er en dårlig ide at åbne adgang til Xrdp-serveren fra offentlige netværk. Hvis klienten ikke har en statisk IP, skal serveren kun lytte på localhost for at øge sikkerheden. Adgang til den bør konfigureres gennem en SSH-tunnel, der sikkert kan omdirigere trafik fra klientcomputeren. En lignende tilgang har vi brugt i den tidligere artikel til VNC-serveren.

Forbindelse til RDP-server

For at arbejde med skrivebords miljøet er det bedst at oprette en separat, ikke-privilegeret bruger:

sudo adduser rdpuser

VPS på Linux med grafisk interface: vi opsætter RDP-server på Ubuntu 18.04
Lad os tilføje brugeren til sudo-gruppen, så han kan løse administrativt relaterede opgaver. Hvis der ikke er behov for det, kan dette trin springes over:

sudo gpasswd -a rdpuser sudo

Du kan tilslutte dig serveren ved hjælp af enhver RDP-klient, herunder den indbyggede klient i Windows Remote Desktop Services. Hvis Xrdp lytter på den externe grænseflade, kræves der ikke yderligere tiltag. Det er nok at angive VPS'ens IP-adresse, brugernavn og adgangskode i forbindelsesindstillingerne. Efter tilslutning vil vi se et omtrent sådant billede:

VPS på Linux med grafisk interface: vi opsætter RDP-server på Ubuntu 18.04
Efter den indledende opsætning af skrivebords miljøet får vi en fuldgyldig desktop. Som du kan se, forbruger den ikke så mange ressourcer, selvom alt videre vil afhænge af de anvendte applikationer.

VPS på Linux med grafisk interface: vi opsætter RDP-server på Ubuntu 18.04
Hvis serveren Xrdp kun lytter til localhost, skal trafikken på klientcomputeren pakkes ind i en SSH-tunnel (sshd skal køre på VPS'en). På Windows kan man bruge en grafisk SSH-klient (f.eks. PuTTY), mens man i UNIX-systemer har brug for værktøjet ssh:

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

Efter initialisering af tunnelen vil RDP-klienten ikke forbinde til den fjernserver, men til den lokale vært.

Med mobile enheder er det mere kompliceret: klienter, der kan oprette tunnelen, skal købes, og på iOS og iPadOS er baggrundsarbejde for tredjepartsapps besværligt på grund af den for gode energibesparelsesoptimering. På iPhone og iPad kan tunnelen ikke oprettes i en separat app - der kræves en kombinationsapp, der selv kan oprette RDP-forbindelsen via SSH. En sådan app er f.eks. Remoter Pro.

Sessionsmanager og bruger-sessioner

Muligheden for flerbrugersamarbejde er implementeret direkte i Xrdp-serveren og kræver ikke yderligere opsætning. Efter opstart af tjenesten via systemd kører en proces som daemon, lytter på port 3389 og interagerer via localhost med sessionsmanageren.

ps aux |grep xrdp

VPS på Linux med grafisk interface: vi opsætter RDP-server på Ubuntu 18.04

sudo netstat -ap |grep xrdp

VPS på Linux med grafisk interface: vi opsætter RDP-server på Ubuntu 18.04
Sessionsmanageren er som regel ikke synlig for brugerne, da de loginoplysninger, der er angivet i klientens indstillinger, automatisk sendes til den. Hvis dette ikke sker, eller der opstår en fejl under autentifikationen, vises et interaktivt vindue til login i stedet for skrivebordet.

VPS på Linux med grafisk interface: vi opsætter RDP-server på Ubuntu 18.04
Den automatiske opstart af sessionsmanageren er angivet i filen /etc/default/xrdp, og konfigurationen gemmes i /etc/xrdp/sesman.ini. Som standard ser den cirka sådan ud:

[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
; Når AlwaysGroupCheck=false, vil adgangen være tilladt
; hvis gruppen TerminalServerUsers ikke er defineret.
AlwaysGroupCheck=false

[Sessions]

Her kan man intet ændre, man bør blot forbyde adgang med root-rettigheder (AllowRootLogin=false). For hver bruger, der godkendes i systemet, startes en separat xrdp-proces: hvis man frakobles uden at afslutte sessionen, vil brugerprocesserne som standard fortsætte med at køre, og man kan igen oprette forbindelse til sessionen. Indstillingerne kan ændres i filen /etc/xrdp/sesman.ini (sektion [Sessions]).

Skift af tastaturlayout

Med tovejsudveksling er der normalt ikke problemer, men med det russiske tastaturlayout skal der lige arbejdes lidt (den russiske lokalitet skal allerede være installeret). Lad os redigere tastaturindstillingerne for Xrdp-serveren:

sudo nano /etc/xrdp/xrdp_keyboard.ini

Til sidst i konfigurationsfilen skal følgende linjer tilføjes:

[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

Det er nu tid til at gemme filen og genstarte Xrdp:

sudo systemctl restart xrdp

Som du kan se, er det ikke svært at opsætte en RDP-server på en Linux VPS, og i i den foregående artikel har vi allerede gennemgået opsætningen af VNC. Udover disse teknologier er der også en interessant mulighed: systemet X2Go, der bruger en modificeret NX 3-protokol. Den vil vi se nærmere på i næste publikation.

VPS på Linux med grafisk interface: vi opsætter RDP-server på Ubuntu 18.04

Kilde: habr.com

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster