Cómo crear Túneles SSH para Acceder a Puertos Ocultos

Los túneles SSH son una herramienta poderosa para acceder de forma segura a servicios remotos que están protegidos por firewalls.

Este artículo explica cómo utilizar túneles SSH para conectarse a puertos ocultos en servidores remotos.

Escenario de partida

Imaginemos que tenemos una aplicación, como MySQL, ejecutándose en un servidor remoto con datos sensibles.

Para protegerlo, se ha configurado un firewall que solo permite acceso desde la red local “192.168.1.0/24”. ¿Cómo podemos acceder a esta instancia de MySQL desde nuestra máquina de desarrollo?

La solución mediante Túneles SSH

Los túneles SSH proporcionan una conexión privada y cifrada entre nuestra máquina local y el servidor remoto.

Esto nos permite acceder a servicios en el servidor remoto como si estuviéramos físicamente conectados a él.

Ventajas de los túneles SSH

  • Acceso seguro a servicios remotos
  • Bypass de restricciones de firewall
  • Conexión cifrada

¿Cómo crear un túnel SSH?

Para crear un túnel SSH, utilizamos el siguiente comando:

autossh -L 3306:127.0.0.1:3306 -N usuario@ip_servidor_remoto

Desglose del comando:

  • -L 3306:127.0.0.1:3306: Mapea el puerto 3306 del servidor remoto al puerto 3306 local.
  • -N: Evita abrir una sesión de terminal en el servidor remoto.
  • usuario@ip_servidor_remoto: Credenciales de acceso al servidor remoto.

Funcionamiento del túnel

Una vez establecido el túnel, podemos conectarnos a la instancia de MySQL remota como si estuviera en nuestra máquina local:

  1. El firewall permite el acceso a través de SSH (generalmente puerto 22).
  2. El túnel SSH nos coloca virtualmente en la red local del servidor.
  3. Podemos acceder al servicio remoto a través de “127.0.0.1” o “localhost” en nuestra máquina.

Consideraciones adicionales

  • El puerto local no tiene que ser el mismo que el remoto. Por ejemplo, podríamos usar el puerto 3307 localmente para evitar conflictos con un servidor MySQL local.
  • Una alternativa a los túneles SSH es utilizar una VPN y conceder acceso a la IP de la VPN.

Conclusión

Los túneles SSH son una herramienta versátil y segura para acceder a servicios remotos protegidos por firewalls.

Con un simple comando, podemos establecer una conexión cifrada que nos permite trabajar con servicios remotos como si estuvieran en nuestra propia máquina.