Menü Bezárás

VNC szerver telepítése – Ubuntu 20.04, Ubuntu 22.04

XFCE asztal VNC szerveren keresztül

Kulcsszavak: Linux, VNC server, Ubuntu 22.04, Ubuntu 20.04, VPS

Az alábbi leírás egy VNC szerver telepítését fogja bemutatni. Az operációs rendszer Ubuntu 22.04 vagy Ubuntu 20.04 lehet. Mindkét rendszeren ugyanazokkal a parancsokkal tudjuk elvégezni a telepítést.
A VNC (virtual network computing) server egy távoli asztal elérést biztosító szoftver. Előszeretettel használatos olyan Linux szervereknél és VPS-nél, amelyeken grafikus asztali környezet is van telepítve.
Linux rendszereken számos asztali környezet telepíthető, amiket VNC kiszolgálóval távolról is elérhetővé lehet tenni. A következő leírásban csak három ilyen asztali környezet telepítésének és beállításának a menetét vesszük végig. Ez a három grafikus környezet a legkevésbé erőforrás igényes, így alapszintű VPS kiszolgálókon is jó teljesítménnyel használható.

A telepítéshez szükséges a rendszergazdai jogok megléte és SSH-n vagy a VPS konzolon való bejelentkezés.


1. XFCE4 telepítése, beállítása

Az XFCE4 asztali környezet a legelterjedtebb a VNC protokollon keresztül történő távoli elérésű kiszolgálóknál. Minimális erőforrásigény és jó testreszabhatóság jellemzi. Memória igénye: 150-350MB

Asztali környezet és a VNC server telepítése:

sudo apt install xfce4 xfce4-goodies tightvncserver

Állítsuk be a belépési jelszót a következő paranccsal. A jelszót kétszer kell megadni. Majd rákérdez a beállító a csak betekintésre használatos jelszó beállításáról (Would you like to enter a view-only password (y/n)?), amire az “n” gomb megnyomásával válaszoljunk nemmel.

vncpasswd

A sikeres jelszó beállítás után indítsuk el, majd állítsuk le a VNC szervert:

vncserver
vncserver -kill :1

Nyissuk meg szerkesztésre a felhasználónk (a példában “user”) mappájában található konfigurációs fájlt:

/home/user/.vnc/xstartup

Töröljünk ki belőle mindent és illesszük be ezt:

#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &

A grafikus felület felbontásának beállításához és a port megváltoztatásához nyissuk meg szerkesztésre a VNC szerver konfigurációs fájlját:
/usr/bin/@vncserver

Keressük a következő szekciókat és változtassuk igény szerint:

...
$geometry = “1280x1024”;
...
$vncPort = 5900 + 

A tűzfalon nyissuk meg a használni kívánt portokat. Biztonsági okokból érdemes a portot megváltoztatni. A használni kívánt port esetünkben az 5900+1, tehát 5901. Ha másik felhasználó alatt is indítunk egy VNC szervert, akkor ott a port már 5900+2 lesz, tehát 5902. Például UFW tűzfalon ezt a parancsot adjuk ki:

sudo ufw allow 5901/tcp

A sikeres beállítás után elindíthatjuk a VNC kiszolgálót a következő paranccsal:

vncserver

Így már távolról csatlakozhatunk a szerverünkre bármilyen VNC klienssel.

XFCE asztal VNC szerveren keresztül

2. MATE telepítése, beállítása

A MATE asztali környezet közepes erőforrás igényű, de nagyon jól konfigurálható felületet biztosít. Memória igénye 500-700MB.

Asztali környezet és a VNC server telepítése:

sudo apt install ubuntu-mate-desktop tightvncserver

Állítsuk be a belépési jelszót a következő paranccsal. A jelszót kétszer kell megadni. Majd rákérdez a beállító a csak betekintésre használatos jelszó beállításáról (Would you like to enter a view-only password (y/n)?), amire az “n” gomb megnyomásával válaszoljunk nemmel.

vncpasswd

A sikeres jelszó beállítás után indítsuk el, majd állítsuk le a VNC szervert:

vncserver
vncserver -kill :1

Nyissuk meg szerkesztésre a felhasználónk (a példában “user”) mappájában található konfigurációs fájlt:

/home/user/.vnc/xstartup

Töröljünk ki belőle mindent és illesszük be ezt:

#!/bin/sh
# Start up the standard system desktop
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
/usr/bin/mate-session
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
x-window-manager &

A grafikus felület felbontásának beállításához és a port megváltoztatásához nyissuk meg szerkesztésre a VNC szerver konfigurációs fájlját:

/usr/bin/@vncserver

Keressük a következő szekciókat és változtassuk igény szerint:

...
$geometry = “1280x1024”;
...
$vncPort = 5900 + 

A tűzfalon nyissuk meg a használni kívánt portokat. Biztonsági okokból érdemes a portot megváltoztatni. A használni kívánt port esetünkben az 5900+1, tehát 5901. Ha másik felhasználó alatt is indítunk egy VNC szervert, akkor ott a port már 5900+2 lesz, tehát 5902. Például UFW tűzfalon ezt a parancsot adjuk ki:

sudo ufw allow 5901/tcp

A sikeres beállítás után elindíthatjuk a VNC kiszolgálót a következő paranccsal:

vncserver

Így már távolról csatlakozhatunk a szerverünkre bármilyen VNC klienssel.

Mate asztal VNC szerveren keresztül

3. LXDE telepítése, beállítása

Az LXDE asztali környezet alacsony erőforrás igényű és jól konfigurálható felületet biztosít. Memória igénye 150-350MB.

Asztali környezet és a VNC server telepítése:

sudo apt-get install lxde-core tightvncserver

Állítsuk be a belépési jelszót a következő paranccsal. A jelszót kétszer kell megadni. Majd rákérdez a beállító a csak betekintésre használatos jelszó beállításáról (Would you like to enter a view-only password (y/n)?), amire az “n” gomb megnyomásával válaszoljunk nemmel.

vncpasswd

A sikeres jelszó beállítás után indítsuk el, majd állítsuk le a VNC szervert:

vncserver
vncserver -kill :1

Nyissuk meg szerkesztésre a felhasználónk (a példában “user”) mappájában található konfigurációs fájlt:

/home/user/.vnc/xstartup

Töröljünk ki belőle mindent és illesszük be ezt:

#!/bin/sh
xrdb $HOME/.Xresources
xsetroot -solid grey
#x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &
# Fix to make GNOME work
export XKL_XMODMAP_DISABLE=1
/etc/X11/Xsession
lxterminal &
/usr/bin/lxsession -s LXDE &

A grafikus felület felbontásának beállításához és a port megváltoztatásához nyissuk meg szerkesztésre a VNC szerver konfigurációs fájlját:

/usr/bin/@vncserver

Keressük a következő szekciókat és változtassuk igény szerint:

...
$geometry = “1280x1024”;
...
$vncPort = 5900 + 

A tűzfalon nyissuk meg a használni kívánt portokat. Biztonsági okokból érdemes a portot megváltoztatni. A használni kívánt port esetünkben az 5900+1, tehát 5901. Ha másik felhasználó alatt is indítunk egy VNC szervert, akkor ott a port már 5900+2 lesz, tehát 5902. Például UFW tűzfalon ezt a parancsot adjuk ki:

sudo ufw allow 5901/tcp

A sikeres beállítás után elindíthatjuk a VNC kiszolgálót a következő paranccsal:

vncserver

Így már távolról csatlakozhatunk a szerverünkre bármilyen VNC klienssel.

LXDE asztal VNC szerveren keresztül

4. VNC szerver futtatása szolgáltatásként.

Az előző pontokban feltelepített és beállított VNC szerver nem indul el a rendszer indításakor. Amennyiben szeretnénk rendszer szintű szolgáltatásként (system service) futtatni a VNC kiszolgálót, a következő lépéseket hajtsuk végre:

Root jogokkal hozzunk létre egy szolgáltatás indító fájlt a következő paranccsal:

sudo touch /etc/systemd/system/vncserver@.service

Majd nyissuk meg szerkesztésre a létrehozott fájlt és másoljuk be a következő kódot:
A “user” felhasználónevet cseréljük ki az általunk használt felhasználónévre. A “-localhost” kapcsolót vegyü ki, amennyiben nem használunk SSH tunneling-et.

[Unit]
Description=Start TightVNC server at startup
After=syslog.target network.target

[Service]
Type=forking
User=user
Group=user
WorkingDirectory=/home/user

PIDFile=/home/user/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x1024 -localhost :%i
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

A fájl mentése után adjuk ki a következő parancsokat a szolgáltatás bekapcsolásához:

sudo systemctl daemon-reload
sudo systemctl enable vncserver@1.service
vncserver -kill :1
sudo systemctl start vncserver@1

5. SSH tunneling

A VNC protokoll alapból nem használ titkosítást. Emiatt egy támadó könnyedén megfigyelheti a távoli asztal elérésünket, majd átveheti a távoli gép felett az irányítást. Titkosított kapcsolódást az SSH tunneling megoldással lehet létrehozni. A biztonság növelése érdekében a 4. pontban létrehozott “vncserver@.service” fájlba a jelölt helyen legyen jelen a “-localhost” kapcsoló. Ez a kapcsoló arra utasítja a VNC szervert, hogy csak a localhostról érkező kapcsolatokat fogadja. A tűzfalon be is zárhatjuk a VNC szerver üzemi portját, ami alap esetben és ebben a példában is az 5901-es port. A szerver beállítása után indítsuk újra a kiszolgálót, hogy minden módosítás érvénybe lépjen.

5.1 SSH tunneling beállítása Ubuntu rendszeren.

A helyi számítógépen, amiről csatlakozni fogunk a távoli VNC szerverünkhöz, nyissunk meg egy terminált és adjuk ki a következő parancsot. A “user” a távoli szerver felhasználója, amit helyettesítsünk be az általunk használt névvel. Az IP címet is írjuk át a saját szerverünk IP címére vagy domain nevére.

ssh -p 22 -L 59000:localhost:5901 -C -N -l user 192.168.0.120

Ezzel a paranccsal létrehoztunk egy titkosított csatornát a saját gépünk és a távoli kiszolgáló között. Így már nem tudják lehallgatni a két gép közötti kommunikációt.

A VNC kliensünkben (például KRDC) a következő paranccsal tudunk csatlakozni a VNC szerverhez:

localhost:59000
vagy
vnc://localhost:59000

5.1 SSH tunneling beállítása Windows rendszeren.

Telepítsük fel a Putty programot. Majd indítsuk el és az alábbi kép szerint adjuk hozzá a szükséges tunnel beállítást.

Tunneling beállítása a Putty-ban

Következő lépésként a “Session” rész alatt a kép szerint állítsuk be a szerver IP címét és az SSH portját, ami alaphelyzetben a 22-es.

SSH kapcsolat beállítása a Putty-ban

A “Saved Sessions” szekcióban elmenthetjük a beállításokat, hogy máskor ne kelljen újra beírogatni.

Ha végeztünk a beállításokkal, nyomjunk rá az “Open” gombra. Ekkor megnyílik egy terminál ablak, ahol a szerver felhasználó nevét, majd  jelszavát kell megadnunk. Sikeres bejelentkezés után nyissuk meg a VNC klienst, például: VNC Viewer. A terminál ablakot ne zárjuk be, amíg a kapcsolatot fenn akarjuk tartani.

A VNC szerver címéhez ezt adjuk meg:

localhost:59000

Bizonyos kliensek figyelmeztetést írhatnak ki, miszerint nem titkosított a kapcsolatunk. Ezzel nem kell törődni, mivel az Interneten már biztonságosan, titkosítva folyik a kommunikáció az SSH tunneling-nek köszönhetően.

VNC Viewer figyelmeztetés

A következő lépésben adjuk meg a belépési jelszót és már lehet is dolgozni a távoli kiszolgálón.

VNC Viewer - belépés a szerverre jelszóval