VPS op Linux met GUI: Begin 'n RDP-bediener op Ubuntu 18.04

VPS op Linux met GUI: Begin 'n RDP-bediener op Ubuntu 18.04
В vorige artikel ons het bespreek om 'n VNC-bediener op 'n virtuele masjien van enige tipe te laat loop. Hierdie opsie het baie nadele, waarvan die belangrikste die hoë vereistes vir die deurset van data-oordragkanale is. Vandag sal ons probeer om via RDP (Remote Desktop Protocol) aan 'n grafiese lessenaar op Linux te koppel. Die VNC-stelsel is gebaseer op die oordrag van skikkings pixels met behulp van die RFB (Remote Framebuffer) protokol, en RDP laat jou toe om meer komplekse grafiese primitiewe en hoëvlak-opdragte te stuur. Dit word tipies gebruik om Remote Desktop Services op Windows aan te bied, maar bedieners vir Linux is ook beskikbaar.

INHOUDSOPGAWE:

Die installering van die grafiese omgewing
Russifikasie van die bediener en sagteware installasie
Installeer en konfigureer 'n RDP-bediener
Die opstel van 'n firewall
Koppel aan 'n RDP-bediener
Sessiebestuurder en Gebruikersessies
Verander sleutelborduitlegte

Die installering van die grafiese omgewing

Ons sal 'n virtuele masjien met Ubuntu Server 18.04 LTS neem met twee rekenaarkerne, vier gigagrepe RAM en 'n twintig gigagreep hardeskyf (HDD). 'n Swakker konfigurasie is nie geskik vir 'n grafiese lessenaar nie, alhoewel dit afhang van die take wat opgelos word. Moenie vergeet om die promosiekode Habrahabr10 te gebruik om 10% afslag op jou bestelling te kry nie.

VPS op Linux met GUI: Begin 'n RDP-bediener op Ubuntu 18.04
Die installering van die lessenaaromgewing met alle afhanklikhede word gedoen met die volgende opdrag:

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

Soos in die vorige geval, het ons XFCE gekies as gevolg van sy relatief lae rekenaarhulpbronvereistes.

Russifikasie van die bediener en sagteware installasie

Dikwels word virtuele masjiene slegs met Engelse lokalisering ontplooi. Op die lessenaar het jy dalk Russies nodig, wat maklik is om op te stel. Kom ons installeer eers vertalings vir stelselprogramme:

sudo apt-get install language-pack-ru

Kom ons stel lokalisering op:

sudo update-locale LANG=ru_RU.UTF-8

Dieselfde effek kan verkry word deur die /etc/default/locale handmatig te wysig.

Vir lokalisering van GNOME en KDE, het die bewaarplek die taal-pak-gnome-ru en taal-pak-kde-ru pakkette - jy sal hulle nodig hê as jy programme van hierdie lessenaar omgewings gebruik. In XFCE word vertalings met toepassings geïnstalleer. Vervolgens kan u die woordeboeke installeer:

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

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

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

Daarbenewens kan die installering van vertalings vir sommige toepassingsprogramme vereis word:

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

Dit voltooi die voorbereiding van die lessenaaromgewing, al wat oorbly is om die RDP-bediener op te stel.

Installeer en konfigureer 'n RDP-bediener

Die Ubuntu-bewaarplekke het 'n vryverspreide Xrdp-bediener, wat ons sal gebruik:

sudo apt-get install xrdp

As alles goed gegaan het, behoort die bediener outomaties te begin:

sudo systemctl status xrdp

VPS op Linux met GUI: Begin 'n RDP-bediener op Ubuntu 18.04
Die Xrdp-bediener loop met xrdp-gebruikersregte en neem by verstek die /etc/ssl/private/ssl-cert-snakeoil.key-sertifikaat, wat met jou eie vervang kan word. Om toegang te hê om die lêer te lees, moet jy die gebruiker by die ssl-cert-groep voeg:

sudo adduser xrdp ssl-cert

Die verstekinstellings kan gevind word in die /etc/default/xrdp-lêer, en alle ander bedienerkonfigurasielêers is in die /etc/xrdp-gids geleë. Die hoofparameters is in die xrdp.ini-lêer, wat nie verander hoef te word nie. Die konfigurasie is goed gedokumenteer, en die ooreenstemmende manpages is ingesluit:

man xrdp.ini
man xrdp

Al wat oorbly is om die /etc/xrdp/startwm.sh-skrip te wysig, wat uitgevoer word wanneer die gebruikersessie geïnisialiseer word. Kom ons maak eers 'n rugsteunkopie van die skrif vanaf die verspreiding:

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

Om die XFCE-lessenaaromgewing te begin, het jy 'n skrif nodig soos hierdie:

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

Neem asseblief kennis: in skrifte is dit beter om die volledige pad na die uitvoerbare lêers te skryf - dit is 'n goeie gewoonte. Kom ons maak die script uitvoerbaar en op hierdie stadium kan die opstelling van die Xrdp-bediener as voltooi beskou word:

sudo chmod 755 /etc/xrdp/startwm.sh

Herbegin die bediener:

sudo systemctl restart xrdp

Die opstel van 'n firewall

By verstek luister Xrdp na TCP-poort 3389 op alle koppelvlakke. Afhangende van die virtuele bediener-konfigurasie, moet jy dalk 'n Netfilter-firewall opstel. Op Linux word dit gewoonlik gedoen met behulp van die iptables-hulpprogram, maar op Ubuntu is dit beter om ufw te gebruik. As die kliënt se IP-adres bekend is, word konfigurasie uitgevoer met die volgende opdrag:

sudo ufw allow from IP_Address to any port 3389

U kan verbindings vanaf enige IP soos volg toelaat:

sudo ufw allow 3389

Die RDP-protokol ondersteun enkripsie, maar om die Xrdp-bediener aan openbare netwerke bloot te stel, is 'n slegte idee. As die kliënt nie 'n vaste IP het nie, moet die bediener net na localhost luister om sekuriteit te verhoog. Dit is die beste om toegang daartoe te verkry via 'n SSH-tonnel, wat verkeer veilig vanaf die kliëntrekenaar sal herlei. Ons het 'n soortgelyke benadering in die vorige artikel gebruik vir VNC-bediener.

Koppel aan 'n RDP-bediener

Om met die lessenaaromgewing te werk, is dit beter om 'n aparte onbevoorregte gebruiker te skep:

sudo adduser rdpuser

VPS op Linux met GUI: Begin 'n RDP-bediener op Ubuntu 18.04
Kom ons voeg die gebruiker by die sudo-groep sodat hy administrasieverwante take kan verrig. As daar nie so 'n behoefte is nie, kan hierdie stap oorgeslaan word:

sudo gpasswd -a rdpuser sudo

Jy kan met enige RDP-kliënt aan die bediener koppel, insluitend die ingeboude Windows Remote Desktop Services-kliënt. As Xrdp na die eksterne koppelvlak luister, sal geen bykomende aksies nodig wees nie. Dit is genoeg om die VPS IP-adres, gebruikersnaam en wagwoord in die verbindingsinstellings te spesifiseer. Nadat ons gekoppel is, sal ons iets soos hierdie sien:

VPS op Linux met GUI: Begin 'n RDP-bediener op Ubuntu 18.04
Na die aanvanklike opstelling van die lessenaaromgewing, sal ons 'n volwaardige lessenaar kry. Soos u kan sien, verbruik dit nie baie hulpbronne nie, hoewel alles afhang van die toepassings wat gebruik word.

VPS op Linux met GUI: Begin 'n RDP-bediener op Ubuntu 18.04
As die Xrdp-bediener net na localhost luister, sal die verkeer op die kliëntrekenaar in 'n SSH-tonnel verpak moet word (sshd moet op die VPS loop). Op Windows kan u 'n grafiese SSH-kliënt (byvoorbeeld PuTTY) gebruik, en op UNIX-stelsels benodig u die ssh-nutsding:

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

Nadat die tonnel geïnisialiseer is, sal die RDP-kliënt nie meer aan die afgeleë bediener koppel nie, maar aan die plaaslike gasheer.

Dit is moeiliker met mobiele toestelle: SSH-kliënte wat in staat is om 'n tonnel te verhoog, sal gekoop moet word, en in iOS en iPadOS is die agtergrondwerking van derdeparty-toepassings moeilik as gevolg van te goeie optimalisering van energieverbruik. Op iPhone en iPad sal jy nie 'n tonnel in 'n aparte toepassing kan skep nie; jy sal 'n stropertoepassing nodig hê wat self 'n RDP-verbinding via SSH kan vestig. Soos byvoorbeeld Remote Pro.

Sessiebestuurder en Gebruikersessies

Die vermoë om multi-gebruiker te werk word direk in die Xrdp-bediener geïmplementeer en vereis nie bykomende konfigurasie nie. Nadat die diens via systemd begin is, loop een proses in daemonmodus, luister op poort 3389 en kommunikeer deur localhost met die sessiebestuurder.

ps aux |grep xrdp

VPS op Linux met GUI: Begin 'n RDP-bediener op Ubuntu 18.04

sudo netstat -ap |grep xrdp

VPS op Linux met GUI: Begin 'n RDP-bediener op Ubuntu 18.04
Die sessiebestuurder is gewoonlik nie vir gebruikers sigbaar nie, want die aanmelding en wagwoord wat in die kliëntinstellings gespesifiseer word, word outomaties daarnatoe oorgedra. As dit nie gebeur nie of daar is 'n fout tydens verifikasie, sal 'n interaktiewe aanmeldvenster in plaas van die lessenaar verskyn.

VPS op Linux met GUI: Begin 'n RDP-bediener op Ubuntu 18.04
Outomatiese bekendstelling van die sessiebestuurder word in die /etc/default/xrdp-lêer gespesifiseer, en die konfigurasie word in /etc/xrdp/sesman.ini gestoor. By verstek lyk dit so iets:

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

Jy hoef niks hier te verander nie, jy moet net aanmeld met wortelregte deaktiveer (AllowRootLogin=false). Vir elke gebruiker wat in die stelsel gemagtig is, word 'n aparte xrdp-proses geloods: as jy ontkoppel sonder om die sessie te beëindig, sal gebruikerprosesse by verstek voortgaan om te loop, en jy kan weer aan die sessie koppel. Instellings kan verander word in die /etc/xrdp/sesman.ini lêer ([Sessions] afdeling).

Verander sleutelborduitlegte

Daar is gewoonlik geen probleme met 'n tweerigtingknipbord nie, maar met die Russiese sleutelborduitleg sal jy 'n bietjie moet rondspeel (die Russiese plek behoort reeds te wees geïnstalleer). Kom ons wysig die sleutelbordinstellings van die Xrdp-bediener:

sudo nano /etc/xrdp/xrdp_keyboard.ini

Jy moet die volgende reëls aan die einde van die konfigurasielêer byvoeg:

[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

Al wat oorbly is om die lêer te stoor en Xrdp weer te begin:

sudo systemctl restart xrdp

Soos u kan sien, is dit nie moeilik om 'n RDP-bediener op 'n Linux VPS op te stel nie, maar vorige artikel Ons het reeds die VNC-opstelling bespreek. Benewens hierdie tegnologieë, is daar nog 'n interessante opsie: die X3Go-stelsel wat 'n gewysigde NX 2-protokol gebruik. Ons sal dit in die volgende publikasie behandel.

VPS op Linux met GUI: Begin 'n RDP-bediener op Ubuntu 18.04

Bron: will.com

Voeg 'n opmerking