VNC înseamnă Virtual Network Computer. Serviciul este folosit pentru conectarea și accesarea de la distanță a altor computere. Aplicația despre care voi vorbi este multiplatformă, putând fi instalată atât pe Linux, dar și în Windows sau MacOS.
În acest articol voi prezenta instalarea aplicației tigervnc pe un sistem cu CentOS 7 pentru a putea fi accesat de la distanță de pe un alt calculator cu Linux (Arch, în cazul meu).
Instalarea serverului VNC
Instalarea aplicației tigervnc-server este foarte simplă:
sudo yum install tiger-vnc
Copiem fișierul de configurare:
sudo cp /lib/systemd/system/vncserver\@.service /etc/systemd/system/vncserver@:1.service
Edităm acest fișier cu vim sau nano; vom înlocui <USER> cu userul care se va conecta pe sistem (bineînțeles, contul trebuie să existe):
$ sudo vi /etc/systemd/system/vncserver\@\:1.service
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target[Service]
Type=forking
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c ‘/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :’
ExecStart=/usr/sbin/runuser -l <USER> -c “/usr/bin/vncserver %i”
PIDFile=/home/<USER>/.vnc/%H%i.pid
ExecStop=/bin/sh -c ‘/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :’[Install]
WantedBy=multi-user.target
Adăugarea VNC server în firewall
$ sudo firewall-cmd --zone=public --permanent --add-service=vnc-server
$ sudo firewall-cmd reload
Pe mașina unde am instalat tigervnc-server, sub userul pe care-l vom folosi când ne vom conecta remote, dăm următoarele comenzi:
$ vncserver ##aici vom defini parola pe care o vom folosi când ne vom conecta remote - alta decât cea a userului respectiv
$ sudo systemctl daemon-reload
$ sudo systemctl enable vncserver@:1.service ##activăm serviciul vnc să pornească automat la startul sistemului
$ sudo reboot
$ sudo systemctl status vncserver@:1.service ##verificăm ca serviciul să ruleze
În directorul home al utilizatorului se creează un director .vnc care conține fișierele de configurare. Ne interesează fișierul xstartup, care inițial arată așa:
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec /etc/X11/xinit/xinitrc
La conectarea remote, sunt redirecționat către mediul grafic Gnome shell (pe care-l detest), chiar dacă eu am instalat și KDE. Pentru a putea folosi remote KDE, edităm acest fișier astfel:
#!/bin/sh #unset SESSION_MANAGER #unset DBUS_SESSION_BUS_ADDRESS #exec /etc/X11/xinit/xinitrc [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources startkde &
La următoarea conectare vom intra în mediul KDE.
Instalarea clientului VNC
În mod normal, pe sistemul de pe care ne vom conecta la serverul VNC instalat mai sus, poate fi folosit orice client VNC. Eu prefer Vinagre, dar poate fi folosit clientul nativ tigervnc:
$ sudo yum install tigervnc
Clientul tigervnc poate fi lansat dând comanda:
$ vncviewer
Conectarea la serverul VNC se face accesând IP-ul (sau hostname-ul) său pe portul 5901 - IP_server_VNC:5901
Vom fi avertizați că avem o conexiune necriptată.
Conectarea cu Vinagre:
Serverul VNC poate fi configurat și pentru conectarea simultană a mai multor utilizatori, făcând pentru fiecare în parte câte un fișier și un serviciu vncserver@:xx.service
George a zis
Eu administrez mult prin VNC dar fac totul prin VPN ca sa evit atacurile.
Bobses a zis
Tot prin VPN și eu.
Malin a zis
Trebuia sa le spui sa nu foloseasca parola 123456 si sa-l treaca prin firewall cu un port custom pentru ca altfel or sa fie toata ziua tina bruteforceului 😀
Bobses a zis
Ei, asta e deja alt subiect... Dar ar trebui sa se știe că porturile default trebuie schimbate.