VPS na Linuxu z grafičnim vmesnikom: zagon strežnika VNC na Ubuntu 18.04

VPS na Linuxu z grafičnim vmesnikom: zagon strežnika VNC na Ubuntu 18.04
Nekateri uporabniki najamejo razmeroma poceni VPS z operacijskim sistemom Windows za izvajanje storitev oddaljenega namizja. Enako lahko storite na Linuxu, ne da bi gostili lastno strojno opremo v podatkovnem centru ali najeli namenski strežnik. Nekateri potrebujejo znano grafično okolje za testiranje in razvoj ali oddaljeno namizje s širokim kanalom za delo iz mobilnih naprav. Obstaja veliko možnosti za uporabo sistema virtualnega omrežnega računalništva (VNC), ki temelji na protokolu Remote FrameBuffer (RFB). V tem kratkem članku vam bomo povedali, kako ga konfigurirati na virtualnem računalniku s katerim koli hipervizorjem.

Kazalo:

Izbira strežnika VNC
Namestitev in konfiguracija
Zagon storitve prek systemd
Povezava z namizjem

Izbira strežnika VNC

Storitev VNC je mogoče vgraditi v virtualizacijski sistem, hipervizor pa jo bo povezal z emuliranimi napravami in dodatna konfiguracija ne bo potrebna. Ta možnost vključuje precejšnje stroške in je ne podpirajo vsi ponudniki – tudi pri implementaciji, ki zahteva manj virov, ko se namesto posnemanja prave grafične naprave v virtualni stroj prenese poenostavljena abstrakcija (framebuffer). Včasih je strežnik VNC vezan na delujoči strežnik X, vendar je ta način bolj primeren za dostop do fizičnega stroja, na virtualnem pa povzroča številne tehnične težave. Najlažji način za namestitev strežnika VNC je z vgrajenim strežnikom X. Ne zahteva fizičnih naprav (video adapterja, tipkovnice in miške) ali njihove emulacije s hipervizorjem, zato je primeren za vse vrste VPS.

Namestitev in konfiguracija

Potrebovali bomo virtualni stroj z Ubuntu Server 18.04 LTS v privzeti konfiguraciji. V standardnih repozitorijih te distribucije je več strežnikov VNC: Tesen, TigerVNC, x11vnc in drugi. Odločili smo se za TigerVNC - trenutni fork TightVNC, ki ga razvijalec ne podpira. Nastavitev drugih strežnikov poteka na podoben način. Izbrati morate tudi namizno okolje: po našem mnenju bi bila najboljša možnost XFCE zaradi razmeroma nizkih zahtev po računalniških virih. Tisti, ki želijo, lahko namestijo drug DE ali WM: vse je odvisno od osebnih želja, vendar izbira programske opreme neposredno vpliva na potrebo po RAM-u in računalniških jedrih.

VPS na Linuxu z grafičnim vmesnikom: zagon strežnika VNC na Ubuntu 18.04

Namestitev namiznega okolja z vsemi odvisnostmi se izvede z naslednjim ukazom:

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

Nato morate namestiti strežnik VNC:

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

Zagon kot superuporabnik je slaba ideja. Ustvarite uporabnika in skupino:

sudo adduser vnc

VPS na Linuxu z grafičnim vmesnikom: zagon strežnika VNC na Ubuntu 18.04

Dodajmo uporabnika v skupino sudo, da bo lahko opravljal skrbniška opravila. Če te potrebe ni, lahko ta korak preskočite:

sudo gpasswd -a vnc sudo

Naslednji korak je zagon strežnika VNC z uporabniškimi pravicami vnc za ustvarjanje varnega gesla in konfiguracijskih datotek v imeniku ~/.vnc/. Geslo je lahko dolgo od 6 do 8 znakov (odvečni znaki so izrezani). Po potrebi se nastavi tudi geslo samo za ogled, tj. brez dostopa do tipkovnice in miške. Naslednji ukazi se izvajajo kot uporabnik vnc:

su - vnc
vncserver -localhost no

VPS na Linuxu z grafičnim vmesnikom: zagon strežnika VNC na Ubuntu 18.04
Protokol RFB privzeto uporablja obseg vrat TCP od 5900 do 5906 - to je tako imenovani. zaslonska vrata, od katerih vsako ustreza zaslonu strežnika X. V tem primeru so vrata povezana z zasloni od :0 do :6. Primerek strežnika VNC, ki smo ga zagnali, posluša vrata 5901 (zaslon: 1). Drugi primerki lahko delujejo na drugih vratih z zasloni :2, :3 itd. Pred nadaljnjo konfiguracijo morate ustaviti strežnik:

vncserver -kill :1

Ukaz bi moral prikazati nekaj takega: "Killing Xtigervnc ID ID 18105 ... uspeh!"

Ko se TigerVNC zažene, zažene skript ~/.vnc/xstartup za konfiguracijo konfiguracijskih nastavitev. Ustvarimo svoj skript, najprej shranimo varnostno kopijo obstoječega, če obstaja:

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

Sejo namiznega okolja XFCE zažene naslednji skript xstartup:

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

Ukaz xrdb je potreben, da VNC prebere datoteko .Xresources v domačem imeniku. Tam lahko uporabnik določi različne nastavitve grafičnega namizja: upodabljanje pisave, barve terminala, teme kazalca itd. Skript mora biti izvršljiv:

chmod 755 ~/.vnc/xstartup

S tem je nastavitev strežnika VNC zaključena. Če ga zaženete z ukazom vncserver -localhost no (kot uporabnik vnc), se lahko povežete s predhodno podanim geslom in vidite naslednjo sliko:

VPS na Linuxu z grafičnim vmesnikom: zagon strežnika VNC na Ubuntu 18.04

Zagon storitve prek systemd

Ročni zagon strežnika VNC ni primeren za uporabo v boju, zato bomo konfigurirali sistemsko storitev. Ukazi se izvajajo kot root (uporabljamo sudo). Najprej ustvarimo novo datoteko enote za naš strežnik:

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

Simbol @ v imenu vam omogoča posredovanje argumenta za konfiguracijo storitve. V našem primeru določa vrata zaslona VNC. Datoteka enote je sestavljena iz več razdelkov:

[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

Nato morate sistemd obvestiti o novi datoteki in jo aktivirati:

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

Številka 1 v imenu določa številko zaslona.

Zaustavite strežnik VNC, ga zaženite kot storitev in preverite stanje:

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

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

Če storitev deluje, bi morali dobiti nekaj takega.

VPS na Linuxu z grafičnim vmesnikom: zagon strežnika VNC na Ubuntu 18.04

Povezava z namizjem

Naša konfiguracija ne uporablja šifriranja, zato lahko napadalci prestrežejo omrežne pakete. Poleg tega v strežnikih VNC precej pogosto najti ranljivosti, zato jih ne smete odpreti za dostop iz interneta. Za varno povezavo v lokalnem računalniku morate zapakirati promet v tunel SSH in nato konfigurirati odjemalca VNC. V sistemu Windows lahko uporabite grafični odjemalec SSH (na primer PuTTY). Zaradi varnosti TigerVNC na strežniku posluša samo lokalnega gostitelja in ni neposredno dostopen iz javnih omrežij:


sudo netstat -ap |more

VPS na Linuxu z grafičnim vmesnikom: zagon strežnika VNC na Ubuntu 18.04
V Linuxu, FreeBSD, OS X in drugih operacijskih sistemih, podobnih UNIX-u, se tunel iz odjemalskega računalnika izvede s pomočjo pripomočka ssh (sshd mora delovati na strežniku VNC):

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

Možnost -L poveže vrata 5901 oddaljene povezave z vrati 5901 na lokalnem gostitelju. Možnost -C omogoča stiskanje, možnost -N pa pove ssh, naj ne izvede oddaljenega ukaza. Možnost -l podaja prijavo za oddaljeno prijavo.

Po nastavitvi tunela na lokalnem računalniku morate zagnati odjemalca VNC in vzpostaviti povezavo z gostiteljem 127.0.0.1:5901 (localhost:5901) z uporabo predhodno določenega gesla za dostop do strežnika VNC. Zdaj lahko varno komuniciramo prek šifriranega tunela z grafičnim namiznim okoljem XFCE na VPS. Na posnetku zaslona se zgornji pripomoček izvaja v terminalskem emulatorju, da prikaže nizko porabo računalniških virov virtualnega stroja. Potem bo vse odvisno od uporabniških aplikacij.

VPS na Linuxu z grafičnim vmesnikom: zagon strežnika VNC na Ubuntu 18.04
Strežnik VNC v Linuxu lahko namestite in konfigurirate na skoraj vsakem VPS. To ne zahteva dragih in zahtevnih konfiguracij z emulacijo video adapterja ali nakupa licenc komercialne programske opreme. Poleg možnosti sistemske storitve, ki smo jo upoštevali, obstajajo še druge: zagon v demonskem načinu (prek /etc/rc.local), ko se sistem zažene, ali na zahtevo prek inetd. Slednje je zanimivo za ustvarjanje večuporabniških konfiguracij. Internetni superserver bo zagnal strežnik VNC in z njim povezal odjemalca, strežnik VNC pa bo ustvaril nov zaslon in začel sejo. Za preverjanje pristnosti znotraj njega lahko uporabite grafični upravitelj zaslona (npr. LightDM), po prekinitvi povezave z odjemalcem pa bo seja zaprta in vsi programi, ki delajo z zaslonom, bodo prekinjeni.

VPS na Linuxu z grafičnim vmesnikom: zagon strežnika VNC na Ubuntu 18.04

Vir: www.habr.com

Dodaj komentar