Port forwarding o tunnelling

Il port forwarding o tunnelling e' un modo per inoltrare traffico TCP insicuro attraverso SSH per renderlo sicuro e non decifrabile. Esistono due tipi di port forwarding, local e remote, noti rispettivamente come outgoing tunnel (tunnel in uscita) e incoming tunnel (tunnel in entrata).

Local port forwarding

Il mio obiettivo e' raggiungere una servizio su una macchina ed una porta che non vedo direttamente, quindi passo per una macchin a cui ho accesso e da questa raggiungo il servizio (la macchina a cui ho accesso raggiunge il servizo a cui voglio arrivare).

ssh mio-nome-utente-sul-server@10.0.0.2  -L  8081:10.0.0.1:8080

http://localhost:8081 ---> va su http://10.0.0.1:8080 tramite ssh ed il server 10.0.0.2

e' possibile fare il foward di piu' porte

ssh mio-nome-utente-sul-server@10.0.0.2  -L  8081:10.0.0.1:8080  -L  81:10.0.0.1:80

Remote port forwarding

In questo caso volgio esporre, un servizio dalla mia macchina ma per qualche ragione non sono visibile al fruitore, quindi espongo il servizio su una macchina remota e i fruitori lo consutano tramite questa macchina.

ssh -R 8081:127.0.0.1:8080 user@10.0.0.2

a questo punto il mio servizio e' consultabile sulla dalla macchina http://10.0.0.2:8081