Imaginemos que tenemos en el ordenador de casa o de la empresa un servicio corriendo, por ejemplo, un apache en el puerto 80. En este caso representado como “Host con el servicio“. Y queremos conectarnos desde otro ordenador fuera de la red en este caso representado como “Nuestro host“, utilizando por ejemplo el puerto 8080 (es preferible utilizar un puerto no común para que no conflicte con ningún servicio que tengamos levantado en el equipo). Y tenemos un equipo con un servidor ssh instalado y con IP pública al que podemos acceder en este caso representado como “Host de salto ssh“.
Una vez puestos en situación lo que querríamos conseguir sería que sin tener una VPN levantada poder abrir el servicio apache del “Host con el servicio” en “Nuestro host“.
Este sería el esquema de la red, desde nuestro host para acceder a una red privada detrás de un firewall tenemos acceso a un host pero no al resto de la red.
Entonces el comando que deberíamos de ejecutar en “Nuestro host” sería el siguiente:
$ ssh -N -f <usuario>@host_de_salto_ssh -L 8080:Host_con_el_servicio:80
Una vez ejecutado el comando este, el esquema de red quedaría así:
Y para poder acceder al servicio hay que abrir el navegador y escribir en la barra de direcciones lo siguiente:
https://127.0.0.1:8080
Por defecto, se carga con la IP localhost (127.0.0.1) pero esto se puede cambiar por la IP de “Nuestro host” en este caso por ejemplo la 192.168.1.5.
$ ssh -N -f <usuario>@host_de_salto_ssh -L 192.168.1.5:8080:Host_con_el_servicio:80
Y para acceder al servicio en este caso hay que escribir la siguiente dirección en el navegador
http://192.168.1.5:8080