VPS en Linux con una interfaz gráfica: iniciar un servidor VNC en Ubuntu 18.04

VPS en Linux con una interfaz gráfica: iniciar un servidor VNC en Ubuntu 18.04
Algunos usuarios alquilan VPS relativamente económicos con Windows para iniciar el servicio Escritorio remoto. Lo mismo se puede hacer en Linux Sin necesidad de alojar hardware propio en un centro de datos ni alquilar un servidor dedicado. Otros requieren un entorno gráfico familiar para pruebas y desarrollo, o un escritorio remoto con conexión de banda ancha para trabajar desde dispositivos móviles. Existen numerosas aplicaciones para la computación de red virtual (VNC) basada en el protocolo Remote FrameBuffer (RFB). En este breve artículo, explicaremos cómo configurarla en una máquina virtual con cualquier hipervisor.

Tabla de contenido:

Seleccionar un servidor VNC
Instalacion y configuracion
Iniciar un servicio a través de systemd
Conexión de escritorio

Seleccionar un servidor VNC

El servicio VNC se puede integrar en el sistema de virtualización y el hipervisor lo conectará con los dispositivos emulados y no será necesaria ninguna configuración adicional. Esta opción implica una sobrecarga significativa y no es compatible con todos los proveedores, incluso en una implementación que requiere menos recursos, cuando en lugar de emular un dispositivo gráfico real, se transfiere una abstracción simplificada (framebuffer) a la máquina virtual. A veces, un servidor VNC está vinculado a un servidor X en ejecución, pero este método es más adecuado para acceder a una máquina física y, en una virtual, crea una serie de dificultades técnicas. La forma más sencilla de instalar un servidor VNC es con un servidor X integrado. No requiere dispositivos físicos (adaptador de vídeo, teclado y ratón) ni su emulación mediante hipervisor, por lo que es apto para cualquier tipo de VPS.

Instalacion y configuracion

Necesitaremos una máquina virtual con Ubuntu Servidor 18.04 LTS en su configuración predeterminada. Los repositorios estándar de esta distribución incluyen varios servidores VNC: TightVNC, TigerVNC, x11vnc y otros. Nos decidimos por TigerVNC, una bifurcación actual de TightVNC, que no cuenta con el soporte del desarrollador. La configuración de otros servidores se realiza de forma similar. También es necesario elegir un entorno de escritorio: la mejor opción, en nuestra opinión, sería XFCE debido a los requisitos relativamente bajos de recursos informáticos. Quien lo desee puede instalar otro DE o WM: todo depende de las preferencias personales, pero la elección del software afecta directamente la necesidad de RAM y núcleos informáticos.

VPS en Linux con una interfaz gráfica: iniciar un servidor VNC en Ubuntu 18.04

La instalación del entorno de escritorio con todas las dependencias se realiza con el siguiente comando:

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

A continuación necesitas instalar el servidor VNC:

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

Ejecutarlo como superusuario es una mala idea. Cree un usuario y un grupo:

sudo adduser vnc

VPS en Linux con una interfaz gráfica: iniciar un servidor VNC en Ubuntu 18.04

Agreguemos el usuario al grupo sudo para que pueda realizar tareas relacionadas con la administración. Si no es necesario, puedes omitir este paso:

sudo gpasswd -a vnc sudo

El siguiente paso es ejecutar el servidor VNC con privilegios de usuario vnc para crear una contraseña segura y archivos de configuración en el directorio ~/.vnc/. La longitud de la contraseña puede ser de 6 a 8 caracteres (los caracteres adicionales se cortan). Si es necesario, también se establece una contraseña para visualización únicamente, es decir. sin acceso al teclado y al mouse. Los siguientes comandos se ejecutan como usuario vnc:

su - vnc
vncserver -localhost no

VPS en Linux con una interfaz gráfica: iniciar un servidor VNC en Ubuntu 18.04
De forma predeterminada, el protocolo RFB utiliza el rango de puertos TCP de 5900 a 5906; este es el llamado. puertos de visualización, cada uno correspondiente a una pantalla del servidor X. En este caso, los puertos están asociados a las pantallas de :0 a :6. La instancia del servidor VNC que lanzamos escucha el puerto 5901 (pantalla: 1). Otras instancias pueden funcionar en otros puertos con pantallas :2, :3, etc. Antes de realizar más configuraciones, debe detener el servidor:

vncserver -kill :1

El comando debería mostrar algo como esto: "Eliminación del proceso Xtigervnc ID 18105... ¡éxito!"

Cuando se inicia TigerVNC, ejecuta el script ~/.vnc/xstartup para configurar los ajustes de configuración. Creemos nuestro propio script, primero guardando una copia de seguridad del existente, si existe:

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

La sesión del entorno de escritorio XFCE se inicia mediante el siguiente script xstartup:

#!/bin/bash
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
xrdb $HOME/.Xresources
exec /usr/bin/startxfce4 &

El comando xrdb es necesario para que VNC lea el archivo .Xresources en el directorio de inicio. Allí el usuario puede definir varias configuraciones gráficas del escritorio: representación de fuentes, colores de terminal, temas de cursor, etc. El script debe hacerse ejecutable:

chmod 755 ~/.vnc/xstartup

Esto completa la configuración del servidor VNC. Si lo ejecuta con el comando vncserver -localhost no (como usuario vnc), puede conectarse con la contraseña especificada anteriormente y ver la siguiente imagen:

VPS en Linux con una interfaz gráfica: iniciar un servidor VNC en Ubuntu 18.04

Iniciar un servicio a través de systemd

Iniciar manualmente un servidor VNC no es adecuado para uso en combate, por lo que configuraremos un servicio del sistema. Los comandos se ejecutan como root (usamos sudo). Primero, creemos un nuevo archivo de unidad para nuestro servidor:

sudo nano /etc/systemd/system/vncserver@.service

El símbolo @ en el nombre le permite pasar un argumento para configurar el servicio. En nuestro caso, especifica el puerto de visualización VNC. El archivo unitario consta de varias secciones:

[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

Luego debes notificar a systemd sobre el nuevo archivo y activarlo:

sudo systemctl daemon-reload
sudo systemctl enable vncserver@1.service

El número 1 en el nombre especifica el número de pantalla.

Detenga el servidor VNC, inícielo como servicio y verifique el estado:

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

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

Si el servicio se está ejecutando, deberíamos obtener algo como esto.

VPS en Linux con una interfaz gráfica: iniciar un servidor VNC en Ubuntu 18.04

Conexión de escritorio

Nuestra configuración no utiliza cifrado, por lo que los atacantes pueden interceptar los paquetes de red. Además, en los servidores VNC con bastante frecuencia encontrar vulnerabilidadesPor lo tanto, no tiene sentido abrirlos al acceso a Internet. Para conectarse de forma segura a su computadora local, necesita redirigir su tráfico a través de un túnel SSH y luego configurar el cliente VNC. Windows Puedes usar un cliente SSH gráfico (como PuTTY). Por motivos de seguridad, TigerVNC en el servidor solo escucha en localhost y no es directamente accesible desde redes públicas.


sudo netstat -ap |more

VPS en Linux con una interfaz gráfica: iniciar un servidor VNC en Ubuntu 18.04
В LinuxEn FreeBSD, OS X y otros sistemas operativos tipo UNIX, se crea un túnel desde el equipo cliente utilizando la utilidad ssh (sshd debe estar ejecutándose en el servidor VNC):

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

La opción -L vincula el puerto 5901 de la conexión remota al puerto 5901 en localhost. La opción -C habilita la compresión y la opción -N le dice a ssh que no ejecute el comando remoto. La opción -l especifica el inicio de sesión para el inicio de sesión remoto.

Después de configurar el túnel en la computadora local, debe iniciar el cliente VNC y establecer una conexión con el host 127.0.0.1:5901 (localhost:5901), utilizando la contraseña especificada previamente para acceder al servidor VNC. Ahora podemos comunicarnos de forma segura a través de un túnel cifrado con el entorno de escritorio gráfico XFCE en el VPS. En la captura de pantalla, la utilidad top se ejecuta en el emulador de terminal para mostrar el bajo consumo de recursos informáticos de la máquina virtual. Entonces todo dependerá de las aplicaciones del usuario.

VPS en Linux con una interfaz gráfica: iniciar un servidor VNC en Ubuntu 18.04
Instale y configure el servidor VNC en Linux Esto se puede hacer en prácticamente cualquier VPS. Esto no requiere configuraciones costosas y que consuman muchos recursos con emulación de adaptador de video ni la compra de licencias de software comerciales. Además de la opción de servicio del sistema que hemos comentado, hay otras: iniciar en modo demonio (a través de /etc/rc.local) al arrancar el sistema o bajo demanda a través de inetd. Esta última es útil para crear configuraciones multiusuario. El superservidor de Internet iniciará el servidor VNC y conectará al cliente a él, y el servidor VNC creará una nueva pantalla e iniciará la sesión. Un gestor de pantalla gráfica (p. ej., LightDM), y después de desconectar el cliente, la sesión se cerrará y se finalizarán todos los programas que trabajan con la pantalla.

VPS en Linux con una interfaz gráfica: iniciar un servidor VNC en Ubuntu 18.04

Fuente: habr.com

Compre alojamiento confiable para sitios con protección DDoS, servidores VPS VDS 🔥 Compra alojamiento web fiable con protección DDoS, servidores VPS VDS | ProHoster