martes, septiembre 15, 2009

Creando túneles locales, remotos y dinámicos en ssh

Una de las herramientas más versátiles que existen entre las aplicaciones que tiene unix (aunque también esta para windows), es el ssh.

Principalmente permite ver una consola de texto de un servidor remoto y desde la consola poder administrarlo.

Pero hay una funcionalidad bastante importante y que son los túneles de ssh.

Los túneles de ssh nos permiten "traernos" puertos TCP remotos a nuestra máquina local o "enviar" puertos locales para que sean publicados en un servidor remoto.

Ejemplos:

Tunel local: Queremos traernos el puerto 1521 (oracle) de una máquina remota que sólo tenemos acceso vía ssh, al puerto local 2000:

ssh usuario@servidor -L 2000:localhost:1521

Tunel remoto: Queremos enviar nuestro puerto 8080 a una máquina remota y cuando se acceda al puerto 80 (web) de la máquina remota las peticiones se nos está haciendo en nuestra máquina local.

ssh usuario@servidor -R 80:localhost:8080

Tunel dinámico: Queremos conectarnos a internet desde una máquina virtual, pero no queremos usar un proxy que esta en medio, desde el navegador definimos un proxy tipo socks:

ssh usuario@servidor -D 3000

El el navegador configuramos para el proxy el host 'servidor' y el puerto 3000

1 comentario:

Anónimo dijo...

Muy buen aporte güey