Com instal·lar i configurar el servidor VNC a CentOS 7


En aquesta guia explicarem com instal·lar i configurar VNC Remote Access a la darrera versió de CentOS 7 i RHEL 7 Desktop Edition mitjançant el programa tigervnc-server.

VNC (Virtual Network Computing) és un protocol servidor-client que permet als comptes d'usuari connectar-se i controlar de forma remota un sistema distant mitjançant els recursos proporcionats per la interfície gràfica d'usuari.

A diferència d'altres servidors VNC disponibles que es connecten directament a l'escriptori en temps d'execució, com ara VNC X o Vino, tigervnc-vncserver utilitza un mecanisme diferent que configura un escriptori virtual autònom per a cada usuari.

  1. Procediment d'instal·lació de CentOS 7
  2. Procediment d'instal·lació de RHEL 7

Pas 1: instal·leu i configureu VNC a CentOS 7

1. Tigervnc-server és un programa que executa un servidor Xvnc i inicia sessions paral·leles del Gnome o un altre entorn d'escriptori a l'escriptori VNC.

El mateix usuari pot accedir a una sessió d'usuari VNC iniciada des de diversos clients VNC. Per instal·lar el servidor TigerVNC a CentOS 7, obriu una sessió de terminal i emeteu l'ordre següent amb privilegis d'arrel.

$ sudo yum install tigervnc-server

2. Després d'haver instal·lat el programa, inicieu sessió amb l'usuari que voleu executar el programa VNC i emeteu l'ordre següent al terminal per configurar una contrasenya per al servidor VNC.

Tingueu en compte que la contrasenya ha de tenir almenys sis caràcters.

$ su - your_user  # If you want to configure VNC server to run under this user directly from CLI without switching users from GUI
$ vncpasswd

3. A continuació, afegiu un fitxer de configuració del servei VNC per al vostre usuari mitjançant un fitxer de configuració del dimoni situat a l'arbre de directoris systemd. Per copiar el fitxer de plantilla VNC, heu d'executar l'ordre següent amb privilegis de root.

Si el vostre usuari no té privilegis sudo, canvieu directament al compte root o executeu l'ordre des d'un compte amb privilegis root.

# cp /lib/systemd/system/[email   /etc/systemd/system/[email :1.service

4. Al següent pas, editeu el fitxer de configuració de la plantilla VNC copiat del directori /etc/systemd/system/ i substituïu els valors per reflectir el vostre usuari tal com es mostra a la mostra següent.

El valor d'1 després del signe @ representa el número de visualització (port 5900+pantalla). A més, per a cada servidor VNC iniciat, el port 5900 s'incrementarà en 1.

# vi /etc/systemd/system/[email \:1.service

Afegiu les línies següents al fitxer del fitxer [email :1.service.

[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=forking
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/sbin/runuser -l my_user -c "/usr/bin/vncserver %i -geometry 1280x1024"
PIDFile=/home/my_user/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

[Install]
WantedBy=multi-user.target

5. Després d'haver fet els canvis adequats al fitxer de servei VNC, torneu a carregar el programa d'inicialització del sistema systemd per recollir el nou fitxer de configuració vnc i iniciar el servidor TigerVNC.

A més, comproveu l'estat del servei VNC i activeu el dimoni VNC a tot el sistema emetent les ordres següents.

# systemctl daemon-reload
# systemctl start [email :1
# systemctl status [email :1
# systemctl enable [email :1

6. Per llistar els ports oberts en estat d'escolta propietat del servidor VNC, executeu l'ordre ss, que s'utilitza a CentOS 7 per mostrar els endolls de xarxa. Com que només heu iniciat una instància del servidor VNC, el primer port obert és 5901/TCP.

De nou, l'ordre ss s'ha d'executar amb privilegis d'arrel. En cas que inicieu altres instàncies de VNC en paral·lel per a usuaris diferents, el valor del port serà 5902 per a la segona, 5903 per a la tercera i així successivament. Els ports 6000+ s'utilitzen per permetre que les aplicacions X es connectin al servidor VNC.

# ss -tulpn| grep vnc

7. Per permetre que els clients VNC externs es connectin al servidor VNC a CentOS, heu d'assegurar-vos que els ports oberts VNC adequats puguin passar pel vostre tallafoc.

En cas que només s'iniciï una instància del servidor VNC, només cal que obriu el primer port VNC assignat: 5901/TCP emetent les ordres següents per aplicar la configuració del tallafoc en temps d'execució.

# firewall-cmd --add-port=5901/tcp
# firewall-cmd --add-port=5901/tcp --permanent

Pas 2: connexió a l'escriptori CentOS mitjançant el client VNC

8. En ser un protocol independent de la plataforma, les connexions VNC de la interfície gràfica d'usuari remota es poden realitzar des de gairebé qualsevol sistema operatiu amb una GUI i un client VNC especialitzat.

Un client VNC popular utilitzat en sistemes operatius basats en Microsoft, totalment compatible amb el servidor Linux TigerVNC, és RealVNC VNC Viewer.

Per connectar-vos de manera remota a CentOS Desktop des d'un sistema operatiu de Microsoft mitjançant el protocol VNC, obriu el programa VNC Viewer, afegiu l'adreça IP i el número de port del servidor CentOS VNC i premeu la tecla [Enter].

Un cop establerta la connexió VNC, s'hauria de mostrar a la pantalla un avís que digui que la connexió no està xifrada, tal com es mostra a les captures de pantalla següents.

9. Per evitar l'avís, premeu el botó Continuar, afegiu la configuració de la contrasenya per al servidor VNC al punt 2 i hauríeu d'estar connectat de manera remota a CentOS Desktop amb l'usuari configurat per executar la instància del servidor VNC.

10. En cas que aparegui un missatge d'autenticació nou a la pantalla i el vostre usuari no tingui privilegis d'arrel, només heu de prémer el botó Cancel·la per continuar amb l'escriptori CentOS, tal com es mostra a la captura de pantalla següent.

Tingueu en compte que la comunicació VNC establerta entre el servidor i el client i les dades intercanviades (excepte la contrasenya) s'executen per un canal sense xifrar. Per xifrar i assegurar la transferència de dades VPN, primer heu de configurar un túnel SSH segur i executar qualsevol trànsit VPN posterior al túnel SSH.

11. Per connectar-vos de forma remota a CentOS Desktop mitjançant el protocol VNC des d'un altre CentOS Desktop, primer assegureu-vos que el paquet vinagre estigui instal·lat al vostre sistema emetent l'ordre següent.

$ sudo yum install vinagre

12. Per obrir la utilitat Vinagre, aneu a Aplicacions -> Utilitats -> Visor d'escriptori remot com es mostra a la captura de pantalla següent.

13. Per connectar-vos de manera remota a un escriptori CentOS, premeu el botó Connectar, seleccioneu el protocol VNC de la llista i afegiu l'adreça IP i el port (5900+número de visualització) del servidor VNC remot. A més, proporcioneu la configuració de la contrasenya per a l'usuari de VNC tal com es mostra a les captures de pantalla següents.

14. Un altre client VNC popular per a plataformes basades en Linux és Remmina, és un client d'escriptori remot que s'utilitza especialment en distribucions basades en Debian que executen l'entorn d'escriptori GNOME.

Per instal·lar el client d'escriptori remot Remmina a les distribucions basades en Debian, emeteu l'ordre següent.

$ sudo apt-get install remmina

Pas 3: configureu diverses sessions VNC a CentOS 7

15. En cas que necessiteu executar una nova sessió VNC paral·lela amb el mateix usuari, obriu una consola de terminal, inicieu sessió amb l'usuari que voleu iniciar la nova sessió VNC i executeu l'ordre següent.

Quan inicieu el servidor per primera vegada, se us demanarà que proporcioneu una contrasenya nova per a aquesta sessió. Tanmateix, tingueu en compte que aquesta sessió s'executa amb els vostres permisos d'usuari connectat i independentment de la sessió iniciada del servidor VNC systemd.

$ vncserver

16. Les noves sessions VNC obriran els propers ports disponibles basats en VNC (en aquest exemple es mostra 5900+3). Per mostrar els ports oberts, executeu l'ordre ss sense privilegis de root, tal com s'il·lustra a l'extracte següent. Llistarà només les sessions VNC iniciades que deu el vostre usuari.

$ ss -tlpn| grep Xvnc

17. Ara, connecteu-vos de forma remota a CentOS Desktop mitjançant aquesta nova sessió VNC, proporcioneu la combinació IP:port (192.168.1.23:5903) al client VNC, tal com es mostra a la imatge següent.

Per aturar les instàncies del servidor VNC que s'inicien amb aquests permisos d'usuari registrat, emet l'ordre següent sense cap privilegi de root. Aquesta ordre destruirà totes les instàncies VNC iniciades que només són propietat de l'usuari que les ha indicat.

$ su - your_user
$ killall Xvnc

Això és tot! Ara podeu accedir al vostre sistema CentOS 7 i realitzar tasques administratives mitjançant la interfície gràfica d'usuari proporcionada pel sistema operatiu.