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.






Inserire la password di amministratore:



Password:

Riga:


Fatal error: Call to undefined function sqlite_open() in /membri/giacobbe85/include/commenti.inc.php on line 324