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:
$ 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
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
$ 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:
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 :)
Non mi da affatto fastidio, anzi ricambio volentieri il favore. Buon tunnelling SSH ;)
Bè il vecchio telnet un pò lo rimpiango...alla fine ci si potevano fare cose davvero carine....
@johnsnoopy: Guarda che non è morto il vecchio telnet :P
Posta un commento