Il tuo indirizzo IP è 162.158.78.211     

SSH remote forwarding

Scritto da Luca Mazzanti il . Inserito in Livello 7 - applicazione . Visite: 3659

In questa nuova pagina vedremo come utilizzare SSH per collegarci ad una sede separata senza mettere mano alle configurazioni di router e firewall.

 

In questa sezione abbiamo visto come ci possiamo collegare quando abbiamo la possibilità di raggiungere pubblicamente il servizio SSH.

Adesso vedremo come sia possibile fare la stessa cosa senza modificare niente su firewall e router.

ssh

Prerequisiti.

il serverSSH deve aver attivato il parametro "GatewayPorts clientspecified"

Supponiamo di avere un pc nella "sede_1.dominio.com" al quale ci vogliamo collegare dal computer della "sede_2.dyndns.com" tuttavia non possiamo utilizzare un collegamento diretto perchè non possiamo creare la regola necessaria nel firewall presente.

Il nostro obbiettivo sarà quello di collegarci ai pc della "sede_1" senza modificare il firewall. 


Caso reale:
Nella "sede_2" abbiamo un IP assegnato dinamicamente. Assicuriamoci di avere un serverSSH installato ed accessibile da internet. Se disponiamo di un router con NAT inoltriamo la porta usata per l'ssh (standard 22) verso il pc interessato.
Configuriamo un account DynDNS o simile, in modo da poterci collegare al "PC della sede_2" indipendentemente dalle variazioni di indirizzi IP.
Ora l'obiettivo sarà quello di connettersi al server ssh sul nostro PC "sede_1" la porta in questione sarà quella standard 22. Se il server della "sede_2" utilizza una porta SSH diversa dalla standard dovremmo inserire l'opzione -P nel comando nell'esempio la porta "2222".

ssh -R 2210:localhost:22 [email protected]_2.dyndns.com

ssh -p2222 -R 2210:localhost:22 [email protected]_2.dyndns.com

Adesso dal computer della "sede_2" basterà eseguire sul computer "pc_sede_2" questo comando.

 ssh -p 2210 [email protected]

ssh tunnel reverse

L'opzione -R del comando SSH ci ha permesso di creare un tunnel "2210" all'interno del collegamento ssh sulla 22 funzionante anche per la direzione inversa, quindi dalla "sede_2" alla "sede_1".

Il limite di questa soluzione stà nella "sede_2" ,se questa non è disponibile il tunnel non si attiva.

E' possibile ovviare inserendo un terzo server SSH indicato con "sede_3.outside_1_2.com" in questo modo la "sede_1" può stabilire la connessione con la "sede_3" e il portatile della "sede_2" si può collegare alle "sede_3" in qualsiasi momento stabilendo un collegamento con la "sede_1".

 ssh tunnel bridge demo

Inserendo un terzo server SSH, nell'esempio sopra ,chiamato "sede_3.outside_1_2.com, possiamo ovviare al limite riscontrato nel primo punto. Questo terzo punto può essere inserito anche nella DMZ della "sede_1" oppure come punto sempre attivo della "sede_2".

Dalla "sede_1" lanciamo la connessione alla "sede_3"

ssh -R 2210:localhost:22 sede_3.outside_1_2.com
es.con porta SSH diversa es 2222
ssh -p2222 -R 2210:localhost:2222 [email protected]_3.outside_1_2.com

sede1 call sede3

dal server ponte della sede_3.outside_1_2.com possiamo nuovamente collegarci al pc della sede_1.dominio.com con il comando
ssh -p 2210 localhost

Adesso se vogliamo collegarci dal pc della "sede_2.dynds.org" al pc della "sede_1.dominio.com" possiamo lanciare questo comando
ssh -p 2210 [email protected]_3.outside_1_2.com

 Dopo aver lanciato il comando sul server SSH della "sede_2" vediamo che è presente un servizio in ascolto sulla porta "2210"

netstat bridge server

Il reverse tunnel (-R) usa la forma: <indirizzo tunnel>:<porta tunnel>:<indirizzo destinazione>:<porta destinazione>.

<indirizzo tunnel> può essere un qualsiasi indirizzo sulla macchina all'inizio del tunnel, localhost, * (oppure lasciato in bianco), che rispettivamente, permettono connessioni tramite uno specifico indirizzo, tramite l'interfaccia di loopback, oppure tramite qualunque interfaccia.

Come default, il forwarding è limitato alle connessioni provenienti dalla macchina all'inizio del tunnel, quindi <tunnel address> è impostato su localhost. Il forwarding locale non richiede configurazioni addizionali, mentre il forwarding remoto è condizionato dalle configurazioni del demone SSH sulla macchina remota. Per maggiori informazioni consultare le informazioni riguardo all'opzione GatewayPorts nella pagina di manuale sshd_config(5).

Dalla "sede_1" lanciamo la connessione alla "sede_3" usando il comando:

ssh -p2222 -R sede_2.dyndns.org:2210:localhost:2222 [email protected]_1.dominio.com

route any ssh tunnel

in questo modo tutte le sessioni SSH lanciate passeranno per il tunnel creato, adesso dal pc della "sede_2" possiamo collegarci al pc della "sede_1" senza aver messo mano al router e firewall della "sede_1"

Aggiungi commento


Codice di sicurezza
Aggiorna

Utilizzando questo sito accetti l'uso di cookie per analisi, contenuti personalizzati e pubblicità mirata (tramite Google AdSense). Clicca qui per maggiori informazioni