Túnel inverso SSH

Supongamos la siguiente situación: estás en casa y quieres conectar por ssh con el Linux de tu oficina (destino). Problema: el firewall de la oficina bloquea las conexiones entrantes. Desde el pc de la oficina puedes conectar hacia el exterior, y en concreto tienes acceso ssh a una máquina intermedia. Desde casa tienes acceso a la misma máquina intermedia, también por ssh. Bien, aquí es donde entra en juego los túneles ssh inversos.

Desde la máquina destino (lógicamente tendrás que hacerlo antes de irte de la oficina, o bien que alguien que ya esté en la oficina lo haga, o bien un proceso cron…)

user@destino$ ssh -R 10000:localhost:22 usuariointermedio@maquinaintermedia

Es decir, desde destino, abrir una conexión ssh contra la máquina intermedia. Al conectar, crear un túnel inverso de tal forma que el puerto 10.000 de la máquina intermedia conecte con el puerto 22 de la máquina destino.

Desde casa:

user@casa $ ssh usuariodestino@maquinaintermedia -p 10000

Es decir, conectar desde casa al puerto  10.000 de la máquina intermedia (con credenciales de la máquina destino). Si todo va bien, se nos abrirá una conexión ssh contra el Linux de la oficina , pasando como trampolín o pasarela  por la máquina intermedia.

Para rematar, si quieres evitar problemas de desconexión por timeout, modifica el fichero de configuración ssh /etc/ssh/sshd_config  para que incluya las siguientes líneas:

TCPKeepAlive yes
ClientAliveInterval 30
ClientAliveCountMax 99999

Nota: si la última orden ssh te dice algo como «Connection refused» haz lo siguiente: conecta normal por ssh (al puerto 22) desde casa a la máquina intermedia. Una vez ahí, lanza la siguiente orden:

$ ssh usuariodestino@localhost -p 10000

¡Listo!  Hoy, leer en el wiki de Gentoo sobre cómo se hacen túneles inversos por ssh contra máquinas protegidas por un firewall me ha salvado de hacer un viaje de unas cuantas horas… Espero que os venga igual de bien a vosotros, lectores de diariolinux.com.  Y recuerda que no es la primera vez que hablamos de las maravillas de ssh.

8 comentarios en «Túnel inverso SSH»

  1. Y siempre es necesario la máquina intermedia? No hay forma de evitarla?… hombre, puedo publicar una máquina virtual en la máquina de casa, pero…

  2. Mira viejo, lo busque por todos lados, lei tu post varias veces, me fui a otros, consulte volvi a leer, ingles frances aleman, no habia forma de conectarlo, volvi a tu post y lo hice, gracias.

    El tema era el «conection refused» habia que hacer ssh user@ip y nunca lo vi jajaja.

    nuevamente muchas gracias

Responder a karlos g liberal(patxangas) Cancelar la respuesta

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.