Ya hace unos días que ando hablando de túneles ssh (con la opción -L), pues ahora vamos a hacer lo mas difícil todavía.
Nos encontramos que tenemos una maquina detrás de una conexión de la cual no es posible redirigir los puertos a la maquina que nos interesa, pero esta máquina si tiene acceso ssh a otra máquina.
Desde la maquina la cual no tenemos acceso y queremos acceder a ella vamos a ejecutar esto:
$ ssh -nNT -R 2222:localhost:22 blackhold@fermat.marsupi.org
luego en la maquina servidor.dominio.org vemos que se ha creado una nueva conexión en el puerto 2222:
fermat:/home/blackhold# netstat -lanp |grep 2222 tcp 0 0 127.0.0.1:2222 0.0.0.0:* LISTEN 16618/sshd: blackho tcp6 0 0 ::1:2222 :::* LISTEN 16618/sshd: blackho
Como no hemos indicado nada antes de 2222: sólo va a hacer bind en local, pero como comentaba en otro post, si quieres que sea accesible por todas las ip bastaría poner un 0.0.0.0: delante del 2222:
Si hacemos un ssh (en este caso porque estamos mapeando el puerto 22) en local a la maquina que si es accesible desde internet en el puerto 2222, vamos a conectarnos a la maquina inaccesible desde internet.
Mis agradecimientos a marc0s.