VPS Linuxon grafikus felülettel: RDP-kiszolgáló indítása Ubuntu 18.04-en

VPS Linuxon grafikus felülettel: RDP-kiszolgáló indítása Ubuntu 18.04-en
В előző cikk megbeszéltük, hogy VNC-kiszolgálót futtassunk bármilyen típusú virtuális gépen. Ennek az opciónak számos hátránya van, amelyek közül a legfontosabb az adatátviteli csatornák átviteli sebességével szembeni magas követelmények. Ma megpróbálunk csatlakozni egy grafikus asztalhoz Linuxon RDP-n (Remote Desktop Protocol) keresztül. A VNC rendszer a pixeltömbök RFB (Remote Framebuffer) protokollt használó átvitelén alapul, az RDP pedig lehetővé teszi bonyolultabb grafikus primitívek és magas szintű parancsok küldését. Általában a távoli asztali szolgáltatások tárolására használják Windows rendszeren, de elérhetők Linux-kiszolgálók is.

Tartalomjegyzék:

Grafikus környezet telepítése
A szerver oroszosítása és a szoftvertelepítés
RDP szerver telepítése és konfigurálása
Tűzfal beállítása
Csatlakozás egy RDP szerverhez
Munkamenetkezelő és felhasználói munkamenetek
Billentyűzetkiosztás váltása

Grafikus környezet telepítése

Vegyünk egy virtuális gépet Ubuntu Server 18.04 LTS-sel, két számítási maggal, négy gigabájt RAM-mal és egy húsz gigabájtos merevlemezzel (HDD). A gyengébb konfiguráció nem megfelelő grafikus asztalhoz, bár ez a megoldandó feladatoktól függ. Ne felejtse el használni a Habrahabr10 promóciós kódot, hogy 10% kedvezményt kapjon rendeléséből.

VPS Linuxon grafikus felülettel: RDP-kiszolgáló indítása Ubuntu 18.04-en
Az összes függőséggel rendelkező asztali környezet telepítése a következő paranccsal történik:

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

Az előző esethez hasonlóan most is az XFCE-t választottuk annak viszonylag alacsony számítási erőforrásigénye miatt.

A szerver oroszosítása és a szoftvertelepítés

A virtuális gépeket gyakran csak angol lokalizációval telepítik. Az asztalon szükség lehet orosz nyelvre, amelyet könnyű beállítani. Először telepítsük a rendszerprogramok fordításait:

sudo apt-get install language-pack-ru

Állítsuk be a lokalizációt:

sudo update-locale LANG=ru_RU.UTF-8

Ugyanez a hatás érhető el az /etc/default/locale manuális szerkesztésével.

A GNOME és a KDE honosításához a lerakat tartalmazza a language-pack-gnome-ru és a language-pack-kde-ru csomagokat – ezekre szükség lesz, ha ezekből az asztali környezetekből származó programokat használ. Az XFCE-ben a fordítások az alkalmazásokkal együtt vannak telepítve. Ezután telepítheti a szótárakat:

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

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

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

Ezenkívül egyes alkalmazási programokhoz fordítások telepítése is szükséges lehet:

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

Ezzel befejeződött az asztali környezet előkészítése, már csak az RDP szerver konfigurálása van hátra.

RDP szerver telepítése és konfigurálása

Az Ubuntu tárolókban van egy szabadon terjesztett Xrdp szerver, amelyet fogunk használni:

sudo apt-get install xrdp

Ha minden jól ment, a szervernek automatikusan el kell indulnia:

sudo systemctl status xrdp

VPS Linuxon grafikus felülettel: RDP-kiszolgáló indítása Ubuntu 18.04-en
Az Xrdp szerver xrdp felhasználói jogokkal fut, és alapértelmezés szerint az /etc/ssl/private/ssl-cert-snakeoil.key tanúsítványt veszi át, amely lecserélhető a sajátjára. A fájl olvasásához való hozzáféréshez hozzá kell adnia a felhasználót az ssl-cert csoporthoz:

sudo adduser xrdp ssl-cert

Az alapértelmezett beállítások az /etc/default/xrdp fájlban találhatók, az összes többi szerverkonfigurációs fájl pedig az /etc/xrdp könyvtárban található. A fő paraméterek az xrdp.ini fájlban találhatók, amelyet nem kell módosítani. A konfiguráció jól dokumentált, és a megfelelő kézikönyvoldalak is megtalálhatók:

man xrdp.ini
man xrdp

Már csak az /etc/xrdp/startwm.sh szkriptet kell szerkeszteni, amely a felhasználói munkamenet inicializálásakor kerül végrehajtásra. Először készítsünk biztonsági másolatot a terjesztésből származó szkriptről:

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

Az XFCE asztali környezet elindításához valami ehhez hasonló szkriptre lesz szüksége:

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

Kérjük, vegye figyelembe: szkriptekben jobb, ha a végrehajtható fájlok teljes elérési útját írják - ez egy jó szokás. Tegyük végrehajthatóvá a szkriptet, és ezen a ponton az Xrdp szerver beállítása befejezettnek tekinthető:

sudo chmod 755 /etc/xrdp/startwm.sh

Indítsa újra a szervert:

sudo systemctl restart xrdp

Tűzfal beállítása

Alapértelmezés szerint az Xrdp az összes interfészen a 3389-es TCP-portra figyel. A virtuális szerver konfigurációjától függően előfordulhat, hogy be kell állítania egy Netfilter tűzfalat. Linuxon ez általában az iptables segédprogrammal történik, de Ubuntuban jobb az ufw használata. Ha ismert a kliens IP-címe, a konfiguráció a következő paranccsal történik:

sudo ufw allow from IP_Address to any port 3389

Bármilyen IP-ről engedélyezhet kapcsolatokat, például:

sudo ufw allow 3389

Az RDP protokoll támogatja a titkosítást, de az Xrdp szerver nyilvános hálózatoknak való kitétele rossz ötlet. Ha a kliensnek nincs rögzített IP-címe, a kiszolgálónak csak a localhost-ra kell figyelnie a biztonság növelése érdekében. A legjobb, ha egy SSH-alagúton keresztül éri el, amely biztonságosan átirányítja a forgalmat az ügyfélszámítógépről. Nálunk is hasonló a megközelítés használt az előző cikkben VNC szerverhez.

Csatlakozás egy RDP szerverhez

Az asztali környezettel való együttműködéshez jobb, ha külön jogosultság nélküli felhasználót hoz létre:

sudo adduser rdpuser

VPS Linuxon grafikus felülettel: RDP-kiszolgáló indítása Ubuntu 18.04-en
Adjuk hozzá a felhasználót a sudo csoporthoz, hogy el tudja látni az adminisztrációval kapcsolatos feladatokat. Ha nincs ilyen igény, kihagyhatja ezt a lépést:

sudo gpasswd -a rdpuser sudo

Bármely RDP-ügyféllel csatlakozhat a kiszolgálóhoz, beleértve a beépített Windows Remote Desktop Services-ügyfelet is. Ha az Xrdp figyeli a külső interfészt, nincs szükség további műveletekre. Elegendő a VPS IP-címét, felhasználónevét és jelszavát megadni a csatlakozási beállításoknál. Csatlakozás után valami ilyesmit fogunk látni:

VPS Linuxon grafikus felülettel: RDP-kiszolgáló indítása Ubuntu 18.04-en
Az asztali környezet kezdeti beállítása után egy teljes értékű asztali gépet kapunk. Mint látható, nem sok erőforrást fogyaszt, bár minden a használt alkalmazásoktól függ.

VPS Linuxon grafikus felülettel: RDP-kiszolgáló indítása Ubuntu 18.04-en
Ha az Xrdp szerver csak a localhostra figyel, akkor az ügyfélszámítógép forgalmát egy SSH alagútba kell csomagolni (az sshd-nek futnia kell a VPS-en). Windows rendszeren használhat grafikus SSH-ügyfelet (például PuTTY), UNIX rendszereken pedig az ssh segédprogramra van szüksége:

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

Az alagút inicializálása után az RDP-kliens többé nem a távoli kiszolgálóhoz, hanem a helyi gazdagéphez csatlakozik.

Mobileszközökkel nehezebb a helyzet: alagút emelésre képes SSH klienseket kell vásárolni, iOS-ben és iPadOS-ben pedig az energiafogyasztás túl jó optimalizálása miatt a harmadik féltől származó alkalmazások háttérműködtetése is nehézkes. iPhone-on és iPaden nem lehet külön alkalmazásban alagutat létrehozni; szükség lesz egy betakarító alkalmazásra, amely maga is képes RDP-kapcsolatot létesíteni SSH-n keresztül. Ilyen például Remote Pro.

Munkamenetkezelő és felhasználói munkamenetek

A többfelhasználós munkavégzés lehetősége közvetlenül az Xrdp-kiszolgálón van megvalósítva, és nem igényel további konfigurációt. A szolgáltatás systemd-n keresztüli elindítása után az egyik folyamat démon módban fut, a 3389-es porton figyel, és a localhost-on keresztül kommunikál a munkamenet-kezelővel.

ps aux |grep xrdp

VPS Linuxon grafikus felülettel: RDP-kiszolgáló indítása Ubuntu 18.04-en

sudo netstat -ap |grep xrdp

VPS Linuxon grafikus felülettel: RDP-kiszolgáló indítása Ubuntu 18.04-en
A munkamenetkezelő általában nem látható a felhasználók számára, mert a kliens beállításaiban megadott bejelentkezési név és jelszó automatikusan átkerül rá. Ha ez nem történik meg, vagy hiba történik a hitelesítés során, akkor az asztal helyett egy interaktív bejelentkezési ablak jelenik meg.

VPS Linuxon grafikus felülettel: RDP-kiszolgáló indítása Ubuntu 18.04-en
A munkamenet-kezelő automatikus indítása az /etc/default/xrdp fájlban van megadva, a konfiguráció pedig az /etc/xrdp/sesman.ini fájlban található. Alapértelmezés szerint valahogy így néz ki:

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

Itt nem kell semmit módosítani, csak le kell tiltani a root jogokkal való bejelentkezést (AllowRootLogin=false). A rendszerben feljogosított minden felhasználó esetében külön xrdp folyamat indul el: ha a munkamenet befejezése nélkül bontja le a kapcsolatot, a felhasználói folyamatok alapértelmezés szerint továbbra is futnak, és újra csatlakozhat a munkamenethez. A beállítások az /etc/xrdp/sesman.ini fájlban ([Sessions]) módosíthatók.

Billentyűzetkiosztás váltása

Általában nincs probléma a kétirányú vágólappal, de az orosz billentyűzetkiosztással kicsit játszadozni kell (az orosz nyelvi beállításnak már telepítve). Szerkesszük az Xrdp szerver billentyűzet beállításait:

sudo nano /etc/xrdp/xrdp_keyboard.ini

A következő sorokat kell hozzáadnia a konfigurációs fájl végéhez:

[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

Már csak a fájl mentése és az Xrdp újraindítása van hátra:

sudo systemctl restart xrdp

Amint látja, nem nehéz beállítani egy RDP-kiszolgálót egy Linux VPS-en, de előző cikk A VNC beállításáról már beszéltünk. Ezen technológiák mellett van még egy érdekes lehetőség: az X3Go rendszer egy módosított NX 2 protokollt használva. A következő kiadványban foglalkozunk vele.

VPS Linuxon grafikus felülettel: RDP-kiszolgáló indítása Ubuntu 18.04-en

Forrás: will.com

Hozzászólás