Levysoft

TeamViewer: alternativa a VNC per remotizzare il PC di casa dal lavoro senza nessuna configurazione e superando anche i firewall più potenti

Sinora, per controllare e amministrare il proprio computer a distanza, accedendo ai vari servizi disponibili su di esso, ho sempre puntato a servizi come VNC (con le sue varianti RealVNC, UltraVNC, TightVNC), il software di controllo remoto per eccellenza, o in caso di presenza di Windows XP Pro, al più performante (almeno nelle intranet) e reattivo protocollo RDP, con il suo Remote Desktop Connection di Microsoft. Se però questo genere di soluzione risulta essere ottimale nelle LAN (casalinghe o aziendali che siano) i primi problemi si pongono quando si vuole remotizzare una macchina da una postazione che non risiede nella stessa rete. Il caso più tipico è quello di voler remotizzare dalla propria postazione lavorativa il proprio PC di casa, magari anche solo per leggere la posta o per recuperare quella relazione importante che ci si è dimenticati di portarsi al lavoro.

Lo svantaggio di passare tra i router

Infatti, tutte queste tecniche hanno un grosso svantaggio: necessitano la configurazione di un router che deve essere istruito per instradare il traffico verso la macchina da controllare. Se questo risulta essere uno svantaggio per i neofiti delle rete (con qualche guida su internet è comunque facile superare il problema), risulta un problema insormontabile se si dispone anche di un router con un firmware vecchio o buggato (o semplicemente bloccato come molti di quelli che fornisce Alice ADSL) che non permettono il NAT delle porte (tipicamente il port forwarding di 5800 e 5900). Per finire, dato che solitamente al PC viene assegnato un indirizzo IP pubblico dinamico, occorrerà usare servizi come quelli offerti da No-Ip (o lo storico DynDNS) in modo da avere associato ad un dominio di terzo livello come xxx.no-ip.com il vostro ip dinamico, con lo scopo di avere uno pesudo “ip” statico a cui far puntare il nostro client VNC. Insomma, ricapitolando, occorre almeno installare due software (VNC per la remotizzazione e No-IpDUC per risolvere un indirizzo ip dinamico con un dominio di terzo livello) e quindi configurare correttamente le porte sul router/firewall.

Se non avessi avuto problemi con il mio router sicuramente avrei adottato la soluzione VNC/NO-IP ma dopo vari giorni di prove avevo finalmente capito che esisteva un particolare bug nel firmware del mio router (e mai patchato) che mi impediva di procedere con questa tecnica, laboriosa ma al contempo consolidata.

EchoVNC

In realtà, esistono anche altri sistemi in grado di saltare il filtro di qualsiasi router o firewall. Uno tra questi è il progetto opensource EchoVNC (basato sulle DLL opensource echoWare) in grado di garantire l’uso del software di controllo remoto VNC anche tra macchine protette da un firewall. In pratica, grazie ad EchoVNC è possibile raggiungere a distanza un pc anche attraverso internet senza dover configurare il reindirizzamento di porte sul router o di creare eccezioni sul firewall. Ma da quanto ho potuto leggere, per usare EchoVNC è necessario disporre di un “echoserver” che funge da nodo per le connessioni tra viewer e server. L’echoserver altro non è che un programmino di pochi kb che si mette in ascolto su una porta (occorre però fare in modo che sia raggiungibile dall’esterno e quindi aprire le corrispondenti porte sul router/firewall). Ma il vantaggio è che è possibile installarlo dove si vuole: sul pc che si usi per connettersi al server, sul server stesso che deve essere raggiunto oppure su un terzo pc.

Se è vero questa soluzione è definita Firewall Friendly, poiché anche se necessita comunque di una configurazione sul Router/Firewall (l’unica cosa che deve essere vista da internet è l’echoserver), questa, però, può essere fatta su qualsiasi macchina che è collegata ad una rete su cui si ha il controllo, nel mio caso questa soluzione era inadeguata in quanto ho il router bloccato e la rete aziendale da cui solitamente accedo ha delle policy molto restrittive. Inoltre, mentre il server ed il viewer sono free (licenza GPL) l’echoserver è soggetto a limitazioni (10 minuti per connessione) se non si fa la registrazione (50$ per avere utilizzo illimitato ed a vita in ambiente non commerciale). Inoltre, uno svantaggio da non sottovalutare è che la soluzione con EchoVNC risulta essere piuttosto lenta poiché di fatto le connessioni viaggiano alla velocità di upload dove si è installato l’echoserver (e di solito in ambito home, l’upload è sempre carente).

TeamViewer

Fortunatamente, ho scoperto che esiste anche una alternativa semplice e veloce al classico VNC e all’evoluto EchoVNC: si chiama TeamViewer e sono rimasto davvero sbalordito dalla sua facilità di utilizzo e dalle sue prestazioni. In realtà Teamviewer è analogo a EchoVNC (poiché di fatto ne ricalca l’architettura di base) ma ha dalla sua una semplicità disarmante (riesce a collegarsi anche a computer che si trovano dietro i firewall più potenti) e il fatto di essere completamente gratuito per gli usi non commerciali. Il produttore dichiara che il programma utilizza un algoritmo di protezione a 256 bit per lo scambio dei dati, il che rende le connessioni piuttosto sicure. Per finire Teamviewer è disponibile sia per la piattaforma Windows che per quella Mac OS X.

Il programma server è molto leggero e gira tranquillamente su pc datati o sottodimensionati (come può essere un computer della serie Asus EeeBox) e funziona anche senza usare un account con privilegi di Amministratore. La versione Free permette di gestire una sessione alla volta (più che sufficienti per i miei scopi) e visualizza un popup ad ogni collegamento che vi avverte che state usando una versione non per usi commerciali (niente di fastidioso).

In ogni caso, tutte le versioni TeamViewer consentono il trasferimento completo dei dati, vale a dire intere cartelle e strutture di directory (sembra che per aumentare la velocità, tutti i file vengano automaticamente compressi prima della trasmissione).

Infine, richiede una larghezza di banda di appena 8 KB/s nella Qualità Standard di visualizzazione del desktop remoto!

La prima volta che si lancia TeamViewer, verrà generato un identificativo numerico (ID) di 9 cifre (univoco per macchina e che resterà sempre lo stesso) e una password che cambia ogni volta che si riavvia il programma da comunicare alla persona che deve prendere il controllo remoto. Ho letto che il fatto che la password cambi ad ogni avvio, ha un po’ spiazzato molti utilizzatori perché, sebbene si possa settare il programma in modo che parta ad ogni avvio di Windows, se il codice di accesso cambia ogni volta è necessario che qualcuno stia li a leggere la nuova password per permettere l’accesso da remoto. In realtà, è sufficiente che si entri nelle preferenze del programma ed è possibile impostare una password statica anziché dinamica, ed il gioco è fatto!

Infine, cosa non da poco (alcune versioni di VNC infatti non lo gestiscono) prevede la funzione di copia e incolla tra il server e client.

L’unico dubbio che inizialmente mi sono posto era se fosse sicuro passare per un server di terze parti privato: ma se è vero che il programma utilizza un algoritmo di protezione a 256 bit per lo scambio dei dati, allora non ci dovrebbero essere problemi per la propria privacy. Invece, l’indubbio vantaggio di usare un server proprietario è che, a differenza della architettura offerta da EchoVNC, qui abbiamo un server centrale (che ovviamente non è un semplice PC) che non costituisce alcun collo di bottiglia per l’upload dal server, il che rende la trasmissione dati (che già dispone di una banda molto bassa) molto veloce.

Se vi state chiedendo come mai TeamViewer non necessità di alcuna configurazione sul router/firewall la risposta è semplice: il servizio si poggia sulla porta 80 per comunicare i dati e visto che questa è la porta di default per il protocollo HTTP, viene sempre lasciata aperta su tutti i router/firewall!

Se volete approfondire l’argomento dovete comunque sapere che TeamViewer non è l’unico programma per la condivisione desktop con queste caratteristiche: tra tutti posso citare i vari LogMeIn, CrossLoop e Mikogo. Ognuno ha i suoi vantaggi e svantaggi (qui e qui potete avere qualche raffronto), ma quel che è certo è che TeamViewer è veramente facile da configurare e funziona egregiamente nell’architettura di rete che ho a disposizione.