VPS attivo Linux con un'interfaccia grafica: avvio di un server VNC su Ubuntu 18.04

VPS attivo Linux con un'interfaccia grafica: avvio di un server VNC su Ubuntu 18.04
Alcuni utenti affittano VPS relativamente economici con Windows per avviare il servizio Desktop remoto. Lo stesso si può fare su Linux Senza dover ospitare il proprio hardware in un data center o noleggiare un server dedicato. Altri necessitano di un ambiente grafico familiare per test e sviluppo, oppure di un desktop remoto con una connessione a banda larga per lavorare da dispositivi mobili. Esistono numerose applicazioni per il Virtual Network Computing (VNC) basato sul protocollo Remote FrameBuffer (RFB). In questo breve articolo, spiegheremo come configurarlo su una macchina virtuale con qualsiasi hypervisor.

Sommario:

Selezione di un server VNC
Installazione e configurazione
Avvio di un servizio tramite systemd
Connessione al desktop

Selezione di un server VNC

Il servizio VNC può essere integrato nel sistema di virtualizzazione e l'hypervisor lo collegherà ai dispositivi emulati e non sarà richiesta alcuna configurazione aggiuntiva. Questa opzione comporta un notevole sovraccarico e non è supportata da tutti i provider, anche in un'implementazione meno dispendiosa in termini di risorse, quando invece di emulare un dispositivo grafico reale, viene trasferita alla macchina virtuale un'astrazione semplificata (framebuffer). A volte il server VNC è collegato al server X in esecuzione, ma questo metodo è più adatto per accedere a una macchina fisica e su quella virtuale crea una serie di difficoltà tecniche. Il modo più semplice per installare un server VNC è con un server X integrato. Non richiede dispositivi fisici (scheda video, tastiera e mouse) né la loro emulazione tramite hypervisor, ed è quindi adatto a qualsiasi tipo di VPS.

Installazione e configurazione

Avremo bisogno di una macchina virtuale con Ubuntu Server 18.04 LTS nella sua configurazione predefinita. I repository standard di questa distribuzione includono diversi server VNC: TightVNC, TigerVNC, x11vnc e altri. Abbiamo optato per TigerVNC, un attuale fork di TightVNC, che non è supportato dallo sviluppatore. La configurazione di altri server avviene in modo simile. È inoltre necessario scegliere un ambiente desktop: l'opzione ottimale, a nostro avviso, sarebbe XFCE a causa dei requisiti relativamente bassi di risorse di calcolo. Chi lo desidera può installare un altro DE o WM: tutto dipende dalle preferenze personali, ma la scelta del software influisce direttamente sulla necessità di RAM e core di calcolo.

VPS attivo Linux con un'interfaccia grafica: avvio di un server VNC su Ubuntu 18.04

L'installazione dell'ambiente desktop con tutte le dipendenze viene eseguita con il seguente comando:

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

Successivamente è necessario installare il server VNC:

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

Eseguirlo come superutente è una cattiva idea. Crea un utente e un gruppo:

sudo adduser vnc

VPS attivo Linux con un'interfaccia grafica: avvio di un server VNC su Ubuntu 18.04

Aggiungiamo l'utente al gruppo sudo in modo che possa eseguire attività relative all'amministrazione. Se non è necessario, puoi saltare questo passaggio:

sudo gpasswd -a vnc sudo

Il passo successivo è eseguire il server VNC con privilegi utente vnc per creare una password sicura e file di configurazione nella directory ~/.vnc/. La lunghezza della password può essere compresa tra 6 e 8 caratteri (i caratteri extra vengono troncati). Se necessario viene impostata anche una password per la sola visualizzazione, ad es. senza accesso a tastiera e mouse. I seguenti comandi vengono eseguiti come utente vnc:

su - vnc
vncserver -localhost no

VPS attivo Linux con un'interfaccia grafica: avvio di un server VNC su Ubuntu 18.04
Per impostazione predefinita, il protocollo RFB utilizza l'intervallo di porte TCP da 5900 a 5906: questo è il cosiddetto. porte di visualizzazione, ciascuna corrispondente a uno schermo del server X. In questo caso le porte sono associate alle schermate da :0 a :6. L'istanza del server VNC che abbiamo avviato è in ascolto sulla porta 5901 (schermata: 1). Altre istanze possono funzionare su altre porte con schermate :2, :3, ecc. Prima di un'ulteriore configurazione, è necessario arrestare il server:

vncserver -kill :1

Il comando dovrebbe visualizzare qualcosa del genere: "Killing Xtigervnc process ID 18105... success!"

All'avvio TigerVNC, esegue lo script ~/.vnc/xstartup per configurare le impostazioni di configurazione. Creiamo il nostro script, salvando prima una copia di backup di quello esistente, se esiste:

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

La sessione dell'ambiente desktop XFCE viene avviata dal seguente script xstartup:

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

Il comando xrdb è necessario affinché VNC legga il file .Xresources nella directory home. Lì l'utente può definire varie impostazioni grafiche del desktop: rendering dei caratteri, colori del terminale, temi del cursore, ecc. Lo script deve essere reso eseguibile:

chmod 755 ~/.vnc/xstartup

Questo completa la configurazione del server VNC. Se lo esegui con il comando vncserver -localhost no (come utente vnc), puoi connetterti con la password precedentemente specificata e vedere la seguente immagine:

VPS attivo Linux con un'interfaccia grafica: avvio di un server VNC su Ubuntu 18.04

Avvio di un servizio tramite systemd

L'avvio manuale di un server VNC non è adatto all'uso in combattimento, quindi configureremo un servizio di sistema. I comandi vengono eseguiti come root (usiamo sudo). Innanzitutto, creiamo un nuovo file unit per il nostro server:

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

Il simbolo @ nel nome consente di passare un argomento per configurare il servizio. Nel nostro caso, specifica la porta display VNC. Il file unitario è composto da diverse sezioni:

[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

Quindi devi notificare a systemd il nuovo file e attivarlo:

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

Il numero 1 nel nome specifica il numero dello schermo.

Arresta il server VNC, avvialo come servizio e controlla lo stato:

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

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

Se il servizio è in esecuzione, dovremmo ottenere qualcosa di simile.

VPS attivo Linux con un'interfaccia grafica: avvio di un server VNC su Ubuntu 18.04

Connessione al desktop

La nostra configurazione non utilizza la crittografia, quindi i pacchetti di rete possono essere intercettati dagli aggressori. Inoltre, nei server VNC abbastanza spesso trovare vulnerabilitàPertanto, non ha senso renderli accessibili da Internet. Per connettersi in modo sicuro al computer locale, è necessario instradare il traffico attraverso un tunnel SSH e quindi configurare il client VNC. Windows È possibile utilizzare un client SSH grafico (come PuTTY). Per motivi di sicurezza, TigerVNC sul server è in ascolto solo su localhost e non è direttamente accessibile dalle reti pubbliche:


sudo netstat -ap |more

VPS attivo Linux con un'interfaccia grafica: avvio di un server VNC su Ubuntu 18.04
В LinuxSu FreeBSD, OS X e altri sistemi operativi simili a UNIX, viene creato un tunnel dal computer client utilizzando l'utilità ssh (sshd deve essere in esecuzione sul server VNC):

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

L'opzione -L associa la porta 5901 della connessione remota alla porta 5901 su localhost. L'opzione -C abilita la compressione e l'opzione -N dice a ssh di non eseguire il comando remoto. L'opzione -l specifica il login per l'accesso remoto.

Dopo aver configurato il tunnel sul computer locale, è necessario avviare il client VNC e stabilire una connessione con l'host 127.0.0.1:5901 (localhost:5901), utilizzando la password precedentemente specificata per accedere al server VNC. Ora possiamo comunicare in modo sicuro tramite un tunnel crittografato con l'ambiente desktop grafico XFCE sul VPS. Nello screenshot, l'utilità principale è in esecuzione nell'emulatore di terminale per mostrare il basso consumo di risorse di elaborazione della macchina virtuale. Quindi tutto dipenderà dalle applicazioni dell'utente.

VPS attivo Linux con un'interfaccia grafica: avvio di un server VNC su Ubuntu 18.04
Installare e configurare il server VNC in Linux Questo può essere fatto praticamente su qualsiasi VPS. Non richiede configurazioni costose e dispendiose in termini di risorse con emulazione di schede video o l'acquisto di licenze software commerciali. Oltre all'opzione del servizio di sistema di cui abbiamo parlato, ce ne sono altre: l'avvio in modalità daemon (tramite /etc/rc.local) all'avvio del sistema o su richiesta tramite inetd. Quest'ultima è utile per creare configurazioni multiutente. Il superserver Internet avvierà il server VNC e connetterà il client ad esso, e il server VNC creerà un nuovo schermo e avvierà la sessione. Un gestore di visualizzazione grafica (ad esempio, LightDM) e dopo aver disconnesso il client, la sessione verrà chiusa e tutti i programmi che funzionano con lo schermo verranno terminati.

VPS attivo Linux con un'interfaccia grafica: avvio di un server VNC su Ubuntu 18.04

Fonte: habr.com

Acquista hosting affidabile per siti con protezione DDoS, server VPS VDS 🔥 Acquista un hosting web affidabile con protezione DDoS, server VPS e VDS | ProHoster