SSH Tunneling: Cómo funcionan los túneles SSH

por David Abad
SSH Tunneling

SSH Tunneling es una técnica que permite redirigir trafico de red a través de una conexión segura SSH, mapeando puertos locales con servicios remotos. 

Esto puede ser de gran utilidad para, por ejemplo, acceder a servicios remotos (mysql, elastic search, etc.) únicamente disponibles desde una red privada, de forma transparente y segura. Simplemente sería necesario abrir un tunel SSH con una máquina que se encuentre dentro de dicha red privada y que tenga acceso al servicio en cuestión.

Crear tunel SSH

Al abrir un túnel SSH, se mapea un puerto local con el puerto de un servidor remoto, de modo que todo el tráfico dirigido a este puerto, viaja de forma segura a través del túnel SSH.

ssh -N -L [PUERTO LOCAL]:localhost:[PUERTO REMOTO] [USUARIO SSH]@[HOST SSH]
Ejemplo. Creación de túnel SSH para acceder a servicio MySQL remoto (Puerto 3306)

Tunel SSH: MySQL

Desde nuestro equipo local, abrimos el tunel SSH con el servidor remoto:

ssh -N -L 3306:localhost:3306 [USUARIO SSH]@[HOST SSH]

Una vez abierto el túnel, podremos conectarnos a la base de datos desde nuestro equipo como si estuviese funcionando en el puerto 3306 local:

mysql -u[USUARIO] -p[PASSWORD] -h127.0.0.1 -P3306

Crear tunel SSH inverso

Además del tipo de túnel visto anteriormente, lanzado de ORIGEN a DESTINO, también existen los túneles inversos, donde el túnel se lanza del DESTINO al ORIGEN.

Este tipo de túnel es especialmente útil cuando la maquina ORIGEN no tiene acceso SSH a la maquina DESTINO, pero la conexión contraria si que es posible.

ssh -fN -R [PUERTO ORIGEN]:localhost:[PUERTO DESTINO] [USUARIO SSH ORIGEN]@[HOST SSH ORIGEN]

 

Déjanos tu email para recibir contenido interesante en tu bandeja de entrada, cada mes.

¡No hacemos spam!

Otros artículos