Usar SSH para pasar a través de un Firewall

Supongamos que necesitamos conectarnos a un servidor que esta en una red privada protegido por un firewall, y que podemos conectarnos a este firewall a través de SSH.

Una forma sencilla de conectarnos a los equipos que están al otro lado del firewall es creando una conexión SSH al firewall y un túnel a través de este que valla de nuestro equipo hasta el servidor que nos interesa.

Utilizaremos los siguientes nombres para referirnos a los equipos que intervendrán en la conexión.

  • Notebook: Es nuestro equipo desde el cual nos estamos conectando.
  • Firewall: Es el firewall a través del cual crearemos el túnel.
  • Server: Es el equipo protegido por el firewall al que nos queremos conectar.

La sentencia que utilizaremos es la siguiente para crear la conexion y el tunel.

ssh -L 8888:server:80 usuario@firewall

La opción -L nos permite especificar los puntos de entrada y salida para un túnel seguro creado a través de SSH. En el ejemplo que escribí arriba toma un argumento de tres campos separados por el signo «:».

El primer campo es el puerto local que queremos atar, el siguiente campo es el servidor al que queremos conectar. Este campo es interpretado por el equipo remoto en la conexión SSH (en nuestro caso firewall) no por el equipo local (o notebook), el equipo local no necesita saber como llegar a el. El tercer campo es el puerto del servicio al que queremos conectar al final del tunel.

En pocas palabras este comando se ejecuta desde notebook, crea una conexión SSH a firewall y construye un túnel que reenvía trafico desde el puerto 8888 en notebook hacia el puerto 80 en server, de esta forma una vez creado el tunel si abrimos nuestro explorador y escribimos la dirección http://localhost:8888 nos estaremos conectando al servicio web que se ejecuta en el servidor que esta en la red privada protegida por el firewall al que nos conectamos a través de SSH.

En el puerto local utilice un puerto que no estuviera siendo usado por mi computadora, también como no estaba usando el usuario root debía seleccionar un puerto arriba del 1023, seleccione el puerto 8888 porque es fácil recordar y asociar con el puerto del servicio web.

Puedes obtener mas información sobre SSH en los siguientes url.

https://www.openssh.org

https://www.openssh.org/manual.html

Deja un comentario