giovedì 9 aprile 2009

Tunnel SSH

Nel mondo delle autostrade informatiche mi sembra il minimo che ogni tanto si possano trovare dei tunnel, no? Cosa sono questi tunnel SSH e a cosa servono? E, soprattutto: ce li possiamo costruire sa soli o serve la concessione edilizia?
Nessuna concessione, tanquilli. Innanzi tutto cos'è SSH? E' l'acronimo di Secure SHell e in pratica è un protocollo che permette di stabilire una connessione cifrata con un host, permettendo passaggio sicuro di informazioni. Ha da tempo rimpiazzato il vecchio telnet per quanto riguarda i terminali remoti, in quanto molto più sicura rispetto a quest'ultimo, specie in tempi in cui la privacy è vista con particolare attenzione.Veniamo al sodo. A cosa può servire un tunnel SSH? Uno degli usi più diffusi è il cosiddeto "address binding", tramite il quale si può collegare una porta della macchina locale a un indirizzo e una porta di un qualunque host raggiungibile da una macchina remota. Ma forse è più chiaro con un esempio.
Supponiamo che siamo in ufficio dove ci bloccano la connessione a un determinato servizio (ad esempio VNC, che lavora di default sulla porta 5900). Però ci è concesso di utilizzare SSH per collegarci a qualche macchina che a sua volta ha la porta 5900 aperta verso l'esterno. Abbiamo tutti gli ingredienti per poter costruire un tunnel SSH che collega la porta 5900 di localhost alla porta 5900 della macchina dove vogliamo usare VNC.
Ricapitolando, abbiamo tre attori:
  • La macchina (L)ocale (con porta 5900 chiusa verso l'esterno)
  • La macchina (R)emota su cui vogliamo connetterci con VNC
  • Una macchina che useremo come (P)onte per costruire il tunnel SSH
Quello che faremo è costruire un tunnel SSH da L a P dicendo a SSH di inoltrare la porta 5900 su R. La sintassi è questa:

$ ssh -L 5900:macchina_remota:5900 utente@macchina_ponte


Una volta collegati all'host possiamo iniziare a usare VNC con il comando:


$ xvnc4viewer localhost


Il protocollo SSH permette anche di attivare la compressione, cosa che ci potrebbe dare una mano, specialmente nel caso di connessioni particolarmente lente. Dovendola attivare, consiglio di impostare il massimo valore per la compressione, dato che in genere il collo di bottiglia non è la CPU ma la rete.


$ ssh -L 5900:macchina_remota:5900 utente@macchina_ponte -C -o CompressionLevel=9


Ovviamente il tutto funziona anche se la macchina su cui vogliamo connetterci con VNC è la stessa su cui abbiamo accesso in SSH (tipicamente il PC di casa nostra). Cambia solo leggermente la sintassi, in quanto adesso P coincide con R (quindi R=localhost).


$ ssh -L 5900:localhost:5900 utente@macchina_ponte -C -o CompressionLevel=9

4 commenti:

Kozma_88 ha detto...

Ciao! Oddio... sinceramente non so cosa sia un tunnerl SSH, già, però mi piacerebbe saperlo! Comunque... ho visto che hai visitato il mio profilo e quindi ho visitato il tuo ed ho notato che anche tu hai un Blog su Blogspot. Sinceramente penso che sia una cosa bellissima che qualcuno scriva ciò che pensa, che sia riguardante la sua persona o alcuni suoi particolari interessi!
Mi sono aggiunto ai tuoi sostenitori perchè penso che questo tuo Blog sia di un utilità eccezzionale se veramente si ha voglia di imparare!

Se a te non darebbe fastidio potrei pubblicare l'Url del tuo Blog alla tabella "Blog Amici" del mio Blog!

Ancora complimenti :)

Lo Scuro ha detto...

Non mi da affatto fastidio, anzi ricambio volentieri il favore. Buon tunnelling SSH ;)

johnsnoopy ha detto...

Bè il vecchio telnet un pò lo rimpiango...alla fine ci si potevano fare cose davvero carine....

Lo Scuro ha detto...

@johnsnoopy: Guarda che non è morto il vecchio telnet :P

Posta un commento

BlogItalia.it - La directory italiana dei blog