Túnel inverso mediante SSH

SSH además de valer para conectarnos a otras máquinas, tiene funciones muy interesantes como hacer port forwarding. En este post voy a explicar otra función muy interesante que es el túnel inverso.
¿Para que vale esto? Por ejemplo, esto es muy útil si tienes 2 equipos en redes distintas y un servidor en la nube y quieres acceder de un equipo al otro pero sin tener que facilitar la contraseña del servidor y sin tener que crear una VPN.

Para que todo sea mas simple vamos a explicarlo con una imagen.

En este caso, el Equipo1 quiere abrir una página web que está en el Equipo2 (cada uno está en una red privada diferente) pero el usuario del Equipo1 no puede saber la contraseña del Servidor por motivos de seguridad, por lo tanto el port forwarding no valdría porque se necesitaría la contraseña del Servidor. Aquí es cuando entra en juego el túnel inverso. Lo que habría que hacer es un túnel desde el Equipo2 al Servidor indicándole que el puerto 80 (el de la página web del Equipo2) sea otro puerto en el servidor por ejemplo el 6677. Y una vez hecho esto para acceder a la página web habría que abrir un navegador y escribir la IP del Servidor y el puerto que le hemos asignado antes: “http://IP_servidor:6677“. Y con esto accederíamos a la página web

ismael

Una vez explicado esto, vamos a ver como habría que hacerlo

Primero editar el archivo de configuración de SSH del servidor y añadir lo siguiente (sin esto el servidor solo escucharía en localhost)

# vim /etc/ssh/sshd_config
  GatewayPorts clientspecified

Reiniciar el servicio SSH

# service ssh restart

Luego desde el Equipo2 ejecutar el siguiente comando

# ssh -N -f root@172.10.5.36 -R 172.10.5.36:6677:localhost:80 -

Y una vez hecho esto ya estaría el túnel creado. Para conectarse desde el Equipo1 habría que escribir lo siguiente en el navegador

http://172.10.5.36:6677

Fuente:

http://toic.org/blog/2009/reverse-ssh-port-forwarding/#.VW65uc2sWhc

4 comments

  1. Hace un tiempo que estuve trabajando en un lugar con una red extremadamente restringida, nunca pude bypassear la red, y era desesperante cuando era requerido buscar información relevante para resolver temas de trabajo,

    Lo que me di cuenta es que todo el trafico se redireccionaba a un puerto el cual funcionaba como proxy, entonces intente algo como esto para redireccionar la llamada a mi server ssh, por el puerto que usaban para el proxy,

    La verdad no tuve el tiempo necesario para lograrlo, me leere bien tu post y el link anexo para cuando me toque nuevamente no sufrir esas restricciones tipo great firewall of China

    Gracias por otra buena entrada.

    Saludos

Leave a Reply

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