VPS på Linux med en grafisk grænseflade: lancering af en RDP-server på Ubuntu 18.04

VPS på Linux med en grafisk grænseflade: lancering af en RDP-server på Ubuntu 18.04
В forrige artikel vi diskuterede at køre en VNC-server på en virtuel maskine af enhver type. Denne mulighed har mange ulemper, hvoraf den vigtigste er de høje krav til gennemstrømning af datatransmissionskanaler. I dag vil vi forsøge at oprette forbindelse til et grafisk skrivebord på Linux via RDP (Remote Desktop Protocol). VNC-systemet er baseret på transmission af arrays af pixels ved hjælp af RFB (Remote Framebuffer) protokollen, og RDP giver dig mulighed for at sende mere komplekse grafikprimitiver og kommandoer på højt niveau. Det bruges typisk til at hoste Remote Desktop Services på Windows, men servere til Linux er også tilgængelige.

Indholdsfortegnelse:

Installation af det grafiske miljø
Russificering af serveren og softwareinstallation
Installation og konfiguration af en RDP-server
Opsætning af en firewall
Opretter forbindelse til en RDP-server
Session Manager og brugersessioner
Skift tastaturlayout

Installation af det grafiske miljø

Vi tager en virtuel maskine med Ubuntu Server 18.04 LTS med to computerkerner, fire gigabyte RAM og en 10 gigabyte harddisk (HDD). En svagere konfiguration er ikke egnet til et grafisk skrivebord, selvom dette afhænger af opgaverne, der løses. Glem ikke at bruge kampagnekoden Habrahabr10 for at få XNUMX% rabat på din ordre.

VPS på Linux med en grafisk grænseflade: lancering af en RDP-server på Ubuntu 18.04
Installation af skrivebordsmiljø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 foregående tilfælde valgte vi XFCE på grund af dets relativt lave krav til computerressourcer.

Russificering af serveren og softwareinstallation

Ofte installeres virtuelle maskiner kun med engelsk lokalisering. På skrivebordet skal du muligvis bruge russisk, som er let at sætte op. Lad os først installere oversættelser til systemprogrammer:

sudo apt-get install language-pack-ru

Lad os konfigurere lokalisering:

sudo update-locale LANG=ru_RU.UTF-8

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

Til lokalisering af GNOME og KDE har depotet pakkerne language-pack-gnome-ru og language-pack-kde-ru - du skal bruge dem, hvis du bruger programmer fra disse skrivebordsmiljøer. I XFCE er oversættelser installeret med applikationer. Dernæst kan du installere ordbøgerne:

# Словари для проверки орфографии
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

Dette fuldender forberedelsen af ​​skrivebordsmiljøet, det eneste, der er tilbage, er at konfigurere RDP-serveren.

Installation og konfiguration af en RDP-server

Ubuntu-lagrene har en frit distribueret Xrdp-server, som vi vil bruge:

sudo apt-get install xrdp

Hvis alt gik godt, skulle serveren starte automatisk:

sudo systemctl status xrdp

VPS på Linux med en grafisk grænseflade: lancering af en RDP-server på Ubuntu 18.04
Xrdp-serveren kører med xrdp-brugerrettigheder og tager som standard /etc/ssl/private/ssl-cert-snakeoil.key-certifikatet, som kan erstattes med dit eget. For at få adgang til at læse filen, skal du tilføje brugeren til ssl-cert-gruppen:

sudo adduser xrdp ssl-cert

Standardindstillingerne kan findes i filen /etc/default/xrdp, og alle andre serverkonfigurationsfiler er placeret i mappen /etc/xrdp. Hovedparametrene er i filen xrdp.ini, som ikke skal ændres. Konfigurationen er veldokumenteret, og de tilsvarende manpages er inkluderet:

man xrdp.ini
man xrdp

Det eneste, der er tilbage, er at redigere /etc/xrdp/startwm.sh-scriptet, som udføres, når brugersessionen initialiseres. Lad os først lave 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-skrivebordsmiljøet skal du bruge et script som dette:

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

Bemærk venligst: i scripts er det bedre at skrive den fulde sti til de eksekverbare filer - dette er en god vane. Lad os gøre scriptet eksekverbart, og på dette tidspunkt kan opsætningen af ​​Xrdp-serveren betragtes som komplet:

sudo chmod 755 /etc/xrdp/startwm.sh

Genstart serveren:

sudo systemctl restart xrdp

Opsætning af en firewall

Som standard lytter Xrdp til TCP-port 3389 på alle grænseflader. Afhængigt af den virtuelle serverkonfiguration skal du muligvis konfigurere en Netfilter-firewall. På Linux gøres dette normalt ved hjælp af iptables-værktøjet, men på Ubuntu er det bedre at bruge ufw. Hvis klientens IP-adresse er kendt, udføres konfigurationen med følgende kommando:

sudo ufw allow from IP_Address to any port 3389

Du kan tillade forbindelser fra enhver IP som denne:

sudo ufw allow 3389

RDP-protokollen understøtter kryptering, men at udsætte Xrdp-serveren for offentlige netværk er en dårlig idé. Hvis klienten ikke har en fast IP, bør serveren kun lytte til localhost for at øge sikkerheden. Det er bedst at få adgang til det via en SSH-tunnel, som sikkert omdirigerer trafik fra klientcomputeren. Vi har en lignende tilgang brugt i forrige artikel til VNC server.

Opretter forbindelse til en RDP-server

For at arbejde med skrivebordsmiljøet er det bedre at oprette en separat uprivilegeret bruger:

sudo adduser rdpuser

VPS på Linux med en grafisk grænseflade: lancering af en RDP-server på Ubuntu 18.04
Lad os tilføje brugeren til sudo-gruppen, så han kan udføre administrationsrelaterede opgaver. Hvis der ikke er et sådant behov, kan du springe dette trin over:

sudo gpasswd -a rdpuser sudo

Du kan oprette forbindelse til serveren ved hjælp af enhver RDP-klient, inklusive den indbyggede Windows Remote Desktop Services-klient. Hvis Xrdp lytter til den eksterne grænseflade, er der ikke behov for yderligere handlinger. Det er nok at angive VPS IP-adressen, brugernavnet og adgangskoden i forbindelsesindstillingerne. Efter tilslutning vil vi se noget som dette:

VPS på Linux med en grafisk grænseflade: lancering af en RDP-server på Ubuntu 18.04
Efter den indledende opsætning af skrivebordsmiljøet får vi et fuldgyldigt skrivebord. Som du kan se, bruger det ikke mange ressourcer, selvom alt vil afhænge af de anvendte applikationer.

VPS på Linux med en grafisk grænseflade: lancering af en RDP-server på Ubuntu 18.04
Hvis Xrdp-serveren kun lytter til localhost, skal trafikken på klientcomputeren pakkes ind i en SSH-tunnel (sshd skal køre på VPS). På Windows kan du bruge en grafisk SSH-klient (for eksempel PuTTY), og på UNIX-systemer skal du bruge ssh-værktøjet:

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

Efter at tunnelen er initialiseret, vil RDP-klienten ikke længere oprette forbindelse til fjernserveren, men til den lokale vært.

Det er sværere med mobile enheder: SSH-klienter, der er i stand til at hæve en tunnel, skal købes, og i iOS og iPadOS er baggrundsdriften af ​​tredjepartsapplikationer vanskelig på grund af for god optimering af energiforbruget. På iPhone og iPad vil du ikke være i stand til at oprette en tunnel i en separat applikation; du skal bruge en høstmaskine, der selv kan etablere en RDP-forbindelse via SSH. Som f.eks Remote Pro.

Session Manager og brugersessioner

Muligheden for at arbejde med flere brugere er implementeret direkte i Xrdp-serveren og kræver ikke yderligere konfiguration. Efter at have startet tjenesten via systemd, kører en proces i dæmontilstand, lytter på port 3389 og kommunikerer gennem localhost med sessionsmanageren.

ps aux |grep xrdp

VPS på Linux med en grafisk grænseflade: lancering af en RDP-server på Ubuntu 18.04

sudo netstat -ap |grep xrdp

VPS på Linux med en grafisk grænseflade: lancering af en RDP-server på Ubuntu 18.04
Sessionsmanageren er normalt ikke synlig for brugerne, fordi login og adgangskode, der er angivet i klientindstillingerne, overføres automatisk til den. Hvis dette ikke sker, eller der er en fejl under godkendelsen, vises et interaktivt login-vindue i stedet for skrivebordet.

VPS på Linux med en grafisk grænseflade: lancering af en RDP-server på Ubuntu 18.04
Automatisk start af sessionsmanageren er angivet i filen /etc/default/xrdp, og konfigurationen er gemt i /etc/xrdp/sesman.ini. Som standard ser det 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
; When AlwaysGroupCheck=false access will be permitted
; if the group TerminalServerUsers is not defined.
AlwaysGroupCheck=false

[Sessions]

Du behøver ikke at ændre noget her, du skal bare deaktivere login med root-rettigheder (AllowRootLogin=false). For hver bruger, der er autoriseret i systemet, startes en separat xrdp-proces: Hvis du afbryder forbindelsen uden at afslutte sessionen, vil brugerprocesser fortsætte med at køre som standard, og du kan oprette forbindelse til sessionen igen. Indstillinger kan ændres i filen /etc/xrdp/sesman.ini ([Sessions]-sektionen).

Skift tastaturlayout

Der er normalt ingen problemer med et to-vejs udklipsholder, men med det russiske tastaturlayout bliver du nødt til at lege lidt (den russiske lokalitet burde allerede være installeret). Lad os redigere tastaturindstillingerne på Xrdp-serveren:

sudo nano /etc/xrdp/xrdp_keyboard.ini

Du skal tilføje følgende linjer til slutningen af ​​konfigurationsfilen:

[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 eneste, der er tilbage, er at gemme filen og genstarte Xrdp:

sudo systemctl restart xrdp

Som du kan se, er det ikke svært at konfigurere en RDP-server på en Linux VPS, men forrige artikel Vi har allerede diskuteret VNC-opsætningen. Ud over disse teknologier er der en anden interessant mulighed: X3Go-systemet ved hjælp af en modificeret NX 2-protokol. Vi vil behandle det i næste publikation.

VPS på Linux med en grafisk grænseflade: lancering af en RDP-server på Ubuntu 18.04

Kilde: www.habr.com

Tilføj en kommentar