VPS a Linux amb una interfície gràfica: llançament d'un servidor VNC a Ubuntu 18.04

VPS a Linux amb una interfície gràfica: llançament d'un servidor VNC a Ubuntu 18.04
Alguns usuaris lloguen un VPS relativament econòmic amb Windows per executar serveis d'escriptori remot. El mateix es pot fer a Linux sense allotjar el vostre propi maquinari en un centre de dades o llogar un servidor dedicat. Algunes persones necessiten un entorn gràfic familiar per a proves i desenvolupament, o un escriptori remot amb un ampli canal per treballar des de dispositius mòbils. Hi ha moltes opcions per utilitzar el sistema Virtual Network Computing (VNC) basat en el protocol Remote FrameBuffer (RFB). En aquest breu article us explicarem com configurar-lo en una màquina virtual amb qualsevol hipervisor.

Taula de continguts:

Selecció d'un servidor VNC
Instal·lació i configuració
Inici d'un servei mitjançant systemd
Connexió a l'escriptori

Selecció d'un servidor VNC

El servei VNC es pot incorporar al sistema de virtualització i l'hipervisor el connectarà amb els dispositius emulats i no caldrà cap configuració addicional. Aquesta opció implica una sobrecàrrega important i no és compatible amb tots els proveïdors, fins i tot en una implementació que consumeix menys recursos, quan en comptes d'emular un dispositiu gràfic real, es transfereix una abstracció simplificada (framebuffer) a la màquina virtual. De vegades, un servidor VNC està vinculat a un servidor X en execució, però aquest mètode és més adequat per accedir a una màquina física, i en una virtual crea una sèrie de dificultats tècniques. La manera més senzilla d'instal·lar un servidor VNC és amb un servidor X integrat. No requereix dispositius físics (adaptador de vídeo, teclat i ratolí) ni la seva emulació mitjançant un hipervisor, i per tant és apte per a qualsevol tipus de VPS.

Instal·lació i configuració

Necessitarem una màquina virtual amb Ubuntu Server 18.04 LTS en la seva configuració per defecte. Hi ha diversos servidors VNC als repositoris estàndard d'aquesta distribució: TightVNC, TigerVNC, x11vnc i altres. Ens vam establir per TigerVNC, una bifurcació actual de TightVNC, que el desenvolupador no admet. La configuració d'altres servidors es fa de la mateixa manera. També cal triar un entorn d'escriptori: l'opció òptima, segons la nostra opinió, seria XFCE a causa dels requisits relativament baixos dels recursos informàtics. Qui ho desitgi pot instal·lar un altre DE o WM: tot depèn de les preferències personals, però l'elecció del programari afecta directament la necessitat de RAM i nuclis informàtics.

VPS a Linux amb una interfície gràfica: llançament d'un servidor VNC a Ubuntu 18.04

La instal·lació de l'entorn d'escriptori amb totes les dependències es fa amb l'ordre següent:

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

A continuació, heu d'instal·lar el servidor VNC:

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

Fer-lo funcionar com a superusuari és una mala idea. Crea un usuari i un grup:

sudo adduser vnc

VPS a Linux amb una interfície gràfica: llançament d'un servidor VNC a Ubuntu 18.04

Afegim l'usuari al grup sudo perquè pugui realitzar tasques relacionades amb l'administració. Si no és necessari, podeu ometre aquest pas:

sudo gpasswd -a vnc sudo

El següent pas és executar el servidor VNC amb privilegis d'usuari vnc per crear una contrasenya segura i fitxers de configuració al directori ~/.vnc/. La longitud de la contrasenya pot ser de 6 a 8 caràcters (els caràcters addicionals es tallen). Si cal, també s'estableix una contrasenya només per a la visualització, és a dir. sense accés al teclat i al ratolí. Les ordres següents s'executen com a usuari vnc:

su - vnc
vncserver -localhost no

VPS a Linux amb una interfície gràfica: llançament d'un servidor VNC a Ubuntu 18.04
De manera predeterminada, el protocol RFB utilitza l'interval de ports TCP de 5900 a 5906, això és l'anomenat. ports de visualització, cadascun corresponent a una pantalla de servidor X. En aquest cas, els ports estan associats a pantalles de :0 a :6. La instància del servidor VNC que vam llançar escolta el port 5901 (pantalla: 1). Altres instàncies poden funcionar en altres ports amb pantalles :2, :3, etc. Abans d'una altra configuració, heu d'aturar el servidor:

vncserver -kill :1

L'ordre hauria de mostrar alguna cosa com això: "Mata l'ID de procés Xtigervnc 18105... èxit!"

Quan TigerVNC s'inicia, executa l'script ~/.vnc/xstartup per configurar els paràmetres de configuració. Creem el nostre propi script, primer desem una còpia de seguretat de l'existent, si existeix:

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

La sessió de l'entorn d'escriptori XFCE s'inicia amb l'script xstartup següent:

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

L'ordre xrdb és necessària perquè VNC llegeixi el fitxer .Xresources al directori d'inici. Allà l'usuari pot definir diversos paràmetres gràfics d'escriptori: representació de fonts, colors de terminal, temes de cursor, etc. L'script s'ha de fer executable:

chmod 755 ~/.vnc/xstartup

Això completa la configuració del servidor VNC. Si l'executeu amb l'ordre vncserver -localhost no (com a usuari vnc), podeu connectar-vos amb la contrasenya especificada anteriorment i veure la imatge següent:

VPS a Linux amb una interfície gràfica: llançament d'un servidor VNC a Ubuntu 18.04

Inici d'un servei mitjançant systemd

L'inici manual d'un servidor VNC no és adequat per a l'ús de combat, així que configurarem un servei del sistema. Les ordres s'executen com a root (utilitzem sudo). Primer, creem un fitxer d'unitat nou per al nostre servidor:

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

El símbol @ al nom us permet passar un argument per configurar el servei. En el nostre cas, especifica el port de visualització VNC. El fitxer de la unitat consta de diverses seccions:

[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

Aleshores, heu de notificar a systemd sobre el nou fitxer i activar-lo:

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

El número 1 del nom especifica el número de pantalla.

Atureu el servidor VNC, inicieu-lo com a servei i comproveu l'estat:

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

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

Si el servei s'està executant, hauríem d'obtenir alguna cosa com això.

VPS a Linux amb una interfície gràfica: llançament d'un servidor VNC a Ubuntu 18.04

Connexió a l'escriptori

La nostra configuració no utilitza xifratge, de manera que els paquets de xarxa poden ser interceptats pels atacants. A més, als servidors VNC amb força freqüència trobar vulnerabilitats, així que no hauríeu d'obrir-los per accedir-hi des d'Internet. Per connectar-vos de manera segura al vostre ordinador local, heu d'empaquetar el trànsit en un túnel SSH i després configurar un client VNC. A Windows, podeu utilitzar un client SSH gràfic (per exemple, PuTTY). Per seguretat, TigerVNC al servidor només escolta localhost i no és accessible directament des de les xarxes públiques:


sudo netstat -ap |more

VPS a Linux amb una interfície gràfica: llançament d'un servidor VNC a Ubuntu 18.04
A Linux, FreeBSD, OS X i altres sistemes operatius semblants a UNIX, es fa un túnel des de l'ordinador client mitjançant la utilitat ssh (sshd s'ha d'executar al servidor VNC):

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

L'opció -L enllaça el port 5901 de la connexió remota al port 5901 del localhost. L'opció -C permet la compressió i l'opció -N diu a ssh que no executi l'ordre remota. L'opció -l especifica l'inici de sessió per a l'inici de sessió remot.

Després de configurar el túnel a l'ordinador local, heu d'iniciar el client VNC i establir una connexió amb l'amfitrió 127.0.0.1:5901 (localhost:5901), utilitzant la contrasenya especificada anteriorment per accedir al servidor VNC. Ara ens podem comunicar de manera segura mitjançant un túnel xifrat amb l'entorn d'escriptori gràfic XFCE al VPS. A la captura de pantalla, la utilitat superior s'està executant a l'emulador de terminal per mostrar el baix consum de recursos informàtics de la màquina virtual. Aleshores, tot dependrà de les aplicacions dels usuaris.

VPS a Linux amb una interfície gràfica: llançament d'un servidor VNC a Ubuntu 18.04
Podeu instal·lar i configurar un servidor VNC a Linux a gairebé qualsevol VPS. Això no requereix configuracions cares i intensives en recursos amb emulació d'adaptadors de vídeo o la compra de llicències de programari comercial. A més de l'opció de servei del sistema que hem considerat, n'hi ha d'altres: llançar-se en mode dimoni (a través de /etc/rc.local) quan el sistema s'engega o sota demanda mitjançant inetd. Aquest últim és interessant per crear configuracions multiusuari. El Superservidor d'Internet iniciarà el servidor VNC i connectarà el client amb ell, i el servidor VNC crearà una nova pantalla i iniciarà la sessió. Per autenticar-s'hi, podeu utilitzar un gestor de visualització gràfic (per exemple, LightDM), i després de desconnectar el client, es tancarà la sessió i s'acabaran tots els programes que treballin amb la pantalla.

VPS a Linux amb una interfície gràfica: llançament d'un servidor VNC a Ubuntu 18.04

Font: www.habr.com

Afegeix comentari