Uno de los métodos más prácticos con los que contamos hoy en día para las tareas de soporte, gestión o control, es la posibilidad de conectarnos de forma remota al equipo cliente ya que esto minimiza los tiempos de espera y permite que tengamos acceso a toda la configuración y archivos desde cualquier lugar del mundo.
Una de las aplicaciones más útiles para esto son las conexiones por VNC, recordemos que VNC (Virtual Network Computing) es un protocolo servidor-cliente el cual permite a las cuentas de usuario conectarse y controlar remotamente un sistema, en otra ubicación, haciendo uso de los recursos proporcionados por la interfaz gráfica de usuario.
Dentro de las diversas opciones a nivel de VNC que tenemos para los diferentes sistemas operativos, tiger-vnc sobresale por su desempeño, versatilidad y seguridad a la hora de establecer conexiones.
TigerVNC proporciona los niveles de rendimiento necesarios para la ejecución de aplicaciones de vídeo y 3D, y se esfuerza por mantener una apariencia común y reutilizar componentes, hasta donde sea posible, a través de las diversas plataformas que admite. TigerVNC también proporciona extensiones para métodos avanzados de autenticación y encriptación TLS para la seguridad de los datos a transferir.
1. Instalación y configuración de VNC Server en CentOS 7
Tigervnc-server es un programa que ejecuta un servidor Xvnc el cual inicia sesiones paralelas de Gnome u otro entorno de escritorio en el escritorio de VNC. Una sesión de usuario VNC iniciada podrá ser accedida por el mismo usuario desde varios clientes VNC.
Para instalar el servidor TigerVNC en CentOS 7, abriremos una sesión de terminal y ejecutaremos el siguiente comando:
sudo yum install tigervnc-server
Al ejecutar esta línea debemos aceptar la descarga e instalación de los paquetes de tiger-vnc:
Una vez instalado veremos lo siguiente:
Después de que la instalación ha sido correcta, vamos a iniciar sesión con el usuario que deseamos ejecutar en el programa VNC y ejecutaremos el siguiente comando en la terminal para configurar una contraseña para el servidor VNC: su – (Usuario) # (Si deseamos configurar el servidor VNC para que se ejecute bajo este usuario directamente desde la terminal CLI sin cambiar usuarios de GUI)
vncpasswd(Aquí debemos ingresar y confirmar la contraseña)
2. Configuración de VNC Linux
Ahora será necesario agregar un archivo de configuración del servicio VNC para el usuario a través de un archivo de configuración del daemon ubicado en el árbol de directorios systemd.
Para copiar el archivo de plantilla de VNC, será necesario el siguiente comando con privilegios de root:
sudo cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
El siguiente paso consiste en editar el archivo de configuración de plantilla de VNC el cual se encuentra en el directorio /etc/systemd/system/ y para ello usaremos el editor deseado:
nano /etc/systemd/system/vncserver@\:1.service
Al ejecutar esta línea veremos lo siguiente:
Allí será necesario cambiar la línea USER por el nombre de nuestro usuario y estas serán las líneas
[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 (Usuario) -c "/usr/bin/vncserver %i -geometry 1280x1024" PIDFile=/home/(Usuario)/.vnc/%H%i.pid ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :' [Install] WantedBy=multi-user.target
Guardamos los cambios usando la combinación de teclas Carl + O y salimos del editor usando Carl + X. Ahora debemos reiniciar el servicio para aplicar los cambios que hemos ejecutado y para ello usaremos las siguientes líneas en su orden:
systemctl daemon-reload systemctl start vncserver@:1 systemctl status vncserver@:1 systemctl enable vncserver@:1
Allí podemos ver que su estado es Activo.
ss -tulpn| grep vnc
Debido a que sólo se ha iniciado una instancia del servidor VNC, el primer puerto abierto es 5901 / TCP.
En caso de que sólo se inicie una instancia del servidor VNC, sólo debe abrir el primer puerto VNC asignado: 5901/TCP ejecutando los siguientes comandos en su orden:
firewall-cmd --add-port=5901/tcp firewall-cmd --add-port=5901/tcp –permanent
3. Conexión al equipo CentOS 7 usando el cliente VNC
Al tratarse de un protocolo independiente de la plataforma, las conexiones VNC de interfaz gráfica de usuario remotas pueden ser usadas para ser usadas desde casi cualquier sistema operativo con una GUI y un cliente VNC especializado.
Uno de los clientes VNC mas en los sistemas operativos basados en Microsoft, compatible con el servidor Linux TigerVNC, es RealVNC VNC el cual podemos descargar de forma gratuita en el siguiente enlace:
Para conectarnos de forma remota al escritorio de CentOS 7 desde un sistema operativo de Microsoft, en este caso Windows 10, a través del protocolo VNC, ejecutaremos el programa VNC Viewer, ingresaremos la dirección IP y el número de puerto del servidor CentOS VNC de la siguiente forma:
Direccion_IP:5901
Pulsamos Enter y será desplegado el siguiente mensaje de seguridad:
Activamos la casilla No volver a mostrar esta advertencia en este equipo y pulsamos en Continuar. A continuación será necesario agregar la respectiva contraseña de acceso que hemos configurado:
Pulsamos en Aceptar y de esta forma nos conectaremos de forma remota al servidor CentOS 7:
4. Configuración de múltiples sesiones de VNC en CentOS 7
En caso de ser necesario ejecutar una nueva sesión VNC paralela bajo el mismo usuario, abriremos una consola de terminal en CentOS 7, iniciamos sesión con el usuario que desea iniciar la nueva sesión de VNC y ejecutamos el siguiente comando:
Vncserver
Las nuevas sesiones de VNC abrirán los siguientes puertos VNC disponibles. Para ver los puertos disponibles para esta nueva sesión ejecutaremos lo siguiente:
ss -tlpn| grep Xvnc
Ahora desde el cliente VNC podremos usar alguno de estos puertos. Para detener las instancias del servidor VNC iniciadas con los permisos de usuario registrados, ejecutaremos los siguientes comandos:
su - usuario killall XvncHemos visto cómo podemos conectarnos de forma remota a CentOS 7 usando VNC con sus opciones de acceso y seguridad.