Tunel SSH Inverso (accediendo a PCs sin conexión directa a Internet)

En resumen, se inicia la conexión desde el equipo remoto, PC a donde queremos entrar y que se encuentra inaccesible directamente desde Internet, iniciada la conexión y creada en nuestro equipo local un puerto que redirecciona el puerto remoto de SSH a un puerto en nuestro PC local, iniciamos una sesión ssh en local al puerto redireccionado, utilizando un usuario y contraseña del equipo remoto.

PC_Local —— INTERNET —— Router_REMOTO —— PC_Destino

1) Desde el equipo Destino hay que hacer iniciar la conexión SSH inversa de la siguiente manera:

    ssh -R 9999:localhost:22 usuario_pc_local@IP_PC_LOCAL

Esto significa que estamos realizando una conexión reversa (-R) y que en remoto (o sea en nuestro PC local) se abrirá un puerto «remoto», el «9999» que representará el puerto»22″ del equipo «remoto» y luego la información de conexion ssh a nuestro PC local, (ferarg@ferarg.mine.nu)

Si nuestro equipo local utiliza otro puerto diferente al 22, debemos asignarlo en la conexión desde remoto:

    ssh -p 1978 -R 9999:localhost:22 usuario_pc_local@IP_PC_LOCAL
2) Logueado desde remoto en nuestro PC local, y realizada la conexión, pasamos a conectarnos al equipo «remoto» de la siguiente manera:

    ssh -p 9999 usuario_remoto@localhost

Esto nos pedirá la contraseña del usuario del equipo remoto y nos conectará a él utilizando un túnel inverso de ssh.

Este tipo de conexiones es muy útil si el equipo al cual queremos conectarnos se encuentra detrás de un NAT o un router o es inaccesible desde internet.

.
.
Creative Commons License
Esta entrada fue publicada en linux, linux howto, servidores, ssh. Guarda el enlace permanente.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *