Mõned kasutajad rendivad suhteliselt odavat VPS-i koos Windows kaugtöölaua teenuse käivitamiseks. Sama saab teha ka Linux Ilma oma riistvara andmekeskuses majutamise või spetsiaalse serveri rentimiseta. Teised vajavad testimiseks ja arendamiseks tuttavat graafilist keskkonda või mobiilseadmetest töötamiseks lairibaühendusega kaugtöölauda. RFB-protokollil (Remote FrameBuffer) põhineva virtuaalse võrguarvutuse (VNC) jaoks on arvukalt rakendusi. Selles lühikeses artiklis selgitame, kuidas seda virtuaalmasinas mis tahes hüperviisoriga seadistada.
Оглавление
VNC-serveri valimine
VNC-teenuse saab virtualiseerimissüsteemi sisse ehitada ja hüperviisor ühendab selle emuleeritud seadmetega ning täiendavat konfigureerimist pole vaja. See valik hõlmab märkimisväärseid üldkulusid ja seda ei toeta kõik pakkujad – isegi vähem ressursimahuka juurutamise korral, kui tegeliku graafikaseadme emuleerimise asemel kantakse virtuaalsesse masinasse üle lihtsustatud abstraktsioon (kaadripuhver). Mõnikord on VNC-server seotud töötava X-serveriga, kuid see meetod sobib rohkem füüsilisele masinale juurdepääsuks ja virtuaalsel masinal tekitab see mitmeid tehnilisi raskusi. Lihtsaim viis VNC-serveri installimiseks on sisseehitatud X-server. See ei vaja füüsilisi seadmeid (videoadapter, klaviatuur ja hiir) ega nende emuleerimist hüperviisori abil ning sobib seetõttu igat tüüpi VPS-i jaoks.
Paigaldamine ja seadistamine
Vajame virtuaalmasinat koos Ubuntu Server 18.04 LTS oma vaikekonfiguratsioonis. Selle distributsiooni standardsed repositooriumid sisaldavad mitut VNC-serverit: , , ja teised. Otsustasime TigerVNC-ga - TightVNC praeguse hargiga, mida arendaja ei toeta. Teiste serverite seadistamine toimub sarnaselt. Samuti tuleb valida töölauakeskkond: optimaalne variant oleks meie hinnangul XFCE suhteliselt madalate nõuete tõttu arvutusressurssidele. Soovijad saavad installida teise DE või WM-i: kõik sõltub isiklikest eelistustest, kuid tarkvara valik mõjutab otseselt RAM-i ja arvutituumade vajadust.

Kõigi sõltuvustega töölauakeskkonna installimine toimub järgmise käsuga:
sudo apt-get install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utilsJärgmisena peate installima VNC-serveri:
sudo apt-get install tigervnc-standalone-server tigervnc-commonSelle käivitamine superkasutajana on halb mõte. Looge kasutaja ja grupp:
sudo adduser vnc 
Lisame kasutaja sudo gruppi, et ta saaks täita administreerimisega seotud ülesandeid. Kui sellist vajadust pole, võite selle sammu vahele jätta:
sudo gpasswd -a vnc sudoJärgmine samm on VNC-serveri käivitamine vnc-kasutajaõigustega, et luua kataloogis ~/.vnc/ turvaline parool ja konfiguratsioonifailid. Parooli pikkus võib olla 6 kuni 8 tähemärki (lisamärgid on ära lõigatud). Vajadusel seatakse parool ka ainult vaatamiseks, s.t. ilma juurdepääsuta klaviatuurile ja hiirele. Vnc kasutajana käivitatakse järgmised käsud:
su - vnc
vncserver -localhost no 
Vaikimisi kasutab RFB protokoll TCP pordi vahemikku 5900 kuni 5906 – see on nn. kuvapordid, millest igaüks vastab X-serveri ekraanile. Sel juhul on pordid seotud ekraanidega vahemikus :0 kuni :6. Meie käivitatud VNC-serveri eksemplar kuulab porti 5901 (ekraan: 1). Teised eksemplarid võivad töötada muude portidega, mille ekraanid on :2, :3 jne. Enne edasist seadistamist peate serveri seiskama:
vncserver -kill :1Käsk peaks kuvama midagi sellist: "Killing Xtigervnc protsessi ID 18105... edu!"
Kui TigerVNC käivitub, käivitab see konfiguratsiooniseadete konfigureerimiseks skripti ~/.vnc/xstartup. Loome oma skripti, salvestades esmalt olemasoleva varukoopia, kui see on olemas:
mv ~/.vnc/xstartup ~/.vnc/xstartup.b
nano ~/.vnc/xstartupXFCE töölauakeskkonna seansi käivitab järgmine xstartup skript:
#!/bin/bash
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
xrdb $HOME/.Xresources
exec /usr/bin/startxfce4 &Käsk xrdb on vajalik selleks, et VNC saaks lugeda kodukataloogis oleva .Xresources-faili. Seal saab kasutaja määrata erinevaid graafilisi töölaua sätteid: fondi renderdus, terminali värvid, kursori teemad jne. Skript tuleb muuta käivitatavaks:
chmod 755 ~/.vnc/xstartupSee lõpetab VNC-serveri seadistamise. Kui käivitate selle käsuga vncserver -localhost no (vnc kasutajana), saate ühenduse luua eelnevalt määratud parooliga ja näha järgmist pilti:

Teenuse käivitamine systemd kaudu
VNC-serveri käsitsi käivitamine ei sobi võitluseks kasutamiseks, seega konfigureerime süsteemiteenuse. Käsud täidetakse administraatorina (kasutame sudo). Kõigepealt loome oma serveri jaoks uue üksusefaili:
sudo nano /etc/systemd/system/vncserver@.serviceNimes olev sümbol @ võimaldab teil edastada argumendi teenuse konfigureerimiseks. Meie puhul määrab see VNC kuvapordi. Üksuse fail koosneb mitmest jaotisest:
[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.targetSeejärel peate süsteemid uuest failist teavitama ja selle aktiveerima:
sudo systemctl daemon-reload
sudo systemctl enable vncserver@1.serviceNimes olev number 1 määrab ekraani numbri.
Peatage VNC-server, käivitage see teenusena ja kontrollige olekut:
# от имени пользователя vnc
vncserver -kill :1# с привилегиями суперпользователя
sudo systemctl start vncserver@1
sudo systemctl status vncserver@1Kui teenus töötab, peaksime saama midagi sellist.

Töölaua ühendus
Meie konfiguratsioon ei kasuta krüptimist, nii et ründajad võivad võrgupakette kinni pidada. Lisaks VNC serverites üsna sageli , seega pole mõtet neid internetiühendusele avada. Kohaliku arvutiga turvaliseks ühenduse loomiseks peate oma liikluse suunama SSH-tunnelisse ja seejärel VNC-kliendi konfigureerima. Windows Võite kasutada graafilist SSH-klienti (näiteks PuTTY). Turvalisuse huvides kuulab serveris olev TigerVNC ainult localhosti ja sellele ei pääse avalikest võrkudest otse ligi:
sudo netstat -ap |more 
В Linux, FreeBSD, OS X ja teiste UNIX-i-laadsete operatsioonisüsteemide puhul luuakse kliendiarvutist tunnel ssh utiliidi abil (sshd peab töötama VNC serveris):
ssh -L 5901:127.0.0.1:5901 -C -N -l vnc vnc_server_ipValik -L seob kaugühenduse pordi 5901 kohaliku hosti pordiga 5901. Valik -C võimaldab tihendamist ja suvand -N käsib ssh-l kaugkäsku mitte käivitada. Valik -l määrab kaugsisselogimiseks sisselogimise.
Pärast tunneli seadistamist kohalikus arvutis peate käivitama VNC-kliendi ja looma ühenduse hostiga 127.0.0.1:5901 (localhost:5901), kasutades VNC-serverile juurdepääsuks eelnevalt määratud parooli. Nüüd saame VPS-i XFCE graafilise töölauakeskkonnaga turvaliselt suhelda krüpteeritud tunneli kaudu. Ekraanipildil töötab terminali emulaatoris tipputiliit, mis näitab virtuaalmasina vähest arvutusressursside tarbimist. Siis sõltub kõik kasutaja rakendustest.

Installige ja konfigureerige VNC-server Linux Seda saab teha praktiliselt igal VPS-il. See ei nõua kalleid ja ressursimahukaid konfiguratsioone videoadapteri emuleerimisega ega kommertstarkvara litsentside ostmist. Lisaks süsteemiteenuse valikule, mida me arutasime, on ka teisi: käivitamine deemonirežiimis (faili /etc/rc.local kaudu) süsteemi käivitamisel või nõudmisel inetd kaudu. Viimane on kasulik mitme kasutaja konfiguratsioonide loomiseks. Interneti-superserver käivitab VNC-serveri ja ühendab kliendi sellega ning VNC-server loob uue ekraani ja alustab seanssi. Graafiline kuvahaldur (nt ) ja pärast kliendi lahtiühendamist seanss suletakse ja kõik ekraaniga töötavad programmid lõpetatakse.
Allikas: www.habr.com
