mar 22 2008

Túnel inverso SSH

Published by admin at 12:24 am under SysAdmin,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.

6 responses so far

6 Responses to “Túnel inverso SSH”

  1. karlos g liberal(patxangas)on 22 mar 2008 at 1:15 am

    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

  2. serrobaon 22 mar 2008 at 1:25 am

    genial!!! super buen dato, muchas gracias

  3. Sergion 22 mar 2008 at 4:48 pm

    Te he hecho un copy-paste brutal en mi blog para acordarme… me ha sido muy útil !

  4. Juanjocon 25 sep 2008 at 7:27 pm

    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…

  5. lea_bon 10 abr 2009 at 5:49 pm

    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

  6. antonioon 12 may 2009 at 11:01 pm

    que es un acceso inverso en lansguardian?
    antonio441@hotmail.es

Trackback URI | Comments RSS

Leave a Reply

« Back to text comment