Come installare e configurare l’accesso remoto VNC per il desktop GNOME su CentOS 7

Introduzione

VNC o Virtual Network Computing è un protocollo indipendente dalla piattaforma che permette agli utenti di connettersi a un sistema informatico remoto e utilizzare le sue risorse da un’interfaccia grafica utente (GUI).

E’ come controllare a distanza un’applicazione: la pressione dei tasti del computer client o i clic del mouse sono trasmessi in rete al computer remoto. VNC permette anche la condivisione degli appunti tra i due computer. Se vieni da un background di server Microsoft Windows, VNC è molto simile al Remote Desktop Service, tranne che è disponibile anche per OS X, Linux e altri sistemi operativi.

Come tutto il resto nel mondo del networking, VNC è basato sul modello client server: Il server VNC gira su un computer remoto – il tuo Droplet – che serve le richieste dei client in arrivo.

Obiettivi

In questo tutorial impareremo come installare e configurare un server VNC su CentOS 7. Installeremo il server TigerVNC che è liberamente disponibile dal repository TigerVNC GitHub.

Per dimostrare come funziona VNC, installeremo anche il desktop GNOME sul server CentOS. Creeremo due account utente e configureremo l’accesso VNC per loro. Poi testeremo la loro connettività al desktop remoto e, infine, impareremo come proteggere la connessione remota attraverso un tunnel SSH.

Prequisiti

I comandi, i pacchetti e i file mostrati in questo tutorial sono stati testati su un’installazione minima di CentOS 7. Si consiglia quanto segue:

  • Distro: CentOS 7, 64-bit
  • Requisiti delle risorse: Un Droplet con 2 GB di RAM
  • Per seguire questo tutorial, dovresti usare un utente sudo. Per capire come funzionano i privilegi di sudo, puoi fare riferimento a questo tutorial di DigitalOcean

Attenzione: Non dovreste eseguire alcun comando, query o configurazione da questo tutorial su un server Linux di produzione. Questo potrebbe causare problemi di sicurezza e tempi di inattività.

Passo 1 – Creazione di due account utente

Primo, creeremo due account utente. Questi account si connetteranno in remoto al nostro server CentOS 7 da client VNC.

  • joevnc
  • janevnc

Esegui il seguente comando per aggiungere un account utente per joevnc:

sudo useradd -c "User Joe Configured for VNC Access" joevnc

Poi lancia il comando passwd per cambiare la password di joevnc:

sudo passwd joevnc

L’output ci chiederà la nuova password. Una volta fornita, l’account sarà pronto per il login:

Changing password for user joevnc.New password:Retype new password:passwd: all authentication tokens updated successfully.

Prossimo, crea un account per janevnc:

sudo useradd -c "User Jane Configured for VNC Access" janevnc

Imposta la password per janevnc:

sudo passwd janevnc

Passo 2 – Installazione di GNOME Desktop

Ora installeremo GNOME desktop. GNOME è uno sforzo collaborativo: è una raccolta di software libero e open source che compone un ambiente desktop molto popolare. Ci sono altri ambienti desktop come KDE, ma GNOME è più popolare. I nostri utenti VNC useranno GNOME per interagire con il server dal suo desktop:

sudo yum groupinstall -y "GNOME Desktop"

A seconda della velocità della vostra rete, questo può richiedere alcuni minuti.

Una volta che il gruppo di pacchetti è installato, riavvia il server:

sudo reboot

Risoluzione dei problemi – Server bloccato nella fase di avvio

A seconda di come è stato impostato il tuo server, quando la macchina si avvia potrebbe rimanere nella fase di avvio mostrando un messaggio come questo:

Initial setup of CentOS Linux 7 (core)1) License information (Licence not accepted)Please make your choice from above :

Per superare questo, premi 1 (licenza letta), poi 2 (accetta licenza) e poi C (per continuare). Potresti dover premere C due o più volte. L’immagine qui sotto mostra questo:

Se non vedi questo errore e il processo di avvio è regolare, tanto meglio – puoi passare al passo successivo.

Passo 3 – Installazione di TigerVNC Server

TigerVNC è il software che ci permetterà di effettuare una connessione desktop remoto.

Installa il server Tiger VNC:

sudo yum install -y tigervnc-server

Questo dovrebbe mostrare un output come il seguente:

Loaded plugins: fastestmirror, langpacksLoading mirror speeds from cached hostfile. . .Running transaction Installing : tigervnc-server-1.2.80-0.30.20130314svn5065.el7.x86_64 1/1 Verifying : tigervnc-server-1.2.80-0.30.20130314svn5065.el7.x86_64 1/1Installed: tigervnc-server.x86_64 0:1.2.80-0.30.20130314svn5065.el7Complete!

Ora abbiamo il server VNC e il desktop GNOME installato. Abbiamo anche creato due account utente per la connessione tramite VNC.

Passo 4 – Configurazione del servizio VNC per due client

Il server VNC non parte automaticamente quando viene installato per la prima volta. Per verificarlo, esegui il seguente comando:

sudo systemctl status vncserver@:.service

L’output sarà come questo:

vncserver@:.service - Remote desktop service (VNC) Loaded: loaded (/usr/lib/systemd/system/[email protected]; disabled) Active: inactive (dead)

Puoi anche eseguire questo comando:

sudo systemctl is-enabled [email protected]

Questo dovrebbe mostrare un output come questo:

disabled

Perché è disabilitato? Questo perché ogni utente avvierà un’istanza separata del demone del servizio VNC. In altre parole, VNC non viene eseguito come un singolo processo che serve ogni richiesta dell’utente. Ogni utente che si connette tramite VNC dovrà avviare una nuova istanza del demone (o l’amministratore di sistema può automatizzare questo).

CentOS 7 utilizza il demone systemd per avviare altri servizi. Ogni servizio che gira nativamente sotto systemd ha un file di unità di servizio che è posto sotto la directory /lib/systemd/system dal programma di installazione yum. I processi che vengono avviati automaticamente all’avvio hanno un collegamento a questo file di unità di servizio posto nella directory /etc/systemd/system/.

Nel nostro caso, un generico file di unità di servizio è stato creato nella directory /lib/systemd/system/, ma nessun collegamento è stato fatto sotto /etc/systemd/system/. Per verificarlo, esegui i seguenti comandi:

sudo ls -l /lib/systemd/system/vnc*

Dovresti vedere:

-rw-r--r--. 1 root root 1744 Jun 10 16:15 /lib/systemd/system/[email protected]

Poi controlla sotto /etc/systemd/system/:

sudo ls -l /etc/systemd/system/*.wants/vnc*

Questo non esiste:

ls: cannot access /etc/systemd/system/*.wants/vnc*: No such file or directory

Quindi, il primo passo è avviare due nuove istanze del server VNC per i nostri due utenti. Per fare questo, avremo bisogno di fare due copie del file generico dell’unità di servizio VNC sotto /etc/system/system. Nello snippet di codice qui sotto, si stanno facendo due copie con due nomi diversi:

sudo cp /lib/systemd/system/[email protected] /etc/systemd/system/vncserver@:4.servicesudo cp /lib/systemd/system/[email protected] /etc/systemd/system/vncserver@:5.service

Perché abbiamo aggiunto due numeri (insieme ai due punti) nei nomi dei file copiati?

Anche questo torna al concetto di servizi VNC individuali. VNC di per sé gira sulla porta 5900. Poiché ogni utente eseguirà il proprio server VNC, ogni utente dovrà connettersi tramite una porta separata. L’aggiunta di un numero nel nome del file dice a VNC di eseguire quel servizio come una sottoporta di 5900. Così nel nostro caso, il servizio VNC di joevnc verrà eseguito sulla porta 5904 (5900 + 4) e quello di janevnc verrà eseguito su 5905 (5900 + 5).

Poi modifica il file di unità di servizio per ogni client. Aprite il file /etc/systemd/system/vncserver@:4.service con l’editor vi:

sudo vi /etc/systemd/system/vncserver@:4.service

Un’occhiata alla sezione “Quick HowTo” ci dice che abbiamo già completato il primo passo. Ora abbiamo bisogno di passare attraverso i passi rimanenti. I commenti ci dicono anche che VNC è una connessione non fidata. Ne parleremo più tardi.

Per ora, modifica la sezione del file, sostituendo le istanze di <USER> con joevnc. Inoltre, aggiungi la clausola -geometry 1280x1024 alla fine del parametro ExecStart. Questo dice solo a VNC la dimensione dello schermo che dovrebbe iniziare. Modificherete due linee in totale. Ecco come dovrebbe apparire il file modificato (nota che l’intero file non è mostrato):

# The vncserver service unit file## Quick HowTo:# 1. Copy this file to /etc/systemd/system/vncserver@:<display>.service# 2. Edit <USER> and vncserver parameters appropriately# ("runuser -l <USER> -c /usr/bin/vncserver %i -arg1 -arg2")# 3. Run `systemctl daemon-reload`# 4. Run `systemctl enable vncserver@:<display>.service`#. . .Description=Remote desktop service (VNC)After=syslog.target network.targetType=forking# Clean any existing files in /tmp/.X11-unix environmentExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'ExecStart=/sbin/runuser -l joevnc -c "/usr/bin/vncserver %i -geometry 1280x1024" PIDFile=/home/joevnc/.vnc/%H%i.pidExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'WantedBy=multi-user.target

Salvare il file e uscire da vi.

Similmente, apri il file /etc/systemd/system/vncserver@:5.service in vi e fai le modifiche per l’utente janevnc:

sudo vi /etc/systemd/system/vncserver@:5.service

Ecco solo la sezione con le modifiche segnate:

Type=forking# Clean any existing files in /tmp/.X11-unix environmentExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'ExecStart=/sbin/runuser -l janevnc -c "/usr/bin/vncserver %i -geometry 1280x1024"PIDFile=/home/janevnc/.vnc/%H%i.pidExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

In seguito, esegui i seguenti comandi per ricaricare il demone systemd e anche per assicurarti che VNC si avvii per due utenti all’avvio.

sudo systemctl daemon-reload

Abilita la prima istanza del server:

sudo systemctl enable vncserver@:4.service

Output:

ln -s '/etc/systemd/system/vncserver@:4.service' '/etc/systemd/system/multi-user.target.wants/vncserver@:4.service'

Abilita la seconda istanza del server:

sudo systemctl enable vncserver@:5.service

Output:

ln -s '/etc/systemd/system/vncserver@:5.service' '/etc/systemd/system/multi-user.target.wants/vncserver@:5.service'

Ora hai configurato due istanze del server VNC.

Passo 5 – Configurare il Firewall

Prossimo, avremo bisogno di configurare il firewall per permettere il traffico VNC solo attraverso le porte 5904 e 5905. CentOS 7 utilizza il Dynamic Firewall attraverso il demone firewalld; il servizio non ha bisogno di essere riavviato perché le modifiche abbiano effetto.

Il servizio firewalld dovrebbe partire automaticamente all’avvio del sistema, ma è sempre bene controllare:

sudo firewall-cmd --state

Questo dovrebbe mostrare:

running

Se lo stato è “non in esecuzione” per qualsiasi motivo, eseguire il seguente comando per assicurarsi che sia in esecuzione:

sudo systemctl start firewalld

Ora aggiungi le regole per le porte 5904 e 5905:

sudo firewall-cmd --permanent --zone=public --add-port=5904-5905/tcp

Output:

success

Ricarica il firewall:

sudo firewall-cmd --reload

Output:

success

Step 6 – Impostare le password VNC

Siamo ad un passo dal vedere VNC in azione. In questo passo, gli utenti dovranno impostare le loro password VNC. Queste non sono le password Linux degli utenti, ma le password per accedere alle sessioni VNC.

Apri un’altra connessione terminale al server CentOS 7, e questa volta accedi come joevnc.

ssh joevnc@your_server_ip

Eseguite il seguente comando:

vncserver

Come mostrato nell’output sottostante, il server chiederà a joevnc di impostare una password VNC. Dopo aver digitato la password, il programma mostra anche una serie di file che vengono creati nella home directory dell’utente:

You will require a password to access your desktops.Password:Verify:xauth: file /home/joevnc/.Xauthority does not existNew 'localhost.localdomain:1 (joevnc)' desktop is localhost.localdomain:1Creating default startup script /home/joevnc/.vnc/xstartupStarting applications specified in /home/joevnc/.vnc/xstartupLog file is /home/joevnc/.vnc/localhost.localdomain:1.log

Guardiamo la linea New 'localhost.localdomain:1 (joevnc)' desktop is localhost.localdomain:1. localhost.localdomain era il nome del server nel nostro esempio; nel tuo caso potrebbe essere diverso. Nota il numero dopo il nome del server: (1, separato da due punti). Non è il numero nel file delle unità di servizio di joevnc (che era 4). Questo perché questo è il numero di visualizzazione su cui verrà eseguita la sessione di joevnc in questo server, non il numero di porta del servizio (5904) stesso.

Poi apri una nuova sessione di terminale e accedi come janevnc. Anche qui, avviate il server VNC e impostate una password per janevnc:

vncserver

Dovreste vedere un output simile che mostra che la sessione di janevnc verrà eseguita sul display 2.

Infine, ricarica i servizi dalla sessione principale del terminale:

sudo systemctl daemon-reloadsudo systemctl restart vncserver@:4.servicesudo systemctl restart vncserver@:5.service

Passo 7 – Connettersi ai desktop remoti con un client VNC

Per questo tutorial, assumeremo che gli utenti joevnc e janevnc stiano cercando di connettersi al server CentOS 7 dai loro computer Windows.

Hanno bisogno di un client VNC per Windows per accedere al desktop remoto. Questo client è proprio come un client di terminale come PuTTY, eccetto che mostra un output grafico. Ci sono vari client VNC disponibili, ma quello che useremo è RealVNC, disponibile qui. VNC Viewer per Mac OS X è disponibile per il download sulla stessa pagina, e la versione per Mac è abbastanza simile a quella per Windows.

Quando VNC Viewer viene avviato, mostra una finestra di dialogo come questa:

Nel campo VNC Server, aggiungi l’indirizzo IP del tuo server CentOS 7. Specifica il numero di porta 5904 dopo l’IP del server, separato da due punti (:). Abbiamo usato 5904 perché questa è la porta del servizio VNC per joevnc.

Abbiamo anche deciso di lasciare che VNC Viewer scelga il metodo di crittografia. Questa opzione cripterà solo la password inviata attraverso la rete. Qualsiasi comunicazione successiva con il server sarà in chiaro. (Imposteremo un tunnel SSH sicuro nel passo finale.)

In effetti, un messaggio di avviso mostra proprio questo:

Accetta l’avviso per ora. Viene visualizzata una richiesta di password:

Inserisci la password VNC di joevnc che hai impostato in precedenza.

Si apre una nuova finestra che mostra il desktop GNOME del nostro server CentOS remoto:

Accetta il messaggio di benvenuto predefinito.

Ora joevnc può avviare uno strumento grafico come la calcolatrice GNOME:

Puoi lasciare questa connessione desktop aperta.

Ora janevnc può anche avviare un’altra sessione VNC con il server CentOS. L’indirizzo IP è lo stesso, e la porta è 5905:

Quando janevnc si collega tramite VNC Viewer, viene mostrato un desktop vuoto con un messaggio di benvenuto, proprio come è stato mostrato per joevnc. In altre parole, i due utenti non stanno condividendo le istanze del desktop. Il desktop di joevnc dovrebbe ancora mostrare la calcolatrice.

Per chiudere la sessione desktop remoto, è sufficiente chiudere la finestra. Tuttavia, questo non ferma il servizio VNC dell’utente in background sul server. Se il servizio non viene fermato o riavviato e la macchina non ha avuto riavvii, la stessa sessione desktop verrebbe presentata al prossimo logon.

Chiudi le finestre del VNC Viewer per joevnc e janevnc. Chiudete anche le loro sessioni di terminale. Dalla finestra principale del terminale, controlla se i servizi VNC sono ancora in esecuzione:

sudo systemctl status vncserver@:4.service

L’output mostra che il desktop remoto è ancora in esecuzione:

vncserver@:4.service - Remote desktop service (VNC) Loaded: loaded (/etc/systemd/system/vncserver@:4.service; enabled) Active: active (running) since Sat 2014-11-01 12:06:49 EST; 58min ago Process: 2014 ExecStart=/sbin/runuser -l joevnc -c /usr/bin/vncserver %i -geometry 1280x1024 (code=exited, status=0/SUCCESS). . .

Controlla il secondo servizio:

sudo systemctl status vncserver@:5.service

Anche questo è in esecuzione:

vncserver@:5.service - Remote desktop service (VNC) Loaded: loaded (/etc/systemd/system/vncserver@:5.service; enabled) Active: active (running) since Sat 2014-11-01 12:42:56 EST; 22min ago Process: 3748 ExecStart=/sbin/runuser -l janevnc -c /usr/bin/vncserver %i -geometry 1280x1024 (code=exited, status=0/SUCCESS). . .

Se tu volessi accedere nuovamente al desktop di joevnc a questo punto, vedresti la stessa app calcolatrice aperta.

Questo presenta alcune sfide interessanti per gli amministratori di sistema. Se hai un certo numero di utenti che si collegano al server tramite VNC, potresti voler escogitare un modo per fermare i loro servizi VNC quando non sono più necessari. Questo potrebbe salvare alcune preziose risorse di sistema.

Risoluzione dei problemi – Il servizio VNC si blocca

Come si prova e si gioca con VNC, si può a volte trovare il servizio si è bloccato ed è irrecuperabile. Quando provi a controllare lo stato:

sudo systemctl status vncserver@:4.service

Può apparire questo lungo messaggio di errore:

vncserver@:4.service - Remote desktop service (VNC) Loaded: loaded (/etc/systemd/system/vncserver@:4.service; enabled) Active: failed (Result: exit-code) since Fri 2014-11-07 00:02:38 EST; 2min 20s ago Process: 2221 ExecStart=/sbin/runuser -l joevnc -c /usr/bin/vncserver %i -geometry 1280x1024 (code=exited, status=2) Process: 1257 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill %i > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)

Tentare di avviare il servizio non funziona:

sudo systemctl start vncserver@:4.service

Avvio non riuscito:

Job for vncserver@:4.service failed. See 'systemctl status vncserver@:4.service' and 'journalctl -xn' for details.

Di solito la ragione è abbastanza semplice. Controlla /var/log/messages:

sudo tail /var/log/messages

L’errore relativo sarà simile a questo:

Nov 7 00:08:36 localhost runuser: Warning: localhost.localdomain:4 is taken because of /tmp/.X11-unix/X4Nov 7 00:08:36 localhost runuser: Remove this file if there is no X server localhost.localdomain:4Nov 7 00:08:36 localhost runuser: A VNC server is already running as :4Nov 7 00:08:36 localhost systemd: vncserver@:4.service: control process exited, code=exited status=2Nov 7 00:08:36 localhost systemd: Failed to start Remote desktop service (VNC).Nov 7 00:08:36 localhost systemd: Unit vncserver@:4.service entered failed state.Nov 7 00:08:36 localhost systemd: Failed to mark scope session-c3.scope as abandoned : Stale file handle

Il rimedio è cancellare il file sotto la cartella /tmp:

sudo rm -i /tmp/.X11-unix/X4

Output:

rm: remove socket '/tmp/.X11-unix/X4'? y

Poi avvia il servizio VNC:

sudo systemctl start vncserver@:4.service

Risoluzione dei problemi generali

Anche se relativamente raro, puoi incontrare altri errori quando lavori con VNC. Per esempio, lo schermo del tuo desktop remoto può diventare bianco o bloccarsi, la sessione potrebbe bloccarsi con un messaggio di errore criptico, VNC Viewer potrebbe non connettersi correttamente o trasmettere comandi alla GUI per lanciare applicazioni, ecc.

Si consiglia di controllare il file /var/log/messages per avere una migliore comprensione. A volte potrebbe essere necessario riavviare il server, o in casi estremi ricreare il servizio VNC.

Le risorse di sistema possono anche essere un colpevole; potresti dover aggiungere RAM extra al tuo Droplet, ecc.

Step 8 – Proteggere le sessioni VNC attraverso SSH Tunneling

Finora sia joevnc che janevnc hanno avuto accesso ai loro desktop remoti attraverso canali non criptati. Come abbiamo visto prima, VNC Viewer ci avverte di questo al momento della connessione; solo la password è criptata all’inizio della sessione. Qualsiasi successivo traffico di rete e trasferimento di dati è aperto per chiunque possa intercettare nel mezzo.

Sul Tunnelling SSH

Ecco dove le sessioni Secure Shell (SSH) possono aiutare. Con SSH, VNC può essere eseguito nel contesto di una sessione criptata SSH. Questo è noto come tunnelling. In effetti, il traffico VNC si appoggia al protocollo SSH, con il risultato che tutte le sue comunicazioni con il server sono criptate. Si chiama tunnelling perché SSH sta fornendo una protezione avvolgente su VNC e VNC è in esecuzione come in un tunnel all’interno di SSH. Il tunnelling SSH può essere usato anche per altri protocolli come POP, X o IMAP.

Il tunnelling SSH funziona con il port forwarding che è fondamentalmente un mezzo per tradurre l’accesso da una particolare porta a una porta diversa su un’altra macchina. Con il port forwarding, quando un’applicazione client si connette alla porta A in esecuzione sulla macchina A, viene inoltrata in modo trasparente alla porta B in esecuzione sulla macchina B. L’applicazione client non è consapevole di questa traduzione e pensa di connettersi alla porta originale. Il port forwarding è una delle caratteristiche del protocollo SSH.

Per informazioni più dettagliate sul tunneling SSH, leggi questo tutorial.

In questo tutorial abbiamo configurato VNC per funzionare sulle porte 5904 (per joevnc) e 5905 (per janevnc).

Con il port forwarding, possiamo impostare il nostro client VNC locale per connettersi alla porta 5900 sul computer client locale, e questo può essere mappato alla porta 5905 sul server remoto. Questo esempio è per la connessione di janevnc, ma si potrebbe facilmente seguire gli stessi passi per qualsiasi altro client.

Quando l’applicazione client VNC si avvia, può essere puntata alla porta 5900 su localhost, e il nostro port forwarding lo trasporterà in modo trasparente alla porta 5905 sul server remoto.

Nota: dovrai avviare una sezione SSH ogni volta per rendere la connessione sicura.

OS X

Sul tuo Mac, apri Terminal.

Inserisci le seguenti informazioni di connessione, assicurandoti di sostituire your_server_ip con l’indirizzo IP del tuo server remoto:

ssh -L 5900:your_server_ip:5905 janevnc@your_server_ip -N

Inserisci la password UNIX di janevnc. La connessione sembrerà bloccarsi; puoi tenerla in esecuzione per tutto il tempo in cui usi il desktop remoto.

Passa ora alle istruzioni del visualizzatore VNC.

Windows

Per rendere sicura la sessione VNC di janevnc, assumeremo che il computer Windows locale abbia PuTTY installato. PuTTY è gratuito e può essere scaricato da qui.

Se le sessioni VNC e di terminale di janevnc non sono già chiuse, chiudile ora.

Avvia PuTTY. Nella schermata della sessione, assicurati di specificare l’indirizzo IP del server e dai un nome descrittivo alla connessione, quindi fai clic sul pulsante Salva per salvare i dettagli della connessione. Nota come abbiamo specificato username@your_server_ip nel campo Hostname:

In seguito, espandi la voce del menu SSH nel pannello di navigazione sinistro e seleziona la voce X11. Questo mostra le proprietà di inoltro X11 per la sessione. Assicurati che la casella di controllo per Enable X11 forwarding sia selezionata. Questo assicura che SSH codifichi il traffico X Windows che scorre tra il server e il client:

Infine, seleziona SSH > Tunnels. Digita 5900 nel campo Source port. Nel campo Destinazione, specificate il nome o l’indirizzo IP del vostro server, seguito da due punti e dal numero di porta VNC per l’utente previsto. Nel nostro caso, abbiamo specificato your_server_ip:5905.

In alternativa, è possibile utilizzare la porta 5902. Il 2 in questo caso sarebbe il numero di visualizzazione per janevnc (ricordate il messaggio visualizzato quando janevnc ha eseguito il comando vncserver).

Fate clic sul pulsante Add e la mappatura verrà aggiunta sotto Forwarded ports. Qui è dove stiamo aggiungendo il port forwarding per la sessione SSH; quando l’utente si connette a localhost alla porta 5900, la connessione sarà automaticamente tunnellizzata attraverso SSH alla porta 5905 del server remoto.

Torna agli elementi Sessions e salva la sessione per janevnc. Cliccate sul pulsante Open e si aprirà una nuova sessione di terminale per janevnc. Accedi come janevnc con l’appropriata password UNIX:

VNC Viewer

Poi avvia nuovamente VNC Viewer. Questa volta, nell’indirizzo del server VNC, digita <^> e lascia che il server VNC scelga il metodo di crittografia:

Clicca il pulsante Connect.

Avrai ancora la finestra di dialogo che ti avverte di una sessione non criptata, ma questa volta puoi tranquillamente ignorarla. VNC Viewer non conosce la porta a cui viene inoltrata (questa è stata impostata nella sessione SSH appena iniziata) e presume che tu stia cercando di connetterti alla macchina locale.

Accettando questo avvertimento mostrerà la familiare richiesta di password. Inserisci la password VNC di janevnc per accedere al desktop remoto.

Come fai a sapere che la sessione era criptata? Se ci pensate, avevamo impostato il port forwarding nella sessione SSH. Se non fosse stata stabilita una sessione SSH, il port forwarding non avrebbe funzionato. Infatti, se si chiude la finestra del terminale e si esce dalla sessione PuTTY poi si prova a connettersi con il solo VNC Viewer, un tentativo di connessione a localhost:5900 mostrerebbe il seguente messaggio di errore:

Quindi, se la connessione localhost:5900 funziona, si può essere sicuri che la connessione è criptata.

Ricorda che vorrai stabilire prima la connessione SSH ogni volta che usi VNC, per essere sicuro che la tua connessione sia sempre criptata.

Conclusione

Accedere al tuo sistema CentOS Linux da un front-end GUI può rendere l’amministrazione del sistema molto più semplice. Puoi connetterti da qualsiasi sistema operativo client e non devi dipendere da pannelli di controllo di hosting basati sul web. VNC ha un’impronta molto più piccola rispetto alla maggior parte dei pannelli di controllo.

Anche se abbiamo mostrato come due utenti normali possono connettersi con i loro client VNC, questo è difficilmente pratico in ambienti di produzione seri. In realtà, gli utenti avranno applicazioni o browser personalizzati per accedere al server. Eseguire un certo numero di servizi VNC per ogni utente crea anche un inutile carico sulle risorse di sistema, per non parlare dei rischi intrinseci ad esso associati.

Se si decide di installare ed eseguire VNC sul proprio server Linux di produzione, si consiglia vivamente di utilizzarlo solo per scopi amministrativi.

.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.