VPS på Linux med et grafisk grensesnitt: lansering av en RDP-server på Ubuntu 18.04

VPS på Linux med et grafisk grensesnitt: lansering av en RDP-server på Ubuntu 18.04
В forrige artikkel vi diskuterte å kjøre en VNC-server på en virtuell maskin av enhver type. Dette alternativet har mange ulemper, hvorav den viktigste er de høye kravene til gjennomstrømming av dataoverføringskanaler. I dag skal vi prøve å koble til et grafisk skrivebord på Linux via RDP (Remote Desktop Protocol). VNC-systemet er basert på overføring av arrays av piksler ved hjelp av RFB (Remote Framebuffer)-protokollen, og RDP lar deg sende mer komplekse grafikkprimitiver og høynivåkommandoer. Den brukes vanligvis til å være vert for Remote Desktop Services på Windows, men servere for Linux er også tilgjengelige.

Bekreftelse:

Installere det grafiske miljøet
Russifisering av server og programvareinstallasjon
Installere og konfigurere en RDP-server
Brannmurkonfigurasjon
Kobler til en RDP-server
Session Manager og brukerøkter
Bytte tastaturoppsett

Installere det grafiske miljøet

Vi tar en virtuell maskin med Ubuntu Server 18.04 LTS med to datakjerner, fire gigabyte RAM og en tjue gigabyte harddisk (HDD). En svakere konfigurasjon er ikke egnet for et grafisk skrivebord, selv om dette avhenger av oppgavene som løses. Ikke glem å bruke kampanjekoden Habrahabr10 for å få 10 % rabatt på bestillingen din.

VPS på Linux med et grafisk grensesnitt: lansering av en RDP-server på Ubuntu 18.04
Installasjon av skrivebordsmiljøet med alle avhengigheter gjøres med følgende kommando:

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

Som i forrige tilfelle, valgte vi XFCE på grunn av dets relativt lave krav til dataressurser.

Russifisering av server og programvareinstallasjon

Ofte distribueres virtuelle maskiner bare med engelsk lokalisering. På skrivebordet trenger du kanskje russisk, som er enkelt å sette opp. Først, la oss installere oversettelser for systemprogrammer:

sudo apt-get install language-pack-ru

La oss sette opp lokalisering:

sudo update-locale LANG=ru_RU.UTF-8

Den samme effekten kan oppnås ved å manuelt redigere /etc/default/locale.

For lokalisering av GNOME og KDE har depotet pakkene language-pack-gnome-ru og language-pack-kde-ru - du trenger dem hvis du bruker programmer fra disse skrivebordsmiljøene. I XFCE er oversettelser installert med applikasjoner. Deretter kan du installere ordbøkene:

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

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

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

I tillegg kan installasjon av oversettelser være nødvendig for noen applikasjonsprogrammer:

# Браузер 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 fullfører forberedelsen av skrivebordsmiljøet, alt som gjenstår er å konfigurere RDP-serveren.

Installere og konfigurere en RDP-server

Ubuntu-lagrene har en fritt distribuert Xrdp-server, som vi vil bruke:

sudo apt-get install xrdp

Hvis alt gikk bra, bør serveren starte automatisk:

sudo systemctl status xrdp

VPS på Linux med et grafisk grensesnitt: lansering av en RDP-server på Ubuntu 18.04
Xrdp-serveren kjører med xrdp-brukerrettigheter og tar som standard /etc/ssl/private/ssl-cert-snakeoil.key-sertifikatet, som kan erstattes med ditt eget. For å få tilgang til å lese filen, må du legge til brukeren i ssl-cert-gruppen:

sudo adduser xrdp ssl-cert

Standardinnstillingene finnes i /etc/default/xrdp-filen, og alle andre serverkonfigurasjonsfiler er plassert i /etc/xrdp-katalogen. Hovedparametrene er i xrdp.ini-filen, som ikke trenger å endres. Konfigurasjonen er godt dokumentert, og de tilsvarende manpagene er inkludert:

man xrdp.ini
man xrdp

Alt som gjenstår er å redigere /etc/xrdp/startwm.sh-skriptet, som kjøres når brukerøkten initialiseres. La oss først lage en sikkerhetskopi av skriptet fra distribusjonen:

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

For å starte XFCE-skrivebordsmiljøet, trenger du et skript som dette:

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

Vær oppmerksom på: i skript er det bedre å skrive hele banen til de kjørbare filene - dette er en god vane. La oss gjøre skriptet kjørbart og på dette tidspunktet kan oppsettet av Xrdp-serveren anses som fullført:

sudo chmod 755 /etc/xrdp/startwm.sh

Start serveren på nytt:

sudo systemctl restart xrdp

Brannmurkonfigurasjon

Som standard lytter Xrdp til TCP-port 3389 på alle grensesnitt. Avhengig av den virtuelle serverkonfigurasjonen, kan det hende du må konfigurere en Netfilter-brannmur. På Linux gjøres dette vanligvis ved å bruke iptables-verktøyet, men på Ubuntu er det bedre å bruke ufw. Hvis klientens IP-adresse er kjent, utføres konfigurasjonen med følgende kommando:

sudo ufw allow from IP_Address to any port 3389

Du kan tillate tilkoblinger fra hvilken som helst IP som dette:

sudo ufw allow 3389

RDP-protokollen støtter kryptering, men å utsette Xrdp-serveren for offentlige nettverk er en dårlig idé. Hvis klienten ikke har en fast IP, bør serveren kun lytte til localhost for å øke sikkerheten. Det er best å få tilgang til den via en SSH-tunnel, som sikkert vil omdirigere trafikk fra klientdatamaskinen. Vi har en lignende tilnærming brukt i forrige artikkel for VNC-server.

Kobler til en RDP-server

For å jobbe med skrivebordsmiljøet er det bedre å opprette en egen uprivilegert bruker:

sudo adduser rdpuser

VPS på Linux med et grafisk grensesnitt: lansering av en RDP-server på Ubuntu 18.04
La oss legge brukeren til sudo-gruppen slik at han kan utføre administrasjonsrelaterte oppgaver. Hvis det ikke er et slikt behov, kan du hoppe over dette trinnet:

sudo gpasswd -a rdpuser sudo

Du kan koble til serveren ved å bruke en hvilken som helst RDP-klient, inkludert den innebygde Windows Remote Desktop Services-klienten. Hvis Xrdp lytter til det eksterne grensesnittet, vil ingen ytterligere handlinger være nødvendig. Det er nok å spesifisere VPS IP-adresse, brukernavn og passord i tilkoblingsinnstillingene. Etter tilkobling vil vi se noe slikt:

VPS på Linux med et grafisk grensesnitt: lansering av en RDP-server på Ubuntu 18.04
Etter det første oppsettet av skrivebordsmiljøet vil vi få et fullverdig skrivebord. Som du kan se, bruker det ikke mange ressurser, selv om alt vil avhenge av applikasjonene som brukes.

VPS på Linux med et grafisk grensesnitt: lansering av en RDP-server på Ubuntu 18.04
Hvis Xrdp-serveren kun lytter til localhost, må trafikken på klientdatamaskinen pakkes inn i en SSH-tunnel (sshd må kjøres på VPS). På Windows kan du bruke en grafisk SSH-klient (for eksempel PuTTY), og på UNIX-systemer trenger du ssh-verktøyet:

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

Etter at tunnelen er initialisert, vil ikke RDP-klienten lenger koble til den eksterne serveren, men til den lokale verten.

Det er vanskeligere med mobile enheter: SSH-klienter som er i stand til å heve en tunnel må kjøpes, og i iOS og iPadOS er bakgrunnsdriften til tredjepartsapplikasjoner vanskelig på grunn av for god optimalisering av energiforbruket. På iPhone og iPad vil du ikke kunne lage en tunnel i en egen applikasjon; du trenger en innhøstingsapplikasjon som selv kan opprette en RDP-forbindelse via SSH. Slik som for eksempel Remote Pro.

Session Manager og brukerøkter

Muligheten til flerbrukerarbeid implementeres direkte i Xrdp-serveren og krever ikke ytterligere konfigurasjon. Etter å ha startet tjenesten via systemd, kjører en prosess i daemon-modus, lytter på port 3389 og kommuniserer gjennom localhost med sesjonsbehandleren.

ps aux |grep xrdp

VPS på Linux med et grafisk grensesnitt: lansering av en RDP-server på Ubuntu 18.04

sudo netstat -ap |grep xrdp

VPS på Linux med et grafisk grensesnitt: lansering av en RDP-server på Ubuntu 18.04
Sesjonsbehandleren er vanligvis ikke synlig for brukere, fordi påloggingsinformasjonen og passordet som er spesifisert i klientinnstillingene, overføres til den automatisk. Hvis dette ikke skjer eller det er en feil under autentisering, vil et interaktivt påloggingsvindu vises i stedet for skrivebordet.

VPS på Linux med et grafisk grensesnitt: lansering av en RDP-server på Ubuntu 18.04
Automatisk oppstart av øktbehandlingen er spesifisert i filen /etc/default/xrdp, og konfigurasjonen lagres i /etc/xrdp/sesman.ini. Som standard ser det omtrent slik ut:

[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 trenger ikke å endre noe her, du må bare deaktivere pålogging med rotrettigheter (AllowRootLogin=false). For hver bruker som er autorisert i systemet, startes en egen xrdp-prosess: Hvis du kobler fra uten å avslutte økten, vil brukerprosesser fortsette å kjøre som standard, og du kan koble til økten igjen. Innstillinger kan endres i filen /etc/xrdp/sesman.ini ([Sessions]-delen).

Bytte tastaturoppsett

Det er vanligvis ingen problemer med et toveis utklippstavle, men med det russiske tastaturoppsettet må du leke litt (den russiske lokaliteten bør allerede være installert). La oss redigere tastaturinnstillingene til Xrdp-serveren:

sudo nano /etc/xrdp/xrdp_keyboard.ini

Du må legge til følgende linjer på slutten av konfigurasjonsfilen:

[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

Alt som gjenstår er å lagre filen og starte Xrdp på nytt:

sudo systemctl restart xrdp

Som du kan se, er det ikke vanskelig å sette opp en RDP-server på en Linux VPS, men forrige artikkel Vi har allerede diskutert VNC-oppsettet. I tillegg til disse teknologiene er det et annet interessant alternativ: X3Go-systemet som bruker en modifisert NX 2-protokoll. Vi vil ta for oss det i neste publikasjon.

VPS på Linux med et grafisk grensesnitt: lansering av en RDP-server på Ubuntu 18.04

Kilde: www.habr.com

Legg til en kommentar