lunedì 15 ottobre 2007

SSH: qualche esempio

SSH (Secure SHell) è un protocollo che permette di stabilire una sessione remota cifrata ad interfaccia a linea di comando con un altro host.Il client SSH ha una interfaccia a linea di comando simile a quella di telnet e rlogin, ma l'intera comunicazione (ovvero sia l'autenticazione che la sessione di lavoro) avviene in maniera cifrata. Per questo motivo, SSH è diventato uno standard de facto per l'amministrazione remota di sistemi unix e di dispositivi di rete, rendendo obsoleto il protocollo telnet, giudicato troppo pericoloso per la sua mancanza di protezione contro le intercettazioni e gli attacchi Man In The Middle (MITM). Il client ed il server SSH sono installati, o è possibile installarli, su molte versioni di UNIX, tra cui Linux e Mac OS X, ma anche su Microsoft Windows, ed è inoltre disponibile come strumento di amministrazione su alcuni apparati di rete.
La sintassi su sistemi UNIX-like è la seguente:

% ssh [opzioni] nomeutente@host [comando]


dove con "%" si intende il prompt della shell utilizzata.
Alcuni esempi di utilizzo:

ssh nomeutente@host


E' la forma più semplice: si apre una connessione verso l'host specificato, autenticandosi come utente nomeutente.

ssh host1 -L 10022:host2:22


Questa funzionalità è nota come port forwarding. Con questo comando ci si collega ad host1, inoltrando la porta 10022 della macchina in cui lanciamo il client ssh alla porta 22 di host2 attraverso un canale sicuro tra client e host1.
Un esempio d'uso è il seguente. È possibile creare un tunnel se SERVER SSH ha abilitato il forwarding. Questo è normalmente possibile senza installare nessun pacchetto aggiuntivo.Ad esempio, nel seguente scenario

CLIENT --[rete insicura]--> ssh server --[rete sicura]--> TERZA MACCHINA

Se vogliamo utilizzare un desktop remoto sulla terza macchina basta che ci connettiamo al server ssh includendo un tunnel tra una porta locale della macchina dove lavoriamo e la porta 3389 della TERZA MACCHINA. Dopo di che basterà avviare il client RDP e connettersi a localhost:(porta scelta). Il client ssh locale stabilirà una connessione criptata con il server, creerà un tunnel all'interno di questa connessione criptata, ed invierà la connessione RDP su questo tunnel. Il server a sua volta stabilirà una normale sessione TCP con la terza macchina sulla porta richiesta. Come risultato, il client RDP verrà messo in comunicazione con la terza macchina. La connessione tra ssh server e terza macchina non sarà criptata, per cui è opportuno che la comunicazione tra queste due macchine non sia a rischio di intercettazione. La terza macchina vedrà la connessione TCP provenire dal server ssh invece che dal client.

Nessun commento: