Tuneles SSH

Febrero 12th, 2008

Para inaugurar la sección de Tipos&Tricks explicaré que son los tuneles SSH y cómo realizarlos.

Bien, imaginemos una situación como la que ilustra el siguiente esquema. Tenemos una máquina cliente que tiene acceso a un servidor SSH remoto. Ese servidor es la puerta de entrada a una red interna y la única máquina de dicha red que puede ser accedida desde internet. Nuestro equipo cliente desea acceder a una aplicación web situada en el servidor web local de la red interna.

Diagrama SSH

La solución clásica al problema sería redireccionar el puerto 80 (web) desde el equipo SSH al servdidor web, lo que haría que ese servicio esté disponible desde Internet. Sin embargo, en esta ocasión no queremos que ese servidor sea accedido desde fuera, ya que es una aplicación dirigida a empleados de la empresa y no es deseable que sea consultada por terceros.

Pues bien, para casos como este y otros similares la solución está en los tuneles SSH. Mediante este mecanismo podemos pedir a un servidor SSH remoto que establezca una conexión entre nuestro equipo cliente y un servicio al que él tenga acceso. Para el caso concreto que hemos descrito, tendríamos que pedir al servidor SSH que nos abriera una conexión entre nuestro equipo y el servicio Web del servidor web interno. Lo que se haría con el siguiente comando:

$ ssh -L 9080:ip.privada.servidor.web:80 usuario@servidor.ssh

Este comando abre una sesión SSH con el host ‘servdior.ssh‘ como usuario ‘usuario‘ (tras poner correctamente la contraseña de inicio de sesión, por supuesto). Simultáneamente, crea un tunel SSH entre el puerto local 9080 y el servicio web remoto que se encuentra en el servidor web de la red privada.  A partir de este momento bastará poner en el navegador del equipo cliente la dirección ‘http://localhost:9080/‘ para acceder  al servidor remoto, ya que gracias al tunel que hemos creado todo lo enviado por ese puerto llegará hasta esa máquina inalcanzable de manera directa desde Internet.

Este concepto se puede aplicar de muchas maneras posibles y en muy diversas situaciones, y también hay otras opciones adicionales para crear los tuneles, pero no quiero convertir el post en un listado de comandos. Mi intención es que sirva de partida para que exploreis las posibilidades de este mecanismo.

Categorías: Tips&Tricks |

2 comentarios

  1. shanakadu

    Chaval, te vuelves a salir del plato, otro howto que hay copiar y pegar en nuestra bibliotecas. Así que señor@s, ha copiar y pegar sin tino, montar una red que te cagas.
    Saludos.

  2. carlos

    ME GUSTO QUE ESTA MUY MESPECIFICADO EL TRABAJO QUE SE HIZO EN CLASE GRACIAS POR ESPLICARNIOS BIEN Y POR ESA AYUDA QUE NOS DAN.

Deja un comentario