Como Crear Un Túnel Inverso O Reverso De SSH

Computadora Internet

A veces que necesitamos conectarnos vía SSH a otra computadora nos encontramos con que esta computadora no cuenta con una dirección que podamos utilizar para conectarnos a ella, o bien se encuentra tras un muro de fuego que no permite el acceso. En estos casos, un túnel reverso de SSH nos permite trabajar alrededor de esta limitación.

Computadora Internet

En una conexión normal de SSH se conoce la dirección de la computadora de destino y se establece una conexión directa.
En una conexión normal de SSH se conecta directamente la computadora A con la computadora B.

Una conexión normal de SSH es sencilla. Tenemos el nombre de usuario y la dirección de la computadora a la que queremos conectarnos, ya sea una dirección de IP o un dominio, y se establece una conexión directa. El problema llega cuando no conocemos o no tenemos acceso a la dirección de la computadora destino (B) y nuestra computadora tampoco cuenta con una dirección accesible.

En estos casos, si contamos con una computadora con SSH habilitado y una dirección conocida, podemos utilizarla como un puente hacia la computadora que deseamos. Esta computadora simplemente actúa como mediadora entre ambas computadoras. La computadora a la que deseamos conectarnos (B) establece una dirección hacia la computadora mediadora (C) que nosotros utilizamos desde nuestra computadora (A).

En una conexión reversa de SSH se desconoce la dirección de la computadora B, por lo A utiliza una computadora con una dirección conocida C, para mediante esta alcanzar la computadora B.
En una conexión reversa de SSH se desconoce la dirección de la computadora B, por lo que A utiliza una computadora con una dirección conocida como mediadora.
  1. Se establece una conexión desde la computadora a la que queremos acceder (B) hacia la computadora con una dirección conocida (C) que actuará como mediadora. Utilizamos el parámetro -R para permitir el tunel reverso de SSH:ssh -R 61999:localhost:22 usuario_c@computador_c

    El primer número (61999) indica que puerto usaremos en “A” para conectarnos a “B” una vez que “A” se encuentre conectada a “C”. localhost es el nombre de dominio que utilizaremos para esto mismo, y el último número (22) indica en que puerto esta “B” escuchando SSH.

  2. Se establece una conexión normal desde nuestra computadora (A) a la computadora mediadora (C).ssh usuario_c@computador_c
  3. Una vez conectados a la computadora mediadora (C), establecemos una conexión a la computadora que deseamos (B) desde nuestra computadora principal (A), utilizando el puerto que usamos en el primer comando, el usuario de la computadora destino (B) y localhost:ssh -p 61999 usuario_b@localhost

Y listo, estamos conectados vía SSH desde la computadora “A” a la computadora “B”. Si la dirección de nuestra computadora “A” es conocida y accesible, podemos crear el túnel reverso de SSH directamente desde la computadora “B” hacia la computadora “A”.

Leave a Reply