VPS en Linux cunha interface gráfica: lanzamento dun servidor VNC en Ubuntu 18.04

VPS en Linux cunha interface gráfica: lanzamento dun servidor VNC en Ubuntu 18.04
Algúns usuarios alugan un VPS relativamente barato con Windows para executar servizos de escritorio remoto. O mesmo pódese facer en Linux sen aloxar o teu propio hardware nun centro de datos ou alugar un servidor dedicado. Algunhas persoas necesitan un entorno gráfico familiar para probar e desenvolver, ou un escritorio remoto cunha canle ampla para traballar desde dispositivos móbiles. Hai moitas opcións para usar o sistema de Virtual Network Computing (VNC) baseado no protocolo Remote FrameBuffer (RFB). Neste breve artigo dirémosche como configuralo nunha máquina virtual con calquera hipervisor.

Imaxe:

Selección dun servidor VNC
Instalación e configuración
Iniciando un servizo a través de systemd
Conexión de escritorio

Selección dun servidor VNC

O servizo VNC pódese integrar no sistema de virtualización e o hipervisor conectarao cos dispositivos emulados e non será necesaria ningunha configuración adicional. Esta opción implica unha sobrecarga significativa e non é soportada por todos os provedores, mesmo nunha implementación menos intensiva en recursos, cando en lugar de emular un dispositivo gráfico real, transfírese unha abstracción simplificada (framebuffer) á máquina virtual. Ás veces, un servidor VNC está ligado a un servidor X en execución, pero este método é máis axeitado para acceder a unha máquina física, e nunha virtual crea unha serie de dificultades técnicas. A forma máis sinxela de instalar un servidor VNC é cun servidor X integrado. Non precisa de dispositivos físicos (adaptador de vídeo, teclado e rato) nin a súa emulación mediante hipervisor, polo que é apto para calquera tipo de VPS.

Instalación e configuración

Necesitaremos unha máquina virtual con Ubuntu Server 18.04 LTS na súa configuración predeterminada. Hai varios servidores VNC nos repositorios estándar desta distribución: TightVNC, TigerVNC, x11vnc e outros. Fixémonos en TigerVNC, unha bifurcación actual de TightVNC, que non é compatible co programador. A configuración doutros servidores faise dun xeito similar. Tamén cómpre escoller un entorno de escritorio: a opción óptima, na nosa opinión, sería XFCE debido aos requisitos relativamente baixos dos recursos informáticos. Os que o desexen poden instalar outro DE ou WM: todo depende das preferencias persoais, pero a elección do software afecta directamente á necesidade de RAM e núcleos informáticos.

VPS en Linux cunha interface gráfica: lanzamento dun servidor VNC en Ubuntu 18.04

A instalación do ambiente de escritorio con todas as dependencias faise co seguinte comando:

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

A continuación, cómpre instalar o servidor VNC:

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

Facelo como superusuario é unha mala idea. Crear un usuario e un grupo:

sudo adduser vnc

VPS en Linux cunha interface gráfica: lanzamento dun servidor VNC en Ubuntu 18.04

Engadimos o usuario ao grupo sudo para que poida realizar tarefas relacionadas coa administración. Se non hai tal necesidade, pode omitir este paso:

sudo gpasswd -a vnc sudo

O seguinte paso é executar o servidor VNC con privilexios de usuario vnc para crear un contrasinal seguro e ficheiros de configuración no directorio ~/.vnc/. A lonxitude do contrasinal pode ser de 6 a 8 caracteres (os caracteres adicionais córtanse). Se é necesario, tamén se establece un contrasinal só para visualización, é dicir. sen acceso ao teclado e ao rato. Os seguintes comandos execútanse como usuario vnc:

su - vnc
vncserver -localhost no

VPS en Linux cunha interface gráfica: lanzamento dun servidor VNC en Ubuntu 18.04
Por defecto, o protocolo RFB usa o intervalo de portos TCP de 5900 a 5906 - este é o chamado. portos de visualización, cada un correspondente a unha pantalla de servidor X. Neste caso, os portos están asociados a pantallas de :0 a :6. A instancia do servidor VNC que iniciamos escoita o porto 5901 (pantalla: 1). Outras instancias poden funcionar noutros portos con pantallas :2, :3, etc. Antes de continuar a configuración, cómpre deter o servidor:

vncserver -kill :1

O comando debería mostrar algo así: "Matar a ID de proceso Xtigervnc 18105... éxito!"

Cando TigerVNC se inicia, executa o script ~/.vnc/xstartup para configurar os axustes de configuración. Imos crear o noso propio script, gardando primeiro unha copia de seguridade do existente, se existe:

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

A sesión do entorno de escritorio XFCE iníciase co seguinte script xstartup:

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

O comando xrdb é necesario para que VNC lea o ficheiro .Xresources no directorio de inicio. Alí o usuario pode definir varias configuracións gráficas do escritorio: representación de fontes, cores do terminal, temas do cursor, etc. O script debe ser executable:

chmod 755 ~/.vnc/xstartup

Isto completa a configuración do servidor VNC. Se o executas co comando vncserver -localhost no (como usuario vnc), podes conectarte co contrasinal especificado anteriormente e ver a seguinte imaxe:

VPS en Linux cunha interface gráfica: lanzamento dun servidor VNC en Ubuntu 18.04

Iniciando un servizo a través de systemd

Iniciar manualmente un servidor VNC non é axeitado para o uso en combate, polo que configuraremos un servizo do sistema. Os comandos execútanse como root (usamos sudo). Primeiro, imos crear un novo ficheiro de unidade para o noso servidor:

sudo nano /etc/systemd/system/[email protected]

O símbolo @ no nome permítelle pasar un argumento para configurar o servizo. No noso caso, especifica o porto de visualización VNC. O ficheiro da unidade consta de varias seccións:

[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

A continuación, cómpre notificar a systemd sobre o novo ficheiro e activalo:

sudo systemctl daemon-reload
sudo systemctl enable [email protected]

O número 1 do nome especifica o número de pantalla.

Detén o servidor VNC, iníciao como servizo e comproba o estado:

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

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

Se o servizo está funcionando, deberíamos obter algo así.

VPS en Linux cunha interface gráfica: lanzamento dun servidor VNC en Ubuntu 18.04

Conexión de escritorio

A nosa configuración non usa cifrado, polo que os paquetes de rede poden ser interceptados polos atacantes. Ademais, en servidores VNC con bastante frecuencia atopar vulnerabilidades, polo que non deberías abrilos para acceder desde Internet. Para conectarse de forma segura no seu ordenador local, cómpre empaquetar o tráfico nun túnel SSH e despois configurar un cliente VNC. En Windows, pode usar un cliente gráfico SSH (por exemplo, PuTTY). Por seguridade, TigerVNC no servidor só escoita localhost e non é accesible directamente desde as redes públicas:


sudo netstat -ap |more

VPS en Linux cunha interface gráfica: lanzamento dun servidor VNC en Ubuntu 18.04
En Linux, FreeBSD, OS X e outros sistemas operativos similares a UNIX, faise un túnel desde o ordenador cliente mediante a utilidade ssh (sshd debe estar executado no servidor VNC):

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

A opción -L vincula o porto 5901 da conexión remota ao porto 5901 no host local. A opción -C permite a compresión e a opción -N di a ssh que non execute o comando remoto. A opción -l especifica o inicio de sesión para o inicio de sesión remoto.

Despois de configurar o túnel no ordenador local, cómpre iniciar o cliente VNC e establecer unha conexión co host 127.0.0.1:5901 (localhost:5901), utilizando o contrasinal especificado anteriormente para acceder ao servidor VNC. Agora podemos comunicarnos de forma segura a través dun túnel cifrado co entorno de escritorio gráfico XFCE no VPS. Na captura de pantalla, a utilidade superior está a executarse no emulador de terminal para mostrar o baixo consumo de recursos informáticos da máquina virtual. Entón todo dependerá das aplicacións do usuario.

VPS en Linux cunha interface gráfica: lanzamento dun servidor VNC en Ubuntu 18.04
Podes instalar e configurar un servidor VNC en Linux en case calquera VPS. Isto non require configuracións caras e que consumen moito recursos con emulación de adaptadores de vídeo nin a compra de licenzas de software comercial. Ademais da opción de servizo do sistema que consideramos, hai outras: lanzar en modo daemon (a través de /etc/rc.local) cando se inicia o sistema ou baixo demanda a través de inetd. Este último é interesante para crear configuracións multiusuario. O Internet Superserver iniciará o servidor VNC e conectará o cliente a el, e o servidor VNC creará unha nova pantalla e iniciará a sesión. Para autenticarse nel, pode usar un xestor de visualización gráfico (por exemplo, LightDM), e despois de desconectar o cliente, pecharase a sesión e remataranse todos os programas que traballan coa pantalla.

VPS en Linux cunha interface gráfica: lanzamento dun servidor VNC en Ubuntu 18.04

Fonte: www.habr.com

Engadir un comentario