VPS na Linuxu sa grafičkim sučeljem: pokretanje VNC servera na Ubuntu 18.04

VPS na Linuxu sa grafičkim sučeljem: pokretanje VNC servera na Ubuntu 18.04
Neki korisnici iznajmljuju relativno jeftin VPS sa Windowsom 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 servera. Nekim ljudima je potrebno poznato grafičko okruženje za testiranje i razvoj, ili udaljena radna površina sa širokim kanalom za rad sa mobilnih uređaja. Postoji mnogo opcija za korišćenje sistema virtuelnog mrežnog računarstva (VNC) zasnovanog na protokolu Remote FrameBuffer (RFB). U ovom kratkom članku ćemo vam reći kako ga konfigurirati na virtualnoj mašini s bilo kojim hipervizorom.

Sadržaj:

Odabir VNC servera
Instalacija i konfiguracija
Pokretanje usluge putem systemd-a
Desktop Connection

Odabir VNC servera

VNC servis se može ugraditi u sistem virtuelizacije, a hipervizor će ga povezati sa emuliranim uređajima i neće biti potrebna dodatna konfiguracija. Ova opcija uključuje značajne troškove i ne podržavaju je svi provajderi - čak i u implementaciji sa manje resursima, kada se umjesto emulacije stvarnog grafičkog uređaja, pojednostavljena apstrakcija (framebuffer) prenosi na virtuelnu mašinu. Ponekad je VNC server vezan za X server koji radi, ali ova metoda je pogodnija za pristup fizičkoj mašini, a na virtuelnoj stvara niz tehničkih poteškoća. Najlakši način da instalirate VNC server je sa ugrađenim X serverom. Ne zahtijeva fizičke uređaje (video adapter, tastaturu i miš) niti njihovu emulaciju pomoću hipervizora, te je stoga pogodan za bilo koju vrstu VPS-a.

Instalacija i konfiguracija

Trebaće nam virtuelna mašina sa Ubuntu serverom 18.04 LTS u podrazumevanoj konfiguraciji. Postoji nekoliko VNC servera u standardnim repozitorijumima ove distribucije: TightVNC, TigerVNC, x11vnc i drugi. Odlučili smo se na TigerVNC - trenutni fork TightVNC-a, koji nije podržan od strane programera. Postavljanje drugih servera se vrši na sličan način. Također morate odabrati desktop okruženje: optimalna opcija, po našem mišljenju, bila bi XFCE zbog relativno niskih zahtjeva za računarskim resursima. Oni koji žele mogu instalirati još jedan DE ili WM: sve zavisi od ličnih preferencija, ali izbor softvera direktno utiče na potrebu za RAM-om i računarskim jezgrama.

VPS na Linuxu sa grafičkim sučeljem: pokretanje VNC servera na Ubuntu 18.04

Instalacija desktop okruženja sa svim zavisnostima se vrši sljedećom naredbom:

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

Zatim morate instalirati VNC server:

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

Pokretanje kao superkorisnik je loša ideja. Kreirajte korisnika i grupu:

sudo adduser vnc

VPS na Linuxu sa grafičkim sučeljem: pokretanje VNC servera na Ubuntu 18.04

Dodajmo korisnika u sudo grupu kako bi mogao obavljati zadatke vezane za administraciju. Ako nema takve potrebe, možete preskočiti ovaj korak:

sudo gpasswd -a vnc sudo

Sljedeći korak je pokretanje VNC servera s vnc korisničkim privilegijama kako biste kreirali sigurnu lozinku i konfiguracijske datoteke u ~/.vnc/ direktoriju. Dužina lozinke može biti od 6 do 8 znakova (dodatni znakovi su odsječeni). Po potrebi se postavlja i lozinka samo za gledanje, tj. bez pristupa tastaturi i mišu. Sljedeće naredbe se izvršavaju kao vnc korisnik:

su - vnc
vncserver -localhost no

VPS na Linuxu sa grafičkim sučeljem: pokretanje VNC servera na Ubuntu 18.04
Standardno, RFB protokol koristi raspon TCP portova od 5900 do 5906 - to je tzv. portovi za prikaz, od kojih svaki odgovara ekranu X servera. U ovom slučaju, portovi su povezani sa ekranima od :0 do :6. Instanca VNC servera koju smo pokrenuli sluša port 5901 (ekran: 1). Druge instance mogu raditi na drugim portovima sa ekranima :2, :3, itd. Prije daljnje konfiguracije, morate zaustaviti server:

vncserver -kill :1

Naredba bi trebala prikazati nešto poput ovoga: “Killing Xtigervnc proces ID 18105... uspjeh!”

Kada se TigerVNC pokrene, pokreće skriptu ~/.vnc/xstartup da konfiguriše postavke konfiguracije. Kreirajmo vlastitu skriptu, prvo spremimo sigurnosnu kopiju postojeće, ako postoji:

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

XFCE sesiju 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 &

Komanda xrdb je potrebna da VNC pročita datoteku .Xresources u matičnom direktoriju. Tamo korisnik može definirati različite grafičke postavke radne površine: renderiranje fonta, boje terminala, teme kursora itd. Skripta mora biti izvršna:

chmod 755 ~/.vnc/xstartup

Ovim je završeno podešavanje VNC servera. Ako ga pokrenete naredbom vncserver -localhost no (kao vnc korisnik), možete se povezati s prethodno navedenom lozinkom i vidjeti sljedeću sliku:

VPS na Linuxu sa grafičkim sučeljem: pokretanje VNC servera na Ubuntu 18.04

Pokretanje usluge putem systemd-a

Ručno pokretanje VNC servera nije prikladno za borbenu upotrebu, pa ćemo konfigurirati sistemsku uslugu. Komande se izvršavaju kao root (koristimo sudo). Prvo, napravimo novu jediničnu datoteku za naš server:

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

Simbol @ u imenu vam omogućava da proslijedite argument za konfiguraciju usluge. U našem slučaju, specificira VNC port za prikaz. Datoteka jedinice sastoji se od nekoliko sekcija:

[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 morate obavijestiti systemd o novom fajlu i aktivirati ga:

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

Broj 1 u imenu označava broj ekrana.

Zaustavite VNC server, pokrenite ga kao uslugu i provjerite status:

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

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

Ako je usluga pokrenuta, trebali bismo dobiti ovako nešto.

VPS na Linuxu sa grafičkim sučeljem: pokretanje VNC servera na Ubuntu 18.04

Desktop Connection

Naša konfiguracija ne koristi enkripciju, tako da napadači mogu presresti mrežne pakete. Osim toga, na VNC serverima prilično često pronaći ranjivosti, tako da ih ne biste trebali otvarati za pristup s interneta. Da biste se bezbedno povezali na vašem lokalnom računaru, potrebno je da spakujete saobraćaj u SSH tunel, a zatim da konfigurišete VNC klijent. Na Windows-u možete koristiti grafički SSH klijent (na primjer, PuTTY). Radi sigurnosti, TigerVNC na serveru sluša samo localhost i nije direktno dostupan sa javnih mreža:


sudo netstat -ap |more

VPS na Linuxu sa grafičkim sučeljem: pokretanje VNC servera na Ubuntu 18.04
U Linuxu, FreeBSD, OS X i drugim OS-ovima sličnim UNIX-u, tunel od klijentskog računara se pravi pomoću ssh uslužnog programa (sshd mora biti pokrenut na VNC serveru):

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

Opcija -L povezuje port 5901 udaljene veze sa portom 5901 na lokalnom hostu. Opcija -C omogućava kompresiju, a -N opcija govori ssh-u da ne izvršava udaljenu komandu. Opcija -l specificira prijavu za udaljenu prijavu.

Nakon podešavanja tunela na lokalnom računaru, potrebno je da pokrenete VNC klijent i uspostavite vezu sa hostom 127.0.0.1:5901 (localhost:5901), koristeći prethodno navedenu lozinku za pristup VNC serveru. Sada možemo bezbedno komunicirati preko šifrovanog tunela sa XFCE grafičkim desktop okruženjem na VPS-u. Na snimku ekrana, gornji uslužni program radi u emulatoru terminala kako bi pokazao nisku potrošnju računarskih resursa virtuelne mašine. Tada će sve ovisiti o korisničkim aplikacijama.

VPS na Linuxu sa grafičkim sučeljem: pokretanje VNC servera na Ubuntu 18.04
Možete instalirati i konfigurirati VNC server u Linuxu na gotovo svakom VPS-u. Ovo ne zahtijeva skupe i resursno intenzivne konfiguracije sa emulacijom video adaptera ili kupovinu komercijalnih softverskih licenci. Pored opcije sistemske usluge koju smo razmatrali, postoje i druge: pokretanje u demonskom režimu (preko /etc/rc.local) kada se sistem pokrene ili na zahtev preko inetd-a. Potonji je zanimljiv za kreiranje višekorisničkih konfiguracija. Internet superserver će pokrenuti VNC server i povezati klijenta sa njim, a VNC server će kreirati novi ekran i započeti sesiju. Za autentifikaciju unutar njega možete koristiti grafički upravitelj prikaza (na primjer, LightDM), a nakon isključivanja klijenta, sesija će biti zatvorena i svi programi koji rade sa ekranom će biti prekinuti.

VPS na Linuxu sa grafičkim sučeljem: pokretanje VNC servera na Ubuntu 18.04

izvor: www.habr.com

Dodajte komentar