Cómo instalar el servidor VNC en Rocky Linux
La computación virtual en red (VNC) es un protocolo de compartición de escritorio que te permite controlar un ordenador de forma remota mediante el software cliente VNC. VNC funciona en entornos GUI (Graphical User Interface), transmite los movimientos de tu ratón y la entrada del teclado a través de la red utilizando el protocolo Remote Frame Buffer (RFB).
Comúnmente, VNC se utiliza para que los técnicos controlen los escritorios de los clientes o para que lo utilice alguien que necesita acceder a su escritorio en la oficina desde su casa. El VNC se puede utilizar de forma segura a través de la red VPN o utilizando la conexión por túnel SSH.
En este tutorial, configurarás el servidor VNC con TigerVNC en un servidor Rocky Linux. También aprenderás a conectarte de forma segura al Servidor VNC a través de un túnel SSH.
Requisitos previos
Para completar este tutorial, necesitarás un servidor con los siguientes requisitos
- Un servidor Rocky Linux nuevo – Puedes utilizar Rocky Linux v8.5 o v9.
- Un usuario no root con privilegios de root o administrador.
- Un firewalld habilitado en el servidor.
Instalación del entorno de escritorio
La instalación por defecto del servidor Rocky Linux viene sin GUI. Para configurar VNC Server, tendrás que instalar el Entorno de Escritorio en tu servidor Rocky Linux. Para el Servidor VNC, se recomienda utilizar el Entorno de Escritorio ligero, que te proporciona más rendimiento y velocidad.
En Rocky Linux, hay varios grupos de paquetes que proporcionan un Entorno de Escritorio. En este ejemplo, instalarás y configurarás el XFCE como Entorno de Escritorio para el Servidor VNC en el sistema Rocky Linux.
Antes de empezar a instalar los paquetes, ejecuta el siguiente comando dnf para actualizar los paquetes instalados a la última versión.
sudo dnf update
Ahora, añade el repositorio EPEL a tu sistema Rocky Linux mediante el siguiente comando dnf. Introduce Y para añadir el repositorio EPEL y pulsa ENTER.
sudo dnf epel-release
A continuación, instalarás el Entorno de Escritorio XFCE mediante el paquete de grupo«Xfce» proporcionado por el repositorio Rocky Linux. Además, instalarás el paquete de grupo «base-x» que contiene paquetes Xorg.
sudo dnf groupinstall "Xfce" "base-x"
Introduce Y cuando se te pida que confirmes la instalación y pulsa ENTER para continuar.
Una vez instalados el escritorio XFCE y base-x, habilita el entorno gráfico mediante el siguiente comando systemctl. Esto habilitará el entorno gráfico cuando se inicie el servidor.
sudo systemctl set-default graphical
Añadir un usuario VNC
Por seguridad, se recomienda utilizar un usuario no root para ejecutar el servidor VNC. Debes crear usuarios dedicados que ejecuten el servidor VNC. Si el usuario necesita los privilegios de sudo, puedes añadir tu usuario al grupo «wheel».
Ejecuta el siguiente comando para crear un nuevo usuario. A continuación, configura la contraseña del usuario. En este ejemplo, crearás un nuevo usuario«jane«, y asegúrate de utilizar una contraseña fuerte.
sudo useradd -m -s /bin/bash jane
sudo passwd jane
Una vez creado el nuevo usuario, ejecuta el siguiente comando para añadirlo al grupo«wheel«. Esto permite al nuevo usuario ejecutar el comando sudo y obtener privilegios de root.
sudo usermod -aG wheel jane
Con el Entorno de Escritorio XFCE instalado y el usuario VNC creado, a continuación iniciarás la instalación y configuración de TigerVNC.
Instalar el servidor TigerVNC
Para configurar un servidor VNC, debes instalar el software del servidor VNC. En este ejemplo, instalarás y utilizarás «TigerVNC Server», que está disponible por defecto en el repositorio de Rocky Linux.
También generarás las configuraciones del servidor VNC, establecerás el entorno de escritorio por defecto y añadirás el usuario VNC a la lista de usuarios de TigerVNC Server.
Ejecuta el comando dnf que aparece a continuación para instalar el paquete «tigervnc-server» en el sistema Rocky Linux. Introduce Y cuando se te pida que confirmes la instalación y pulsa ENTER para continuar.
sudo dnf install tigervnc-server
Una vez completada la instalación, lo siguiente será configurar el servidor VNC para cada usuario (usuarios VNC).
Inicia la sesión de tu usuario con el siguiente comando.
su - jane
Ahora, ejecuta el siguiente comando para inicializar el Servidor VNC para el usuario«jane«. Durante la inicialización del servidor VNC, se te pedirá que crees la contraseña para tu servidor VNC, así que introduce la contraseña fuerte y repite. Y para la«contraseña de sólo visualización«, introduce«n» para desactivarla.
vncserver
Este comando generará las configuraciones del servidor VNC que se ubicarán en«~/.vnc«. Las configuraciones del servidor VNC incluyen el script de xstartup, la configuración del entorno de escritorio y los registros del proceso VNC.
Además, puedes ver que el nuevo proceso VNC se está ejecutando con un nombre como«HOSTNAME:N«, que significa el nombre de host del sistema y el escritorio/pantalla :N en número.
Comprueba la lista de procesos VNC mediante el comando vncserver que aparece a continuación. Deberías ver que se está ejecutando el proceso VNC de la pantalla «:1«.
vncserver -list
Ahora, debes terminar el proceso VNC actual «:1″ para configurar el entorno de escritorio XFCE. Ejecuta el siguiente comando vncserver para detener el proceso VNC de la pantalla «:1″.
vncserver -kill :1
Una vez terminado el proceso VNC, deberías obtener un mensaje de salida como«Killing Xvnc process ID PID«.
Ahora que has generado la configuración del servidor VNC, abre el archivo«~/.vnc/config» con el editor nano.
nano ~/.vnc/config
Cambia la configuración por defecto como se indica a continuación. En este ejemplo, utilizarás el XFCE como Entorno de Escritorio por defecto para el servidor VNC, y cuando el usuario se conecte al Servidor VNC, la pantalla por defecto será«1920×1200«. El servidor VNC sólo se ejecutará en localhost y habilitará los escritorios compartidos.
session=xfce
geometry=1920x1200
localhost
alwaysshared
Guarda el archivo y sal del editor cuando hayas terminado.
A continuación, pulsa ‘Ctrl+d’ y vuelve a la sesión del usuario root. A continuación, abre el archivo‘/etc/tigervnc/vncserver.users’ con el editor nano.
sudo nano /etc/tigervnc/vncserver.users
Añade el número de pantalla y el usuario VNC como en la siguiente configuración. En este ejemplo, la pantalla «:1» se utilizará para ejecutar el servidor VNC para el usuario«jane«.
:1=jane
Guarda el archivo y sal del editor cuando hayas terminado.
Con las configuraciones del servidor VNC generadas, el Entorno de Escritorio por defecto configurado y el usuario VNC añadido a la lista de usuarios de TigerVNC, ya estás preparado para iniciar el servidor TigerVNC y ejecutarlo como servicio.
Iniciar el servidor VNC
El servidor TigerVNC proporciona archivos de servicio systemd dinámicos, lo que significa que cada pantalla o usuario tiene su servicio systemd. En este ejemplo, el usuario«jane» está ejecutando el servidor VNC con la pantalla «:1«, por lo que el archivo de servicio sería«vncserver@:1.service».
Ahora, cada vez que añadas un nuevo usuario VNC, deberás recargar el gestor systemd para aplicar los nuevos cambios. Puedes recargar el gestor systemd mediante el comando systemctl como se indica a continuación.
sudo systemctl daemon-reload
A continuación, inicia y habilita el«vncserver@:1.service» para la pantalla «:1» mediante el siguiente comando systemctl. Esto permitirá que el proceso del servidor VNC de la pantalla «:1» se ejecute automáticamente en el arranque.
sudo systemctl start vncserver@:1.service
sudo systemctl enable vncserver@:1.service
Por último, verifica el «vncserver@:1.service» para asegurarte de que el servicio se está ejecutando.
sudo systemctl status vncserver@:1.service
Si el «vncserver@:1.service» se está ejecutando, deberías ver una salida similar a la siguiente captura de pantalla.
Llegados a este punto, has completado la instalación y configuración del servidor VNC a través del «Tiger-VNC» en el servidor Rocky Linux. También has configurado el XFCE como Entorno de Escritorio por defecto para el servidor VNC. A continuación, configurarás el Firewalld para asegurar el servidor VNC.
Configurar el Firewalld
En el servidor Rocky Linux por defecto, el firewalld está instalado y habilitado. Añadirás un nuevo servicio «vnc-server» al firewalld.
Añade el servicio «vnc-server» al firewalld mediante el comando firewall-cmd que aparece a continuación. A continuación, recarga las reglas del firewalld para aplicar los nuevos cambios.
sudo firewall-cmd --add-service=vnc-server --permanent
sudo firewall-cmd --reload
Por último, verifica la lista de reglas de firewalld mediante el comando que aparece a continuación. Si ves el servicio«vnc-server» en la lista de servicios, entonces la regla de servicio está añadida y habilitada.
sudo firewall-cmd --list-services
Conéctate al servidor VNC a través de un túnel SSH seguro
Para iniciar el túnel SSH, ejecuta el siguiente comando ssh. En este ejemplo, crearás un nuevo túnel hacia la dirección IP del servidor VNC«192.168.5.100» con el usuario«jane» hacia el localhost en el puerto TCP«5901«, que es el mismo puerto del servidor VNC.
ssh -L 5901:127.0.0.1:5901 -N -f -l jane 192.168.5.100
Introduce la contraseña de tu usuario. Una vez conectado, puedes conectarte al servidor VNC a través de localhost con el puerto 5901.
Abre tu visor VNC en tu ordenador local. En este ejemplo, utilizaremos el «Visor TigerVNC».
En la dirección «Servidor VNC», introduce el host como localhost o 127.0.0.1 con el puerto 5901. A continuación, haz clic en«Conectar» para continuar.
Ahora, introduce la contraseña del servidor VNC para tu usuario y haz clic en «Aceptar«.
Si la conexión se realiza con éxito, verás el escritorio XFCE en tu pantalla, como se muestra en la siguiente captura.
También puedes abrir tu terminal y ejecutar el siguiente comando para verificar tu usuario.
id
whoami
sudo su
Conclusiones
En esta guía, has instalado el servidor VNC con TigerVNC en el servidor Rocky Linux. También has instalado y configurado el XFCE como Entorno de Escritorio por defecto para tu servidor VNC. Y, por último, has aprendido a conectarte al servidor VNC de forma segura mediante un túnel SSH.
Otra consideración para el servidor VNC es que puedes limitar las direcciones IP que pueden acceder al puerto del servidor VNC a través del Firewalld. Y también puedes asegurar la conexión mediante un servidor VPN local.