HotNews

Loading...

mercoledì 20 luglio 2011

Piccoli trucchi con SSH

Quante volte avete avuto la necessità di dovervi collegare ad una macchina della rete interna dell'ufficio da una postazione esterna e per farlo avete dovuto collegarvi prima ad una macchina raggiungibile da Internet e poi da lì eseguire una nuova connessione verso la macchina interna? Vi siete mai chiesti se esiste un modo per fare tutto questo con un solo comando? La risposta è SI e, ovviamente, con Linux! :-)

Per risolvere questo problema ci viene in aiuto l'opzione -t del client SSH che forza l'allocazione di uno pseudo-tty e redirige l'output sul client.
Di conseguenza per stabilire la connessione SSH bisognerà impartire il seguento comando:
ssh -t user1@macchina_esterna.example.com ssh user2@macchina_interna
In questo modo verrà chiesta la password prima della macchina esterna e poi quella di quella interna e sembrerà di essere collegati direttamente alla macchina interna.
E se invece avessimo bisogno di accedere a un servizio di una macchina interna alla rete? Come ad esempio un server WEB interno? La soluzione potrebbe essere quella di creare un "tunnel" SSH (quindi cifrato) fino alla macchina raggiungibile da Internet e fare il forward della porta del servizio verso il tunnel. Per fare questo da una finestra di terminale stabiliamo la connessione SSH con la macchina raggiungibile e apriamo una porta locale a cui viene collegata la porta del servizio della macchina interna.
ssh -L <porta_locale>:<host_interno>:<porta_remota> user@remote_host
In questo modo se ci colleghiamo alla porta locale possiamo interrogare il servizio nella rete interna.
Facciamo un esempio pratico per chiarire meglio il concetto. Abbiamo la macchina raggiungibile da Internet chiamata macchina_esterna.example.com e un servizio WEB sulla rete interna all'indirizzo 192.168.0.10 che risponde alla porta 80. Dalla nostra postazione di casa ci colleghiamo quindi in questo modo:
ssh -L 1080:192.168.0.10:80 user@macchina_esterna.example.com
Inserita la password sulla nostra macchina in locale possiamo notare che è stata aperta la porta 1080 a cui potremo collegarci. Possiamo aprire il nostro browser preferito e scrivere l'URL http://localhost:1080/ per vedere il servizio sulla rete interna.

Articoli correlati

2 commenti:

  1. Interessante... grazie!

    RispondiElimina
  2. Mitico
    Davvero molto utile.

    Grazie
    Peppe

    RispondiElimina