Neki korisnici iznajmljuju relativno jeftin VPS sa sustavom Windows za pokretanje usluga udaljene radne površine. Isto se može učiniti na Linuxu bez smještaja vlastitog hardvera u podatkovnom centru ili iznajmljivanja namjenskog poslužitelja. Neki ljudi trebaju poznato grafičko okruženje za testiranje i razvoj ili udaljenu radnu površinu sa širokim kanalom za rad s mobilnih uređaja. Postoji mnogo opcija za korištenje sustava virtualne mreže (VNC) temeljenog na protokolu Remote FrameBuffer (RFB). U ovom kratkom članku ćemo vam reći kako ga konfigurirati na virtualnom računalu s bilo kojim hipervizorom.
Oglašavanje:
Odabir VNC poslužitelja
VNC servis se može ugraditi u virtualizacijski sustav, a hipervizor će ga povezati s emuliranim uređajima i neće biti potrebna dodatna konfiguracija. Ova opcija uključuje značajne troškove i ne podržavaju je svi pružatelji - čak i u implementaciji koja zahtijeva manje resursa, kada se umjesto emulacije stvarnog grafičkog uređaja, pojednostavljena apstrakcija (framebuffer) prenosi na virtualni stroj. Ponekad je VNC poslužitelj vezan za pokrenuti X poslužitelj, ali ova je metoda prikladnija za pristup fizičkom stroju, a na virtualnom stvara niz tehničkih poteškoća. Najlakši način za instaliranje VNC poslužitelja je pomoću ugrađenog X poslužitelja. Ne zahtijeva fizičke uređaje (video adapter, tipkovnicu i miš) niti njihovu emulaciju pomoću hipervizora, te je stoga prikladan za bilo koju vrstu VPS-a.
Instalacija i konfiguracija
Trebat će nam virtualni stroj s Ubuntu Serverom 18.04 LTS u zadanoj konfiguraciji. Postoji nekoliko VNC poslužitelja u standardnim spremištima ove distribucije:
Instalacija desktop okruženja sa svim ovisnostima vrši se sljedećom naredbom:
sudo apt-get install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils
Zatim trebate instalirati VNC poslužitelj:
sudo apt-get install tigervnc-standalone-server tigervnc-common
Pokretanje kao superkorisnik je loša ideja. Izradite korisnika i grupu:
sudo adduser vnc
Dodajmo korisnika u grupu sudo kako bi mogao obavljati poslove vezane uz administraciju. Ako nema takve potrebe, možete preskočiti ovaj korak:
sudo gpasswd -a vnc sudo
Sljedeći korak je pokretanje VNC poslužitelja s vnc korisničkim povlasticama za stvaranje sigurne lozinke i konfiguracijskih datoteka u direktoriju ~/.vnc/. Duljina lozinke može biti od 6 do 8 znakova (suvišni znakovi se odsijecaju). Ako je potrebno, postavlja se i lozinka samo za gledanje, tj. bez pristupa tipkovnici i mišu. Sljedeće naredbe se izvršavaju kao vnc korisnik:
su - vnc
vncserver -localhost no
Prema zadanim postavkama, RFB protokol koristi raspon TCP porta od 5900 do 5906 – to je tzv. portovi za prikaz, od kojih svaki odgovara ekranu X poslužitelja. U ovom slučaju, priključci su povezani sa zaslonima od :0 do :6. Instanca VNC poslužitelja koju smo pokrenuli sluša port 5901 (zaslon: 1). Druge instance mogu raditi na drugim priključcima sa ekranima :2, :3, itd. Prije daljnje konfiguracije morate zaustaviti poslužitelj:
vncserver -kill :1
Naredba bi trebala prikazati nešto poput ovoga: "Killing Xtigervnc ID ID 18105... uspjeh!"
Kada se TigerVNC pokrene, pokreće ~/.vnc/xstartup skriptu za konfiguraciju konfiguracijskih postavki. Kreirajmo vlastitu skriptu, prvo spremimo sigurnosnu kopiju postojeće, ako postoji:
mv ~/.vnc/xstartup ~/.vnc/xstartup.b
nano ~/.vnc/xstartup
Sesiju XFCE desktop okruženja pokreće sljedeća xstartup skripta:
#!/bin/bash
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
xrdb $HOME/.Xresources
exec /usr/bin/startxfce4 &
Naredba xrdb potrebna je VNC-u za čitanje datoteke .Xresources u početnom direktoriju. Tamo korisnik može definirati razne postavke grafičke radne površine: prikaz fonta, boje terminala, teme kursora itd. Skripta mora biti izvršna:
chmod 755 ~/.vnc/xstartup
Ovo dovršava postavljanje VNC poslužitelja. Ako ga pokrenete naredbom vncserver -localhost no (kao vnc korisnik), možete se spojiti s prethodno navedenom lozinkom i vidjeti sljedeću sliku:
Pokretanje usluge preko systemd
Ručno pokretanje VNC poslužitelja nije prikladno za borbenu upotrebu, stoga ćemo konfigurirati uslugu sustava. Naredbe se izvršavaju kao root (koristimo sudo). Prvo, kreirajmo novu jediničnu datoteku za naš poslužitelj:
sudo nano /etc/systemd/system/[email protected]
Simbol @ u nazivu omogućuje vam prosljeđivanje argumenta za konfiguriranje usluge. U našem slučaju, navodi VNC port za prikaz. Datoteka jedinice sastoji se od nekoliko odjeljaka:
[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
Zatim trebate obavijestiti systemd o novoj datoteci i aktivirati je:
sudo systemctl daemon-reload
sudo systemctl enable [email protected]
Broj 1 u nazivu označava broj zaslona.
Zaustavite VNC poslužitelj, pokrenite ga kao servis i provjerite status:
# от имени пользователя vnc
vncserver -kill :1
# с привилегиями суперпользователя
sudo systemctl start vncserver@1
sudo systemctl status vncserver@1
Ako usluga radi, trebali bismo dobiti nešto ovako.
Veza sa radnom površinom
Naša konfiguracija ne koristi enkripciju, tako da napadači mogu presresti mrežne pakete. Osim toga, u VNC poslužiteljima prilično često
sudo netstat -ap |more
U Linuxu, FreeBSD-u, OS X-u i drugim operativnim sustavima sličnim UNIX-u, tunel s klijentskog računala se pravi pomoću uslužnog programa ssh (sshd mora biti pokrenut na VNC poslužitelju):
ssh -L 5901:127.0.0.1:5901 -C -N -l vnc vnc_server_ip
Opcija -L povezuje port 5901 udaljene veze s portom 5901 na lokalnom hostu. Opcija -C omogućuje kompresiju, a opcija -N govori ssh-u da ne izvršava udaljenu naredbu. Opcija -l navodi prijavu za udaljenu prijavu.
Nakon postavljanja tunela na lokalnom računalu, potrebno je pokrenuti VNC klijent i uspostaviti vezu na host 127.0.0.1:5901 (localhost:5901), koristeći prethodno specificiranu lozinku za pristup VNC serveru. Sada možemo sigurno komunicirati putem šifriranog tunela s XFCE okruženjem grafičke radne površine na VPS-u. Na snimci zaslona gornji uslužni program radi u emulatoru terminala kako bi pokazao malu potrošnju računalnih resursa virtualnog stroja. Tada će sve ovisiti o korisničkim aplikacijama.
Možete instalirati i konfigurirati VNC poslužitelj u Linuxu na gotovo svakom VPS-u. Ovo ne zahtijeva skupe i resursno zahtjevne konfiguracije s emulacijom video adaptera ili kupnju komercijalnih softverskih licenci. Uz opciju usluge sustava koju smo razmotrili, postoje i druge: pokretanje u daemon modu (preko /etc/rc.local) kada se sustav diže ili na zahtjev putem inetd-a. Potonji je zanimljiv za stvaranje višekorisničkih konfiguracija. Internet Superserver će pokrenuti VNC server i spojiti klijenta na njega, a VNC server će kreirati novi ekran i pokrenuti sesiju. Za autentifikaciju unutar njega možete koristiti grafički upravitelj prikaza (na primjer,
Izvor: www.habr.com