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.
Sigues sorprendiéndome compañero Chessy, no solo me vale el tunel inverso, también el tema del timeout a modo de chuleta, siempre lo olvido
genial!!! super buen dato, muchas gracias
Te he hecho un copy-paste brutal en mi blog para acordarme… me ha sido muy útil !
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…
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
que es un acceso inverso en lansguardian?
antonio441@hotmail.es
no entiendo que es lo que tengo que poner en el usuario y en el sercidor expliquenme por favor
Relacionado:
Túneles SSH con WinSCP:
http://www.sysadmit.com/2014/05/linux-tuneles-ssh-con-winscp.html