30 marzo 2008

ssh tunneling - Redirigir conexiones a un puerto local a otra máquina

Redirigir conexiones a un puerto local a otra máquina

http://crysol.inf-cr.uclm.es/node/32


ssh -N -L sport:remotehost:dport host

La sintaxis es simple:

ssh -N -L sport:remotehost:dport host

donde:

* -N: No ejecutar ningún comando
* -L: Crear un tunel a un puerto remoto
* sport: Un puerto local libre
* remotehost: La máquina remota
* dport: El puerto de la máquina remota al que queremos enviar el tráfico
* host: La máquina que tiene el servidor SSH que construye el tunel (puede ser localhost)

Redirigir conexiones de otra máquina a un puerto local

Muy similar:

ssh -N -R sport:localhost:dport remotehost


Esto le pide a la máquina remotehost que las conexiones que hagan a su puerto sport las redirija al puerto dport de localhost. Esto es útil por ejemplo para hacer un telnet inverso. Supongamos que queremos conectar desde la máquina server (que tiene una IP pública) a la máquina home que está NATeada y con un dirección privada. Pues hacemos lo siguiente.

En la máquina home:

$ ssh -N -R 2222:localhost:22 pepe@server

Esto te pide una clave de la cuenta de usuario en pepe@server porque lo que estás haciendo es solicitar un servicio de redirreción al servidor SSH de server. Después de introducir la clave, debes dejar ese proceso corriendo o no se podrá hacer la segunda parte.

Y en la máquina server hay que ejecutar:

$ ssh -p 2222 pepe@localhost

Esto abre una conexión contra el servidor SSH de home, por lo que el usuario también necesita una cuenta en home.
Redirigir un puerto local a otro

Esto puede resultar útil cuando queremos que un servidor "escuche" en un puerto distinto del estándar sin tener que tocar la configuración del programa servidor concreto.

No hay comentarios: