SSH Port Forwarding para acceder a servicios inaccesibles

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“.

openssh

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.

ssh_blog_ismael

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í:

ssh_blog_ismael(1)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

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *