Mi Blog
👉 Cómo crear un túnel reverso con SSH

Cómo crear un túnel reverso con SSH

 
(12 votos)

En ocasiones, conectar a un equipo remoto a través de SSH no es posible, ya que está ubicado detrás de algún firewall o está en una red utilizando NAT y no está accesible directamente. Pero... existe una solución y os voy a explicar paso a paso como conectar utilizando los túneles reversos de SSH.

Seguid leyendo y os enseñaré a crear un túnel reverso con SSH...

⬇️ Compra en Amazon el hardware que utilizo ⬇️

🔥 ¡DESCÚBRELOS! 🔥

 

 

¿QUÉ ES SSH?

SSH (o Secure SHell) es el nombre de un protocolo y del programa que lo implementa cuya principal función es el acceso remoto a un servidor por medio de un canal seguro en el que toda la información está cifrada. Además de la conexión a otros dispositivos, SSH permite copiar datos de forma segura (tanto archivos sueltos como simular sesiones FTP cifradas), gestionar claves RSA para no escribir contraseñas al conectar a los dispositivos y pasar los datos de cualquier otra aplicación por un canal seguro tunelizado mediante SSH y también puede redirigir el tráfico del (Sistema de Ventanas X) para poder ejecutar programas gráficos remotamente. El puerto TCP asignado es el 22.

SSH trabaja de forma similar a como se hace con telnet. La diferencia principal es que SSH usa técnicas de cifrado que hacen que la información que viaja por el medio de comunicación vaya de manera no legible, evitando que terceras personas puedan descubrir el usuario y contraseña de la conexión ni lo que se escribe durante toda la sesión; aunque es posible atacar este tipo de sistemas por medio de ataques de REPLAY y manipular así la información entre destinos.

 

 

SSH nos garantiza el anonimato de las comunicaciones

 

 

1.- ELEMENTOS NECESARIOS PARA ESTE TUTORIAL

  • 3 equipos con GNU/Linux
  • Conexión a Internet (recomendado)

 

 

2.- CONCEPTO Y ESQUEMA DE RED

Generalmente, una conexión SSH se realiza directamente entre el equipo cliente (3) y el servidor ubicado en (1). Sin embargo, si la conexión SSH no se puede realizar directamente, es posible conectar este equipo al que queremos acceder directamente a una tercera maquina a la cual si tiene acceso. De esta forma, conectaríamos el equipo destino (1) a una tercera máquina auxiliar o puente (2) y a través de esa máquina, podremos crear un túnel reverso para poder conectarnos desde (2) a (1) evitando el Firewall y/o la red NAT.

Para este tutorial, utilizaremos una red muy sencilla siguiendo el siguiente esquema de red o similar:

Túnel inverso SSHEsquema de red

 

 

3.- PASOS RÁPIDOS PARA CREAR EL TÚNEL REVERSO

Los pasos son sumamente sencillos y se detallan rápidamente aquí:

  • Desde el equipo (1) nos conectamos por SSH a (2) creando un túnel reverso
  • Desde el equipo (3) nos conectamos a (2)
  • Por último, desde (3) nos conectamos a (1) utilizando el túnel establecido con el (2)

 

 

 

4.- CREAR EL TÚNEL REVERSO

El túnel reverso se crea entre el servidor (1) y el servidor (2). Para ello, debemos seguir la siguiente sintaxis ejecutando el comando desde el servidor (1).

Sintaxis:

ssh -r listen_port:localhost:ssh_port local_user@ip_server_2

 

Donde:

  • listen_port: Nuevo puerto en (2) donde se creará el túnel SSH
  • ssh_port: Puerto SSH del servidor (2)
  • local_user: Usuario local en el servidor (2)
  • ip_server_2: Dirección IP del servidor (2)

 

En nuestro ejemplo, la conexión y creación del túnel SSH reverso se realizaría de la siguiente forma:

raul@pc-destino:~$ ssh -r 3333:localhost:22 raul@183.45.7.3

 

 

Donde:

  • listen_port: 3333
  • ssh_port: 22
  • local_user: raul
  • ip_server_2: 183.45.7.3

 

 

5.- CONECTAR AL SERVIDOR INTERMEDIO

El siguiente paso será conectar de forma normal a través de SSH desde el equipo cliente (3) al servidor intermedio (2):

raul@pc-cliente:~$ ssh raul@183.45.7.3

 

 

6.- CONECTAR EL SERVIDOR REMOTO UTILIZANDO EL TÚNEL REVERSO

Ahora, una vez dentro del equipo (3), conectaremos al equipo (1) a través del túnel reverso de SSH creado en los primeros pasos. Para conectar al equipo (1) a través del túnel usaremos el puerto abierto en el paso 4. Por tanto, para conectar desde (2) al equipo (1) debemos utilizar el siguiente comando:

raul@pc-puente:~$ ssh raul@localhost -p 3333

 

Donde:

  • raul: Usuario local en el equipo remoto (1)
  • localhost: Equipo local
  • 3333: Puerto abierto que comunica a través del túnel con el equipo (1)

 

 

ENJOY!


Acerca de Mi

RPF

Soy Ingeniero Téc. Industrial Mecánico, Administrador de Sistemas Informáticos, Desarrollador de Aplicaciones Informaticas Web, Técnico Superior en PRL, Experto en Energías Renovables... y trabajo actualmente como Senior DevOPS en HP SCDS.

Contactar conmigo

Dirección: León, España

E-Mail: Contactar

Web: https://www.raulprietofernandez.net

Skype: raul.lnx

APÚNTATE GRATIS

VIP RPF
Entra en la Comunidad VIP y consigue acceso a las descargas en PDF, Trucos y Videotutoriales ocultos y mucho más... ¡Muy Pronto!
AVISO DE COOKIES

Esta página web utiliza cookies propias y de terceros para fines funcionales (permitir la navegación web), para optimizar la navegación y personalizarla según tus preferencias asícomo para mostrarte publicidad en base a tu perfil de navegación (p.e páginas visitadas).

Privacidad