IMC!


Contenuti


Foto

 







Curiosando...
Novita  Novità Link  Link Blog  Blog English  Español 
SSH tunneling per VNC e Remote Desktop

Introduzione
Immaginiamo di avereuna situazione come mostrato in figura:

Schema 1

Un computer, che chiameremo Client, è protetto da un firewall, che blocca tutte le porte in uscita ad eccezione di alcune. Un altro computer, che chiameremo Server, è posto all'esterno del firewall, e esegue dei servizi ai quali vogliamo accedere dal client, come VNC o Remote Desktop di Microsoft. A causa del firewall, che blocca tutte le porte in uscita ad eccezione della 80 e probabilmente di poche altre, risulta impossibile la connessione tra i due pc.

Supponendo che esista almeno un'altra porta aperta in uscita sul firewall, possiamo pensare di utilizzare questa soluzione: creare un tunnel tra il client e il server sfruttando il protocollo SSH. In breve, ciò che realizzeremo è questo:
  1. I client VNC Viewer o Remote Desktop Client si collegano a un client SSH presente sul nostro computer client.
  2. Il client SSH inoltra tutto il traffico attraverso una sola porta (usualmente la 22) al server SSH, posto sul computer server.
  3. Il server SSH inoltra tutto il traffico ai server VNC o Remote Desktop.
Probabilmente una immagine è più esplicativa di mille parole:

Schema 1

Alcune porte che tipicamente potrebbero essere aperte sono la 21 (FTP), 22 (SSH), 23 (Telnet), 8080 (amministrazione di router), 443 (HTTPS), 110 (POP3), 25 (SMTP), e altre.
Se sul nostro computer server non è in esecuzione nessun webserver (come Apache) possiamo anche pensare di utilizzare la porta 80. Tuttavia questa deve essere l'ultima opzione, in quanto potrebbe creare problemi.

Questo testo non vuole essere una descrizione dettagliata del protocollo SSH, ma una semplice guida su come realizzare praticamente l'idea proposta. Si presuppone che il lettore conosca già le nozioni di base sul protocollo SSH e sulle reti.

Passo 1: Installazione e uso di una sessione SSH da terminale

Dobbiamo innanzitutto realizzare una connessione SSH tra il client e il server. Rimando alla mia guida Installare e utilizzare un server SSH su Windows per questa fase.

Passo 2: Uso del tunnel SSH con VNC e Desktop Remoto di Microsoft
  1. In Putty, seleziona Connection, SSH, Tunnels. Inserisci questi valori:

    Source port: una porta a caso non utilizzata sul pc client. Ad esempio 1234 e 5678. Questa saranno le porte che Putty renderà visibili a VNC Viewer o Remote Desktop Client sul nostro computer client.

    Destination: L'indirizzo e la porta, visti da OpenSSH, del server sul quale risiedono VNC Server e Remote Desktop Server. In questo caso, poichè OpenSSH è eseguito sullo stesso pc di VNC Server, inserisci l'indirizzo di loopback (quello che identifica il pc stesso), e la porta utilizzata da VNC o RDP. Dunque: 127.0.0.1:5900 oppure 127.0.0.1:3389.

    Selezioniamo anche l'opzione Local.
  2. Avvia la sessione di Putty così impostata.
    Ricapitoliamo cosa abbiamo fatto: abbiamo creato una connessione protetta con protocollo SSH tra il pc client (dove girano Putty, VNC Viewer e Remote Dektop Client) e il server (dove girano openSSH, VNC Server e Remote Desktop Server). Oltre a permettere lo scambio di dati tra i due pc, SSH ha trasportato delle porte dal server (la porta 5900 o 3389) al client (la porta 1234 o 5678), passando per la porta 22. Ora la porta 5900 e la porta 3389 del server sono disponibili sul client, e si chiamano 1234 o 5678.
  3. Avvia VNC (o Remote Desktop Client) sul computer client. Scrivi l'indirizzo 127.0.0.1:1234 (dato che la porta 1234 è disponibile sul client stesso). VNC Viewer dovrebbe collegarsi correttamente al server. Lo stesso ragionamento vale, con la porta 5678, per Remote Desktop.
NOTA: Remote Desktop Client non permette, di default, le connessioni loopback (cioè al pc stesso). Per aggirare questo problema si può scegliere di utilizzare una porta non standard (cioè non la 3389). Ad esempio 127.0.0.0:5678, come fatto in questa guida.






Commenti

1 - Anonimo   SitoVen 01 Giu 2012 - 15:54:48  

provate questo http://www.ammyy.com/it

Per esempio, Ammyy Admin non richiede installazioni o cambiamenti di impostazioni specifiche.
E possibile accedere ai desktop remoti dei computer oltre i gateway NAT senza mappatura delle porte.


2 - MarcoMer 21 Mar 2012 - 01:25:59  

Veramente un'ottima guida, molto chiara e semplice. Mi ha aiutato moltissimo. Grazie!


3 - betanVen 17 Set 2010 - 18:06:00  

Sto testando il tutto su un Windows XP SP3 guest (MS Virtual PC) di un Windows XP SP3 host. Il guest fa le funzioni di SSH server e di VNC Server o Remote Desktop Server. Funziona con VNC server (solo con Real e non con Tight installato sul guest). Non funziona bene con Remote Desktop nel senso che sull'host mi appare la prima schermata di autenticazione. Dopodiché il guest viene normalmente bloccato sulla schermata di autenticazione ma la schermata di ritorno sull'host rimane nera (in sintesi: mi collego al guest ma non vedo il suo desktop). Ne deduco che é un problema proprio del Remote Desktop (il tunnel SSH funziona perfettamente).
Come posso fare?


Scrivi un commento

Pui scrivere quì sotto un commento all'articolo che hai appena letto. Non sono abilitate smile, immagini e link. La lunghezza massima del commento è 4000 caratteri. La buona educazione è benvenuta, tutti i commenti offensivi saranno cancellati.

Your comment (lascia bianco!):
Utente (max 25 caratteri, obbligatorio)
Sito web (max 255 caratteri, facoltativo)
e-Mail (max 255 caratteri, facoltativa, non sarà pubblicata) Your opinion (lascia bianco!):
Commento (max 4000 caratteri, obbligatorio):





Valid HTML 4.01 Transitional
E-Mail - 5.95 ms

Valid HTML 4.01 Transitional