• Crear un túnel inverso mediante SSH

    Ejecutar un túnel inverso mediante SSH tiene ciertas utilidades. Entre ellas:

    PERMITIR QUE EL SERVIDOR SSH REMOTO ACCEDA A UN SERVICIO DE NUESTRO ORDENADOR/SERVIDOR

    Si tenemos un servicio en nuestro ordenador local (imaginemos una página web) y queremos que el ordenador que tiene el servidor SSH remoto pueda acceder a esa web como si estuviera publicada en el puerto 23456 de sí mismo, ejecutaríamos desde el servidor donde está corriendo nuestro servicio web:

    ssh -R localhost:23456:localhost:80 root@dominioquenoesnuestro.com

    Lógicamente, si el servidor SSH remoto está corriendo en un puerto diferente al 22, ejecutaríamos:

    ssh -R localhost:23456:localhost:80 root@dominioquenoesnuestro.com -p 11122

    De esta forma, el ordenador que esté corriendo el servidor SSH remoto, podrá acceder a la web que tengamos publicadas en nuestro puerto 80 ingresando la siguiente URL en un navegador:

    localhost:23456

    PERMITIR QUE EL SERVIDOR SSH REMOTO ACCEDA A UN SERVICIO DE NUESTRA SUBRED

    La publicación de arriba es posible hacerla, incluso desde un ordenador diferente al que sirve la página web, pero que esté en la misma subred. Por ejemplo, si el servidor que sirve la página web está en la IP 192.168.0.10 y nosotros tenemos un portátil con la IP 192.168.0.11, entonces ejecutaríamos desde nuestro portátil:

    ssh -R localhost:23456:192.168.0.10:80 root@dominioquenoesnuestro.com -p 11122

    De esa forma, daríamos acceso a la página web alojada en el servidor de nuestra subred a un tercero que navegaría por ella como si estuviera conectado mediante la IP de nuestro portátil.

    DAR ACCESO A UN TERCERO PARA QUE HAGA CAMBIOS EN NUESTRO ROUTER

    De forma similar a  los pasos anteriores, podemos conectarnos al servidor SSH de un amigo para darle acceso a la web de configuración de nuestro router. Lo haríamos ejecutando en nuestro ordenador:

    ssh -R 11111:192.168.0.1:80 usuario@88.88.88.88

    …donde 192.168.1.1 es la dirección IP de nuestro router, 88.88.88.88 es la dirección IP pública de la casa de nuestro amigo y 11111 es el puerto mediante el cual va a poder acceder a la web del router. Es decir, para acceder a nuestro router, nuestro amigo, en su ordenador, tendrá que ingresar la URL localhost:11111.

    En este ejemplo vemos que eralmente no hace falta poner el primer localhost. Es decir, la orden:

    ssh -R 11111:192.168.0.1:80 usuario@88.88.88.88

    …sería equivalente a la orden:

    ssh -R localhost:11111:192.168.0.1:80 usuario@88.88.88.88

    Y eso es así para todos los otros ejemplos.

    PUBLICAR UN SERVICIO PROPIO EN UNA IP WAN DIFERENTE A LA NUESTRA

    Esto es un poco complicado de entender, pero vamos a intentarlo:

    Imaginemos que tenemos en casa un servidor de Minecraft Java Edition (que utiliza el puerto 25565) y queremos que sea accesible mediante el nombre de dominio servidoresgaming.com sin que esté realmente en la IP del servidor de ese dominio o en cualquiera de las IPs de los ordenadores/servidores de su subred. Podríamos hacerlo si tenemos acceso SSH al servidor de servidoresgaming.com. Para ello, desde el servidor donde esté corriendo Minecraft Server, crearíamos el primer túnel, ejecutando:

    ssh -R [bind_address:]port:host:hostport usuario@servidoresgaming.com

    …y una vez dentro de ese túnel, y en la terminal remota (es decir, la del servidor servidoresgaming.com), ejecutaríamos:

    ssh -R localhost:12345:localhost:25565 usuario@servidoresgaming.com

    En este caso, cualquier persona que quiera conectarse a nuestro servidor de minecraft podría hacerlo indicando el dominio servidoresgaming.com y el puerto 12345.

    Si el servidor SSH de servidoresgaming.com está en un puerto diferente al 22, el comando sería algo así:

    ssh -R localhost:12345:localhost:25565 usuario@servidoresgaming.com -p 11122


    Deja una respuesta