Rendere accessibile da Internet un server connesso tramite protocollo NAT o firewall con IP dinamico

Può essere necessario dover accedere ad un server che sia collegato ad Internet ma che non disponga di un indirizzo IP pubblico e statico. Potrebbe avere un indirizzo IP dinamico oppure potrebbe capitare di dover utilizzare un router per telefonia mobile che spesso usa il protocollo NAT, condividendo quindi lo stesso indirizzo IP con altri router.

Se abbiamo a disposizione un secondo server con indirizzo IP pubblico e statico lo possiamo usare come ponte per collegarci al primo server.

Per prima cosa dobbiamo aprire un tunnel SSH dal server interno verso il server esterno. Essendo una connessione che parte dall’interno della rete verso l’esterno non avremo problemi con il protocollo NAT né, presumibilmente, con il firewall.

Il comando da eseguire è:

$ ssh -R <porta_server_esterno>:localhost:<porta_server_interno> utente_server_esterno@indirizzo_server_esterno

ad esempio:

$ ssh -R 80:localhost:8000 [email protected]

aprirà un tunnel tra la porta 80 del server esterno (il cui IP è nell’esempio 123.456.789.000) e la porta 8000 del server locale, quindi quello interno.

A questo punto qualsiasi connessione alla porta 80 del server esterno verrà reindirizzata alla porta 8000 del server interno.
Se, ad esempio, sulla porta 8000 rispondesse un web-server questo sarebbe accessibile anche da tutta Internet.

Se non si dispone di un server con IP pubblico e statico ci si può appoggiare a servizi che mettono a disposizione la possibilità di creare un tunnel come ho descritto sopra. Uno di questi è ad esempio ngrok.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *