Table of Contents

Tunnel SSH

Tunnel SSH con Local Port Forwarding

Comando di esempio

ssh -v -N -L 0.0.0.0:2080:10.10.15.5:2080 10.10.15.16

Scopo

Questo comando crea un tunnel SSH locale che permette di rendere disponibile, sul computer locale, un servizio presente su una macchina remota raggiungibile tramite il server SSH.

Il flusso della connessione è il seguente:

Client
  │
  │ localhost:2080 (o qualsiasi IP locale grazie a 0.0.0.0)
  ▼
Tunnel SSH
  │
Server SSH (10.10.15.16)
  │
  ▼
Host remoto (10.10.15.5:2080)

Qualsiasi connessione verso la porta 2080 del client viene trasportata nel tunnel SSH fino al server 10.10.15.16, che a sua volta si collega al servizio in ascolto su 10.10.15.5:2080.

Significato delle opzioni

La sintassi generale è:

-L [indirizzo_locale:]porta_locale:host_destinazione:porta_destinazione

Nel comando di esempio:

-L 0.0.0.0:2080:10.10.15.5:2080

i parametri significano:

10.10.15.16 è il server SSH a cui il client si connette e attraverso il quale viene creato il tunnel.

Flusso della connessione

  1. il client apre una connessione SSH verso 10.10.15.16;
  2. il client apre la porta locale 2080;
  3. un'applicazione si connette a localhost:2080 (oppure all'indirizzo IP del client, poiché è stato utilizzato 0.0.0.0);
  4. il traffico viene incapsulato nella connessione SSH;
  5. il server SSH (10.10.15.16) apre una connessione verso 10.10.15.5:2080;
  6. le risposte seguono il percorso inverso fino al client;

Nota su `0.0.0.0`

L'utilizzo di 0.0.0.0 rende la porta accessibile da tutte le interfacce di rete del client e non solo da localhost.

Ad esempio, se il client ha indirizzo IP 192.168.1.100, sarà possibile collegarsi sia a:

localhost:2080

sia a:

192.168.1.100:2080

Questo comportamento può essere utile quando altri computer della rete devono utilizzare il tunnel, ma aumenta la superficie di esposizione del servizio. Se non è necessario condividere il tunnel con altri host, è generalmente preferibile utilizzare:

-L 127.0.0.1:2080:10.10.15.5:2080

In questo modo la porta sarà raggiungibile esclusivamente dal computer locale.