VPS Linuxon grafikus felülettel: VNC szerver indítása Ubuntu 18.04-en

VPS Linuxon grafikus felülettel: VNC szerver indítása Ubuntu 18.04-en
Egyes felhasználók viszonylag olcsó VPS-t bérelnek Windows rendszerrel a távoli asztali szolgáltatások futtatásához. Ugyanez megtehető Linuxon anélkül, hogy saját hardvert tárolna egy adatközpontban, vagy dedikált szervert bérelne. Vannak, akiknek ismerős grafikus környezetre van szükségük teszteléshez és fejlesztéshez, vagy távoli asztalra széles csatornával a mobileszközökről történő munkavégzéshez. A Remote FrameBuffer (RFB) protokoll alapú virtuális hálózati számítástechnikai (VNC) rendszer használatára számos lehetőség kínálkozik. Ebben a rövid cikkben elmondjuk, hogyan konfigurálhatja azt egy virtuális gépen bármilyen hipervizorral.

Tartalomjegyzék:

VNC szerver kiválasztása
Telepítés és konfigurálás
Szolgáltatás indítása a systemd-n keresztül
Asztali kapcsolat

VNC szerver kiválasztása

A VNC szolgáltatás beépíthető a virtualizációs rendszerbe, és a hypervisor összekapcsolja az emulált eszközökkel, és nincs szükség további konfigurációra. Ez a lehetőség jelentős többletköltséggel jár, és nem minden szolgáltató támogatja – még egy kevésbé erőforrás-igényes megvalósítás esetén is, amikor a valódi grafikus eszköz emulálása helyett egy egyszerűsített absztrakció (framebuffer) kerül átvitelre a virtuális gépre. Előfordul, hogy egy VNC szerver egy futó X szerverhez van kötve, de ez a módszer alkalmasabb fizikai gép elérésére, virtuálison pedig számos technikai nehézséget okoz. A VNC szerver telepítésének legegyszerűbb módja a beépített X szerver. Nem igényel fizikai eszközöket (videoadapter, billentyűzet és egér) vagy azok hipervizorral történő emulációját, ezért bármilyen típusú VPS-hez alkalmas.

Telepítés és konfigurálás

Szükségünk lesz egy virtuális gépre, amelynek alapértelmezett konfigurációja az Ubuntu Server 18.04 LTS. Számos VNC-kiszolgáló található a disztribúció szabványos tárolóiban: TightVNC, Tigervnc, x11vnc és mások. Megállapodtunk a TigerVNC mellett – a TightVNC jelenlegi elágazásában, amelyet a fejlesztő nem támogat. A többi szerver beállítása hasonló módon történik. Asztali környezetet is kell választani: véleményünk szerint az optimális megoldás az XFCE lenne a számítási erőforrások viszonylag alacsony követelményei miatt. Aki szeretne, telepíthet egy másik DE-t vagy WM-et: minden a személyes preferenciáktól függ, de a szoftver kiválasztása közvetlenül befolyásolja a RAM és a számítási magok szükségességét.

VPS Linuxon grafikus felülettel: VNC szerver 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

Ezután telepítenie kell a VNC-kiszolgálót:

sudo apt-get install tigervnc-standalone-server tigervnc-common

Superuserként futtatni rossz ötlet. Hozzon létre egy felhasználót és csoportot:

sudo adduser vnc

VPS Linuxon grafikus felülettel: VNC szerver 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 vnc sudo

A következő lépés a VNC-kiszolgáló futtatása vnc felhasználói jogosultságokkal, hogy biztonságos jelszót és konfigurációs fájlokat hozzon létre a ~/.vnc/ könyvtárban. A jelszó hossza 6-8 karakter lehet (a további karakterek le vannak vágva). Szükség esetén jelszót is beállítunk a csak megtekintéshez, pl. billentyűzet és egér hozzáférése nélkül. A következő parancsok futnak le vnc felhasználóként:

su - vnc
vncserver -localhost no

VPS Linuxon grafikus felülettel: VNC szerver indítása Ubuntu 18.04-en
Az RFB protokoll alapértelmezés szerint az 5900-tól 5906-ig terjedő TCP porttartományt használja – ez az ún. kijelző portok, amelyek mindegyike egy X szerver képernyőjének felel meg. Ebben az esetben a portok :0 és :6 közötti képernyőkkel vannak társítva. Az általunk elindított VNC-kiszolgálópéldány az 5901-es portot figyeli (képernyő: 1). Más példányok más portokon is működhetnek :2, :3 stb. képernyővel. A további konfigurálás előtt le kell állítania a szervert:

vncserver -kill :1

A parancsnak valami ilyesmit kell megjelenítenie: „Killing Xtigervnc process ID 18105... success!”

Amikor a TigerVNC elindul, a ~/.vnc/xstartup parancsfájlt futtatja a konfigurációs beállítások konfigurálásához. Hozzuk létre saját szkriptünket, először mentsük el a meglévő biztonsági másolatát, ha létezik:

mv ~/.vnc/xstartup ~/.vnc/xstartup.b
nano ~/.vnc/xstartup

Az XFCE asztali környezet munkamenetét a következő xstartup szkript indítja el:

#!/bin/bash
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
xrdb $HOME/.Xresources
exec /usr/bin/startxfce4 &

Az xrdb parancs szükséges ahhoz, hogy a VNC beolvassa az .Xresources fájlt a saját könyvtárban. Itt a felhasználó különféle grafikus asztali beállításokat határozhat meg: betűkészlet-megjelenítés, terminálszínek, kurzortémák stb. A szkriptet futtathatóvá kell tenni:

chmod 755 ~/.vnc/xstartup

Ezzel befejeződik a VNC-kiszolgáló beállítása. Ha a vncserver -localhost no paranccsal futtatja (mint vnc felhasználó), akkor a korábban megadott jelszóval csatlakozhat, és a következő képet láthatja:

VPS Linuxon grafikus felülettel: VNC szerver indítása Ubuntu 18.04-en

Szolgáltatás indítása a systemd-n keresztül

A VNC szerver kézi indítása nem alkalmas harci használatra, ezért rendszerszolgáltatást fogunk konfigurálni. A parancsok rootként futnak (sudo-t használunk). Először is hozzunk létre egy új egységfájlt a szerverünkhöz:

sudo nano /etc/systemd/system/[email protected]

A névben található @ szimbólum lehetővé teszi, hogy argumentumot adjon át a szolgáltatás konfigurálásához. Esetünkben a VNC megjelenítési portját határozza meg. Az egységfájl több részből áll:

[Unit]
Description=TigerVNC server
After=syslog.target network.target

[Service]
Type=simple
User=vnc 
Group=vnc 
WorkingDirectory=/home/vnc 
PIDFile=/home/vnc/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x960 :%i
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

Ezután értesítenie kell a systemd-t az új fájlról, és aktiválnia kell:

sudo systemctl daemon-reload
sudo systemctl enable [email protected]

A névben szereplő 1-es szám határozza meg a képernyő számát.

Állítsa le a VNC szervert, indítsa el szolgáltatásként, és ellenőrizze az állapotot:

# от имени пользователя vnc 
vncserver -kill :1

# с привилегиями суперпользователя
sudo systemctl start vncserver@1
sudo systemctl status vncserver@1

Ha a szolgáltatás fut, valami ilyesmit kell kapnunk.

VPS Linuxon grafikus felülettel: VNC szerver indítása Ubuntu 18.04-en

Asztali kapcsolat

Konfigurációnk nem használ titkosítást, így a hálózati csomagokat elfoghatják a támadók. Ráadásul a VNC szervereken elég gyakran sebezhetőségeket találni, ezért ne nyissa meg őket az internetről való hozzáféréshez. A helyi számítógépen való biztonságos csatlakozáshoz a forgalmat egy SSH-alagútba kell csomagolnia, majd be kell állítania egy VNC-ügyfelet. Windows rendszeren grafikus SSH-klienst (például PuTTY-t) használhat. A biztonság kedvéért a TigerVNC a szerveren csak a localhostra figyel, és nem érhető el közvetlenül nyilvános hálózatokról:


sudo netstat -ap |more

VPS Linuxon grafikus felülettel: VNC szerver indítása Ubuntu 18.04-en
Linuxban, FreeBSD-ben, OS X-ben és más UNIX-szerű operációs rendszerekben az ügyfélszámítógépről alagút jön létre az ssh segédprogrammal (az sshd-nek futnia kell a VNC-kiszolgálón):

ssh -L 5901:127.0.0.1:5901 -C -N -l vnc vnc_server_ip

Az -L opció a távoli kapcsolat 5901-es portját a localhost 5901-es portjához köti. A -C opció engedélyezi a tömörítést, az -N pedig azt mondja az ssh-nak, hogy ne hajtsa végre a távoli parancsot. Az -l kapcsoló megadja a bejelentkezést a távoli bejelentkezéshez.

Az alagút helyi számítógépen történő beállítása után el kell indítania a VNC-ügyfelet, és kapcsolatot kell létesítenie a 127.0.0.1:5901 (localhost:5901) gazdagéppel, a korábban megadott jelszó használatával a VNC-kiszolgáló eléréséhez. Most már biztonságosan kommunikálhatunk egy titkosított alagúton keresztül a VPS-en lévő XFCE grafikus asztali környezettel. A képernyőképen a felső segédprogram fut a terminálemulátorban, amely megmutatja a virtuális gép alacsony számítási erőforrás-felhasználását. Ezután minden a felhasználói alkalmazásoktól függ.

VPS Linuxon grafikus felülettel: VNC szerver indítása Ubuntu 18.04-en
VNC-kiszolgálót telepíthet és konfigurálhat Linux alatt szinte bármilyen VPS-en. Ez nem igényel drága és erőforrás-igényes konfigurációkat videoadapter emulációval vagy kereskedelmi szoftverlicencek vásárlását. Az általunk fontolóra vett rendszerszolgáltatási opción kívül vannak továbbiak is: indítás démon módban (az /etc/rc.local-on keresztül), amikor a rendszer elindul, vagy igény szerint az inetd-n keresztül. Ez utóbbi érdekes többfelhasználós konfigurációk létrehozásához. Az Internet Superserver elindítja a VNC szervert és csatlakoztatja hozzá a klienst, a VNC szerver pedig új képernyőt hoz létre és elindítja a munkamenetet. Azon belüli hitelesítéshez használhat egy grafikus megjelenítéskezelőt (pl. LightDM), és a kliens leválasztása után a munkamenet bezárul, és a képernyővel dolgozó összes program leáll.

VPS Linuxon grafikus felülettel: VNC szerver indítása Ubuntu 18.04-en

Forrás: will.com

Hozzászólás