Amministrare in sicurezza un sistema remoto con UltraVNC: utilizzo della crittografia

I software per la gestione remota disponibili oggi in Rete sono molteplici. Già Windows mette a disposizione degli utenti due strumenti: Desktop remoto ed Assistenza remota.

I software per la gestione remota disponibili oggi in Rete sono molteplici. Già Windows mette a disposizione degli utenti due strumenti: Desktop remoto ed Assistenza remota. Abbiamo presentato il funzionamento di entrambe le applicazioni in questo articolo chiarendo come, ad esempio, Desktop remoto non sia assente nelle versioni più economiche di Windows Vista e Windows 7 (i.e. Home e Starter).
Tra i software più pratici da utilizzare, c’è sicuramente TeamViewer che, anche nella versione gratuita, mette a disposizione un buon numero di funzionalità (ved. questo nostro articolo in proposito).

Tra le applicazioni basate su VNC, UltraVNC è una delle migliori dal momento che non introduce alcun tipo di limitazione (viene distribuita sotto licenza GNU GPL) ed integra funzionalità vacanti in molti software della sua categoria.

Chiariamo immediatamente un punto d’importanza cruciale. UltraVNC è un’applicazione assolutamente benigna che non include componenti potenzialmente dannosi. Alcuni motori di scansione antivirus ed antimalware, talvolta “bollano” – ancor’oggi – il programma come sospetto.
Si tratta di segnalazioni che mettono in luce il fatto che UltraVNC possa essere utilizzato, anche da parte di utenti malintenzionati, per controllare a distanza un sistema senza l’autorizzazione del legittimo proprietario. Ciò, però, può accadere nel caso di qualunque software di gestione remota, se installato all’insaputa dell’utente oppure se configurato in modo scorretto.
Com’è possibile verificare esaminando l’analisi di VirusTotal, sono ad oggi quattro i motori antivirus che insistono nel classificare UltraVNC come una minaccia. In generale, però, come si vede, l’applicazione viene o riconosciuta come RealVNC oppure classificata con la dizione “not-a-virus” (non si tratta di un virus, Kaspersky).
Il modulo viewer di UltraVNC (consente di connettersi ad un server remoto) non viene erroneamente classificato come una minaccia da nessun motore antivirus (fatta eccezione per ByteHero). E’ il modulo server che viene indicato come potenzialmente pericoloso da quattro motori: Antiy-AVL, ByteHero, Kaspersky e VIPRE.
Fatta questa doverosa premessa, è possibile passare al download ed all’installazione di UltraVNC.

Per iniziare a lavorare con UltraVNC, suggeriamo di scaricare i seguenti due pacchetti compressi:
UltraVNC per versioni Windows x86 (a 32 bit)
UltraVNC per versioni Windows x64 (a 64 bit)
Entrambe le versioni includono sia il modulo client che il server. Il primo dovrà essere utilizzato sui sistemi dai quali si desidera amministrare il sistema server remoto. Il modulo server, invece, eseguito sulla macchina da gestire in remoto si porrà in ascolto accettando le connessioni in ingresso autorizzate.
I file contenuti nel primo archivio compresso dovranno essere utilizzati sulle macchine Windows che utilizzano una versione del sistema operativo a 32 bit mentre il contenuto del secondo file Zip potrà essere impiegato sulle piattaforme x64 (ved. anche questo nostro articolo).

Estraendo il contenuto del file compresso sul disco fisso della macchina da amministrare (ad esempio nella cartella C:\UltraVNC), quindi eseguendo il file WinVNC.exe si potrà configurare il programma in modo tale da accettare le connessioni in ingresso.

Dopo aver avviato il programma, apparirà una finestra d’allerta simile alla seguente:

Windows rileva che UltraVNC intende mettersi in ascolto attivando funzionalità server. Per questo, viene richiesto all’utente di esprimersi in tal senso accettando tale comportamento oppure negandolo completamente. Per impostazione predefinita, Windows consente – una volta eseguito – che UltraVNC si comporti come un’applicazione server allorquando il sistema in uso risulti collegato ad una rete locale (domestica od aziendale). Il funzionamento in modalità server di UltraVNC, invece, viene negato – di default – quando si stia impiegando una rete classificata come “pubblica”.
Cliccando sul pulsante Consenti, Windows creerà delle regole di comunicazione per consentire il corretto funzionamento di UltraVNC. Nel caso di Windows 7, ad esempio, è possibile controllare tali regole digitando firewall nella casella Cerca programmi e file del menù Start quindi selezionando Windows Firewall con sicurezza avanzata.
Alla comparsa della successiva finestra, cliccando sulla voce Regole connessioni in entrata, si troveranno quattro nuove regole per VNC Server for Win32:

Le prime due bloccano il traffico VNC in ingresso sulle interfacce di rete pubbliche mentre le altre due consentono le comunicazioni in ingresso, destinate ad UltraVNC, che provengano da reti aziendali e domestiche e che utilizzino qualunque porta TCP od UDP.

Facendo doppio clic su ciascuna regola è possibile eventualmente impostare delle restrizioni limitando gli indirizzi IP che possono connettersi (scheda Ambito):

A questo punto, apparirà la schermata per la configurazione del modulo server di UltraVNC.

Configurazione dei moduli server e client

La configurazione del modulo server di UltraVNC è piuttosto semplice: non fatevi impressionare dalle tante regolazioni che vengono proposte:

Il programma, infatti, già propone – in modo predefinito – delle impostazioni adatte alla maggior parte delle situazioni. In particolare, nel riquadro Authentication, è possibile definire la password da utilizzare per proteggere la macchina server. Conoscendo tale password, chiunque può divenire in grado di collegarsi al sistema e prenderne il controllo in modalità remota.
Il protocollo VNC, però, consente solamente l’impiego di password lunghe sino ad otto caratteri. Anche se si digita una parola chiave più lunga, questa sarà automaticamente troncata prendendo in considerazione solamente i primi otto caratteri.
Per superare questa limitazione, suggeriamo di attivare l’impiego di uno speciale algoritmo crittografico che non solo consentirà di proteggere il flusso dei dati tra client e server utilizzando una coppia di chiavi (pubblica-privata) ma darà modo di specificare una passphrase più lunga e complessa (lo vedremo più avanti).

UltraVNC è già pronto per accettare connessioni in ingresso. Per impostazione predefinita (riquadro Incoming connections), il software provvede a porsi in ascolto su una porta scelta arbitrariamente (a partire dalla TCP 5900; modalità Auto) nonché ad attivare il JavaViewer. Anziché controllare il server ricorrendo al software viewer, cioé, sui sistemi ove sia stata installata la piattaforma Java JRE, la macchina host potrà essere gestita da un qualunque browser web semplicemente digitando l’URL nomedellamacchina:porta (ad esempio ufficio-1:5900) oppure l’IP locale o remoto seguito sempre dal numero della porta sul quale il componente server di UltraVNC si è posto in ascolto.

Le altre impostazioni sono tutte regolazioni “di contorno”: di default, UltraVNC provvede a nascondere l’immagine usata come sfondo del desktop (Remove wallpapers for Viewers) e disattiva la funzionalità Aero per la gestione degli effetti grafici di Windows Vista e Windows 7.
Attivando la casella Forbid the user to close down WinVNC, è possibile evitare che l’utente remoto possa chiudere il modulo server di UltraVNC mentre nei riquadri When last client disconnects e Multi viewer connections è possibile stabilire come il programma debba comportarsi nel caso in cui più sistemi client si connettano simultaneamente alla macchina host.
Nel primo caso, è possibile definire il comportamento che UltraVNC deve tenere non appena l’ultimo client collegato si scollegherà (nessuna azione, blocco della macchina server o disconnessione) e allorquando dovessero essere rilevate nuove connessioni in arrivo (disconnessione di tutti gli utenti al momento collegati, mantenimento contemporaneo di tutte le connessioni in essere, inibizione dei nuovi tentativi di connessione):

L’icona mostrata nella traybar di Windows suggerisce che UltraVNC è attualmente in esecuzione e pronto a gestire le richieste di connessione in ingresso (il colore dell’icona cambierà non appena almeno un client si sarà collegato).
Facendo doppio clic sull’icona della traybar, l’utente del sistema server può personalizzare alcune impostazioni aggiuntive onde migliorare la velocità di trasferimento dei dati o la qualità visiva.

Per impostazione predefinita, inoltre, UltraVNC è regolato in maniera tale da non occupare il processore per più del 40%.
A questo punto è possibile provare la connessione da una workstation che fungerà da sistema client.

Collegamento da un sistema client utilizzando il modulo “viewer”

Si chiama “viewer” il modulo di UltraVNC che permette di collegarsi alla macchina da amministare in modalità remota. Per avviarlo, è sufficiente estrarre il contenuto dell’archivio Zip compresso sulla macchina client che si utilizzerà per connettersi al sistema remoto (in realtà, sarebbe sufficiente il solo file vncviewer.exe).
Il modulo “viewer“, una volta eseguito facendo doppio clic sul file vncviewer.exe si presenterà con una finestra dalle dimensioni piuttosto compatte:

L’operazione da compiere consiste nel digitare il nome (nel caso di una rete locale) oppure l’IP del sistema sul quale è stato configurato e posto in ascolto il componente server di UltraVNC.

Il programma è dotato di una funzionalità di autoscaling che consente di adattare la risoluzione del sistema remoto a quella del computer locale. Abilitandola, si eviterà che – nel caso in cui la risoluzione video della macchina da amministrare – fosse superiore a quella del personal computer in uso, compaiano le barre di scorrimento orizzontali e verticali.

Cliccando su Connect, non appena la connessione andrà a buon fine, verrà mostrata la finestra per l’inserimento della password precedentemente definita lato server:

Dopo pochi istanti, dovrebbe apparire il desktop della macchina remota da amministrare:

Nella parte superiore della finestra, viene mostrata un’affollata barra degli strumenti che consente di interagire con tutte le funzionalità offerte da UltraVNC.

In particolare, facendo clic sui vari pulsanti, da sinistra verso destra, UltraVNC invierà la combinazione di tasti CTRL+ALT+DEL al server, attiverà o disattiverà la visualizzazione a schermo intero, esporrà la finestra delle opzioni (che possono essere modifiche in tempo reale senza la necessità di una nuova connessione), aggiornerà il contenuto dello schermo, simulerà la pressione del pulsante Start di Windows, invierà una combinazione di tasti scelta dall’utente, mostrerà la finestra di stato, chiuderà la connessione, nasconderà la barra degli strumenti, oscurerà il monitor remoto e disabiliterà le periferiche di input (mouse e tastiera), visualizzerà la finestra per il trasferimento rapido dei dati, cambierà la modalità di visualizzazione (desktop/monitor intero) ed avvierà una sessione di chat.

Verifica dei client collegati sul server

Cliccando con il tasto destro del mouse sull’icona di UltraVNC visualizzata nella traybar, lato server, la voce List all clients consentirà di verificare quanti e quali sistemi sono collegati alla macchina. Selezionando Kill all clients è possibile eventualmente arrestare tutte le connessioni remote mentre facendo clic su Close VNC connections si arresterà completamente il componente server di UltraVNC il quale non risponderà più ad alcuna richiesta di connessione in ingresso.

Facendo riferimento al comando Install service, è possibile decidere di installare UltraVNC come servizio di sistema che sarà automaticamente avviato ad ogni ingresso in Windows indipendentemente dall’account utente utilizzato.

Attivazione della crittografia dei dati con il plugin SecureVNC

Come precedentemente anticipato, sconsigliamo di affidarsi all’utilizzo della password di UltraVNC (finestra delle proprietà server dell’applicazione): è invece bene attivare il plugin che consente di abilitare le funzionalità di cifratura dei dati.

Per procedere, è necessario scaricare uno dei seguenti plugin (a seconda della versione di UltraVNC utilizzata sul sistema server):
Plugin SecureVNC per sistemi a 32 bit
Plugin SecureVNC per sistemi a 64 bit

Il file con estensione .dsm deve essere salavato nella stessa directory di UltraVNC.

Dopo aver avviato il componente server di UltraVNC (WinVNC.exe), si dovrà fare clic col tasto destro del mouse sull’icona visualizzata nella traybar di Windows e cliccare sulla voce Admin Properties.

In corrispondenza del riquadro DSM Plugin, si dovrà selezionare SecureVNCPlugin.dsm quindi cliccare sul pulsante Config.

Nella finestra che apparirà a video, si potrà specificare l’algoritmo crittografico da usare, la lunghezza delle chiavi quindi procedere alla loro generazione cliccando sul pulsante Generate client authentication key.
Saranno così prodotte due diverse chiavi crittografiche: la prima con estensione .pubkey mentre la seconda con estensione .pkey.

La chiave con estensione .pkey dovrà essere copiata, nella directory di UltraVNC, su qualsiasi workstation utilizzata per collegarsi in modalità remota. Nella medesima cartella dovrà essere ovviamente copiato anche il file SecureVNCPlugin.dsm, necessario per il corretto funzionamento del plugin.

Nella casella Passphrase dovrà essere indicata una password sufficientemente lunga e complessa che sostituirà l’impiego della parola chiave di otto caratteri.

A questo punto, sul sistema client – dopo aver eseguito il file vncviewer.exe – si dovrà spuntare la casella Use DSMPlugin selezionando SecureVNCPlugin.dsm dal menù a tendina corrispondente:

Dopo aver cliccato su Connect, la password da inserire non è più quella inizialmente specificata nelle proprietà del server UltraVNC bensì quella definita nella configurazione del plugin SecureVNC (Passphrase).

L’algoritmo crittografico utilizzato sarà subito indicato anche nella finestra di stato di UltraVNC:

Nella barra del titolo dell’applicazione verrà riportato Ultr@VNC Viewer + SecureVNCPlugin.

Grazie all’impiego del plugin, tutte le comunicazione tra server e client e viceversa saranno automaticamente cifrate inibendo eventuali tentativi di sottrazione dei dati messi in atto da utenti malintenzionati. Cliccando sull’ultima icona della barra degli strumenti di UltraVNC, il programma non metterà più in allerta gli utenti segnalando il mancato utilizzo di un algoritmo crittografico e, quindi, la possibilità che un aggressore (usando un software “sniffer”) possa appropriarsi di informazioni riservate. Ciò conferma il fatto che il flusso dati di UltraVNC viene veicolato attraverso un canale di comunicazione protetto.

UltraVNC offre anche uno strumento per la realizzazione di un eseguibile da consegnare agli utenti che non fossero in possesso delle competenze tecniche per eseguire e configurare il modulo server tradizionale del programma. Analizzeremo questa interessante funzionalità in un prossimo articolo, sempre nelle pagine de IlSoftware.it.

Ti consigliamo anche

Link copiato negli appunti