Túneles SSH para escapar de la prisión!

El título sorprende ¿eh? xD

Es lo primero que se me ha ocurrido, pero representa bastante bien lo que voy a explicar, un poco por encima, en éste post. Básicamente os voy a explicar como utilizar cualquier puerto dentro de una red restringida (como la de muchas universidades) donde sólo nos dejan el puerto para http y poco más. Eso sí, para que ésto funcione deberemos tener en algún lado fuera de dicha red un equipo que pueda recibir conexiones ssh.

Situación: Hoy es mi segundo día trabajando como monitor de laboratorio en la universidad. El curro no está mal, son 3 horas diarias (que he cogido de 11:30 a 14:30) durante las que soy responsable de que los ordenadores del laboratorio en el que me toque funcionen, si alguien no sabe muy bien como hacer algo echarle un cable y si algo se jode abrir una incidencia.

Problema: El aburrimiento de 3 horas seguidas sin hacer nada (hoy no tengo ganas de hacer prácticas :P) me ha llevado a conectarme al irc a ver que se contaban en #ubuntu y me he dado cuenta de que, al estar dentro de la red de la universidad, no tengo acceso al 6667, puerto que usa el IRC.

Solución: El ordenador que tengo en casa bajando y que hace de server tiene acceso libre a internet (usando la conexión de mi casa) y, a pesar de tener IP dinámica, puedo acceder a él a traves de un dominio gratuito y la aplicación no-ip así que puede recibir peticiones desde el exterior sin necesidad de saberme de memoria la IP que tiene en éste momento.

Con éste planteamiento inicial la idea parece bastante sencilla: usar la conexión de mi casa para acceder a internet a través del puerto que necesite, o lo que es lo mismo, acceder al IRC a través del ordenador que tengo en casa. OJO! no es lo mismo que utilizar el ordenador de cada de proxy, es algo mucho más sencillo y con ciertas ventajas.

Ahora la parte práctica, vamos a utilizar una conexión ssh para establecer un tunel desde aquí (red capada) hasta el irc a través del ordenador de casa, ¿como se hace? Muy sencillo:

– Tiramos el tunel ssh de la siguiente manera:

ssh -L puerto_local:server_destino:puerto_destino -l usuario_ssh -N servidor_casa

Vamos a explicarlo un poco: puerto_local es el puerto del ordenador local por el que accederemos al tunel, server_destino es el servidor objetivo al que queremos acceder (en nuestro caso cualquiera del irc hispano), puerto_destino es el puerto del server_destino, usuario_ssh un usuario con cuenta ssh en servidor_casa y servidor_casa es el ordenador de nuestra casa a través del cual accederemos al servidor_objetivo.

El ejemplo parametrizado para el irc (cambiando el nombre del server de mi casa…):

ssh -L 4000:libres.irc-hispano.org:6667 -l nemesis -N trikititran.no-ip.org

– Una vez establecido el tunel (no sacará nada por pantalla) debemos dejarlo abierto y desde el cliente de IRC conectarnos al puerto local que hemos redirigido. Al acceder al puerto puerto_local de localhost estaremos accediendo realmente al puerto puerto_destino de server_destino. Para el caso del ejemplo del IRC sería tan sencillo como ésto:

/server localhost 4000

– Cuando hayamos terminado ya podéis cerrar el tunel.

Sé que es un procedimiento lioso, yo la primera vez pensaba que me estaba volviendo majara, pero no es tan complicado, leedlo despacio y si no os enteráis tirad de la fuentes que seguro que lo explican mucho mejor que yo!😀

Fuente: GulTec – Irc en el Campus

ACTUALIZACIÓN: Hoy (y mira que ha llovido de éste post) me  he encontrado una aplicación que hace de frontend gráfico para manejar los túneles SSH, así que sería bastante útil si los usamos normalmente😉 Tunnel Manager.

ACTUALIZACIÓN 2: Como bien apunta en su comentario Gurrupato puede ser más sencillo usarlo como dice él. Cito a continuación:

Con -L puedes hacer un tunel estático para un server:puerto. Vale, está bien. Pero es que con la opción -D te puedes crear tu un proxy local que te lleva encriptado hasta “casa” y te permite usar cualquier puerto a cualquier server.

ssh usuario@ordenador.de.casa -D 888

Luego configuras el navegador/irc/lo-que-sea para que use un proxy con las siguientes características:
server: localhost
port: 888

Y a navegar/chatear/lo-que-sea como si estuvieras en casa.

  1. Realmente ssh es de esas herramientas (por decirlo de algun modo) con las cuales uno puede sentarse a conversar de lo lindo.

    Ha sido y será tema de charla constante entre amigos.

    Sus posibilidades son increibles y seguras xD

    en fin… muy lindo articulo
    espero mas😉

    • luixal
    • 16/10/07

    Muchas gracias. La verdad es que es cierto, ssh es una de las utilidades con más polifaceticas (por decirlo de alguna forma) que he visto, tan pronto puedes usarla para una cosa como para otra mucho más distinta.

  2. Muy buena pagina, espero que sigan asi

  3. muy bueno el tutorial!!!

  4. muy bueno!!

  5. Me parece bien el post, lo probare, si funciona estara de maravilla

  6. te falta un 6 en “ssh -L 4000:libres.irc-hispano.org:667 -l nemesis -N trikititran.no-ip.org” o sobra uno cuando dices que el IRC va por el 6667

    Saludos

  7. Cierto, el puerto del irc es el 6667, se me había colado. Gracias!

  8. ¡Excelente!
    Muy buen tutorial – saludos🙂

  9. @vando: me alegro de que te sirviera!

    • Gurrupato
    • 8/03/10

    Con -L puedes hacer un tunel estático para un server:puerto. Vale, está bien. Pero es que con la opción -D te puedes crear tu un proxy local que te lleva encriptado hasta “casa” y te permite usar cualquier puerto a cualquier server.

    ssh usuario@ordenador.de.casa -D 888

    Luego configuras el navegador/irc/lo-que-sea para que use un proxy con las siguientes características:
    server: localhost
    port: 888

    Y a navegar/chatear/lo-que-sea como si estuvieras en casa.

  10. @Gurrupato: no conocía esa forma de utilizar los túneles ssh. Lo he puesto en la segunda actualización del post.

    Muchas gracias por la aportación!😀

  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: