Ejemplo con túnel SSH inverso


Vamos a crear un ejemplo con túnel SSH inverso, este túnel accederá a un servicio http de una maquina local.

oscar Escrito por oscar 04 September 2023 644 0

Antes de empezar

A continuación esta los post donde se explica como instalar OpenSSH

Ejemplo practico

En la maquina local se ha expuesto una pagina web, en este caso practico un nginx que carga en el puerto 8000:

Nginx localhost 8000

Ahora queremos que esta pagina web local se pueda ver en otro equipo de computo como se menciono anteriormente, es decir:

Túnel ssh inverso red global

En este caso lo que se pretende es acceder desde el host C a la web del host A, pero como hemos revisado anteriormente no podemos acceder directamente, lo que vamos a hacer es crear un túnel inverso desde host A hasta host B y host C accederá a host B.

Para crear el túnel inverso vamos a necesitar un servido externo en este caso podemos usar:

En este caso, he creado una instancia EC2 en AWS, en esta instancia tenemos que asegurarnos de instalar y configurar  OpenSSH en Ubuntu server | CodigoElectronica y debemos hacer pruebas para acceder vía SSH con Cómo conectarse a la instancia EC2 desde Windows mediante OpenSSH | CodigoElectronica

ssh -i iot.pem ubuntu@34.234.166.116

Respuesta

Last login: Fri Jul 28 21:16:35 2023 from 201.244.108.81
ubuntu@ip-172-31-84-248:~$

Procederemos a crear el túnel inverso, para ello observemos la siguiente imagen: 

Túnel inverso

El tunel inverso que vamos a crear va a estar conectado desde Host A al Host B, y abriremos un puerto remoto en host B para que al acceder a el, realice la conexión interna al puerto 8000 del host A, debemos asegurarnos de que el servidor puueda recibir peticiones TCP en el puerto 24000 que usaremos como ejemplo para crear el tunel inverso.

Puertor en AWS EC2

En este caso, tenemos habilitado este puerto en el servidor (instancia ec2) para recibir conexion de entrada.

Procedemos a crear el túnel inverso, para ello ejecutamos el siguiente comando:

ssh -i iot.pem -R 24000:localhost:8000 ubuntu@34.234.166.116

Abrira el túen ssh, ahora si ingresamos a la ip http://34.234.166.116:24000 podemos ver la pagina ofrecida por el nginx.

Acceso desde la servidor remoto

Comentario

Debe aceptar antes de enviar