Working Hours: De lunes a viernes, de 10AM a 10PM

imagen destacada del post con un texto en el centro que dice Cómo exponer tu base de datos públicamente usando SSH seguro y abajo del texto aparece la categoria del post

Introducción: Acceso seguro y flexible a bases de datos en entornos cerrados

En el entorno actual de desarrollo y operación de infraestructuras de bases de datos, la seguridad y la accesibilidad son dos factores clave que muchas veces parecen estar en conflicto. Los servidores de bases de datos gestionadas ubicados en centros de datos virtuales suelen estar protegidos detrás de redes privadas, lo que garantiza que solo los servidores y dispositivos autorizados dentro de esa red puedan acceder. Sin embargo, en ciertos escenarios, especialmente en entornos de desarrollo o administración remota, es necesario conectarse desde una máquina externa que no forma parte de esa red privada.

Esta necesidad plantea el reto de mantener la seguridad sin comprometer la productividad ni la flexibilidad de acceso. Afortunadamente, la tecnología de túneles SSH (Secure Shell) ofrece una solución elegante y robusta para crear un canal seguro que permita extender el acceso a la base de datos hacia el exterior sin exponerla directamente a Internet.

¿Qué es un túnel SSH y por qué es útil?

Un túnel SSH es un mecanismo que utiliza una conexión cifrada establecida mediante el protocolo SSH para redirigir tráfico de red de un puerto local en una máquina hacia un puerto remoto de otro equipo, todo ello de manera segura. En nuestro contexto, esta técnica permite “encapsular” el acceso a la base de datos dentro de una conexión SSH segura, evitando exponer el puerto de la base de datos directamente en la red pública.

Este enfoque ofrece varias ventajas fundamentales:

  • Seguridad reforzada: El tráfico entre el cliente y el servidor se cifra, evitando interceptaciones o manipulaciones maliciosas.
  • Acceso remoto controlado: Permite conectar desde cualquier ubicación a la base de datos sin abrir puertos adicionales en firewalls.
  • Flexibilidad: Compatible con múltiples sistemas operativos y clientes de bases de datos.
  • Configuración sencilla: Generalmente se reduce a un único comando de terminal.

Contexto típico: bases de datos en centros de datos virtuales

En plataformas como el Data Center Designer (DCD) de Arsys, las bases de datos gestionadas (tales como PostgreSQL o MongoDB) residen dentro de un entorno cerrado y seguro. Por diseño, solo son accesibles desde servidores ubicados en la misma red privada o centro de datos virtual.

Esta configuración limita por defecto el acceso solo a máquinas autorizadas dentro del ecosistema de la empresa o proveedor, lo que es ideal para seguridad pero problemático para escenarios donde un desarrollador o administrador remoto necesita conectarse.

¿Por qué no permitir acceso público directo?

Exponer puertos de bases de datos directamente a Internet implica riesgos graves como intentos de intrusión, ataques de fuerza bruta y explotación de vulnerabilidades. Las bases de datos suelen almacenar información sensible, por lo que restringir su acceso es una práctica de ciberseguridad esencial.

Arquitectura del túnel SSH para conexión a bases de datos

La solución es bazar el acceso en una conexión SSH hacia un servidor intermedio dentro del centro de datos que sí esté accesible desde el exterior (por ejemplo, un servidor de salto o bastión). Desde ahí, se establece el túnel que redirige el puerto local de la máquina externa hacia el puerto del servidor de base de datos.

Elemento Descripción Función en el túnel SSH
Máquina cliente externa Ordenador del usuario fuera del centro de datos Inicia la conexión SSH y redirige un puerto local hacia la base de datos remota
Servidor SSH intermedio Servidor accesible públicamente dentro del centro de datos Actúa como puente para la conexión al servidor de base de datos
Servidor de base de datos Servidor con la base de datos gestionada (ej: Postgres) Recibe las conexiones desde el túnel SSH en su puerto estándar (ej: 5432)

Cómo establecer un túnel SSH paso a paso

Requisitos previos

  • Credenciales y acceso SSH válidos al servidor intermediario
  • Permisos para establecer conexiones entre el servidor intermediario y el servidor de base de datos
  • Cliente SSH instalado en máquina local (Linux, macOS, Windows con terminal o herramientas como PuTTY)

Comando básico para crear el túnel

El comando SSH para crear un túnel local típico tiene la siguiente sintaxis:

ssh -L <puerto_local>:<ip_servidor_bd>:<puerto_bd> usuario@ip_servidor_intermedio

Ejemplo concreto:

ssh -L 88888:10.0.0.5:5432 [email protected]

Aquí:

Cómo exponer bases de datos públicamente usando NLB en Data CenterCómo exponer bases de datos públicamente usando NLB en Data Center
  • 88888 es el puerto local en tu máquina donde escucharás.
  • 10.0.0.5 es la IP interna del servidor de base de datos en la red privada.
  • 5432 es el puerto típico de PostgreSQL en el servidor remoto.
  • edu es el usuario SSH para el servidor intermedio.
  • 34.123.45.67 es la IP pública del servidor SSH intermedio.

Una vez ejecutado este comando y manteniendo el terminal abierto, todo el tráfico enviado a localhost:88888 será redirigido de forma segura al puerto 5432 del servidor PostgreSQL.

Cómo conectar tu cliente de base de datos a través del túnel

Después de establecer el túnel SSH, el siguiente paso es configurar tu cliente de base de datos para conectarse a localhost en el puerto local configurado en el túnel.

Por ejemplo, usando Azure Data Studio o pgAdmin, se deben configurar estos parámetros:

  • Servidor: 127.0.0.1 (localhost)
  • Puerto: el puerto local configurado (ej. 88888)
  • Usuario de base de datos: credenciales del usuario PostgreSQL
  • Contraseña: correspondiente
  • Base de datos: nombre de la base de datos a consultar

Así, el cliente se comunica como si la base de datos estuviese localmente, pero en realidad todo el flujo pasa seguro por el túnel SSH.

Ventajas de este método frente a exposición directa

  • No es necesario abrir puertos adicionales en firewall o router para la base de datos, minimizando el perímetro expuesto.
  • El acceso queda restringido a usuarios con claves SSH válidas, aprovechando la robusta autenticación que ofrece SSH.
  • No se requiere instalar software adicional en el servidor de base de datos, solo SSH en el servidor intermedio.
  • Puede combinarse con autenticación de claves públicas para mayor seguridad.
  • Facilita un entorno de desarrollo seguro sin comprometer la capa productiva.

Limitaciones y consideraciones a tener en cuenta

Aunque potente, esta metodología tiene algunos puntos que requieren atención para evitar problemas comunes:

  • Duración de la conexión: el túnel existe mientras la sesión SSH esté activa, por lo que si se cierra la terminal se pierde la conexión.
  • Restricciones del servidor SSH: debe permitir el reenvío de puertos (parámetro AllowTcpForwarding habilitado en configuración SSH).
  • Capacidad del servidor intermediario: debe poder manejar el tráfico y mantener una conexión estable.
  • Latencia: añade un salto adicional en la conexión, que puede afectar el rendimiento en operaciones muy sensibles.

Buenas prácticas para un túnel SSH seguro y eficiente

  • Usar autenticación con claves públicas: evita contraseñas y reduce riesgo de acceso no autorizado.
  • Limitar usuarios SSH: configurar el servidor para aceptar conexiones solo de usuarios necesarios.
  • Monitorizar sesiones activas: para detectar accesos sospechosos o mala utilización.
  • Establecer límites de tiempo: para cerrar automáticamente túneles inactivos o prolongados.
  • Actualizar regularmente el software SSH: para aprovechar las últimas mejoras y correcciones de seguridad.

Alternativas y complementos al túnel SSH

En particular, para entornos más complejos o productivos, puede considerarse complementar o sustituir el túnel SSH con soluciones como:

  • VPN corporativas: crean una red privada virtual entre cliente y centro de datos.
  • Herramientas de proxy específicos para base de datos: con autenticación y monitoreo avanzado.
  • Servicios en la nube de bases de datos gestionadas (>DBaaS<): con controles de acceso integrados y conexiones seguras por defecto.

No obstante, para entornos de desarrollo o administración puntual, el túnel SSH sigue siendo una alternativa económica, rápida y segura.

Si quieres profundizar en cómo configurar y utilizar este mecanismo para exponer tu base de datos desde un centro de datos virtual, te invitamos a ver este video explicativo que detalla todos los pasos.

Palabras clave y conceptos relacionados

DBaaS (Bases de Datos Gestionadas)

DBaaS se refiere a servicios de bases de datos ofrecidos como plataformas en la nube donde el proveedor se encarga del mantenimiento, escalabilidad y seguridad a nivel infraestructura. Aunque ofrecen mucho valor, suelen restringir acceso directo externo para proteger la información, lo que hace necesario métodos como los túneles SSH para conectar directamente en modo seguro.

Centro de Datos Virtual (Virtual Data Center)

Son entornos virtualizados donde se alojan recursos de cómputo y almacenamiento en la nube. Las redes privadas dentro de un CDV aíslan los servidores, incluyendo bases de datos, limitando su acceso externo por seguridad. El túnel SSH permite conectar desde fuera respetando esta segmentación.

Data Center Designer (DCD)

Plataforma para diseñar y gestionar centros de datos virtuales. En DCD, las conexiones a bases de datos gestionadas son locales por defecto; la exposición externa vía túnel SSH se convierte en una técnica imprescindible para conexiones remotas seguras.

Ventajas del servicio PaaS y bases de datos gestionadas DBaaSVentajas del servicio PaaS y bases de datos gestionadas DBaaS

PostgreSQL

Es un sistema de gestión de base de datos relacional de código abierto muy popular. PostgreSQL normalmente escucha conexiones en el puerto 5432, que se puede redireccionar mediante túneles SSH para manejos remotos seguros.

Seguridad y cifrado

SSH utiliza protocolos criptográficos avanzados (como AES, RSA y ECDSA) para cifrar el tráfico y autenticar usuarios, garantizando la integridad y confidencialidad de las comunicaciones.

Reenvío de puertos (Port Forwarding)

Mecanismo para redirigir puertos de red a través de una conexión SSH, central para el funcionamiento del túnel SSH en la exposición segura de bases de datos.

Preguntas frecuentes (FAQ)

¿Es seguro exponer el puerto SSH?

Respuesta: El protocolo SSH incorpora cifrado robusto para proteger los datos en tránsito y utiliza algoritmos de clave pública para la autenticación, lo que lo hace muy seguro si se configura adecuadamente. El reenvío de puertos SSH cifra toda la comunicación que pasa por el túnel, mitigando riesgo de interceptación o acceso no autorizado. Sin embargo, es fundamental implementar buenas prácticas como usar autenticación basada en claves, limitar usuarios y mantener actualizado el software SSH para prevenir vulnerabilidades.

¿Cómo se garantiza la seguridad en una conexión mediante SSH?

Respuesta: SSH emplea algoritmos criptográficos avanzados, como AES para el cifrado simétrico, y RSA o ECDSA para la autenticación basada en claves públicas. Esto permite que los datos transferidos estén protegidos contra escuchas y alteraciones. Además, el protocolo incluye mecanismos de integridad y verificación de identidad, asegurando que sólo usuarios autorizados puedan establecer conexión. Una correcta configuración y mantenimiento es clave para preservar esta seguridad.

¿Qué mecanismo ofrece SSH para permitir realizar comunicaciones seguras con protocolos no seguros?

Respuesta: SSH puede encapsular tráfico de protocolos no cifrados mediante reenvío de puertos (port forwarding), creando un túnel seguro cifrado para cualquier tipo de dato o protocolo. Esto significa que aplicaciones que originalmente transmiten datos sin protección (como conexiones a bases de datos en texto plano) pueden beneficiarse del cifrado y autenticación que brinda SSH, garantizando confidencialidad e integridad.

¿Qué limitaciones tiene el uso de túneles SSH para bases de datos?

La conexión depende de que la sesión SSH esté activa, el rendimiento puede verse afectado por la latencia adicional, y no es apto para escenarios con requerimientos de alta disponibilidad o múltiples conexiones simultáneas sin sofisticados ajustes.

¿Cómo puedo automatizar la conexión del túnel SSH?

Se pueden emplear herramientas como autossh o configurar scripts con reconexión automática para mantener el túnel activo incluso en caídas temporales. En Windows, PuTTY permite configurar sesiones persistentes.

¿Puedo usar SSH para conectar bases de datos distintas a PostgreSQL?

Sí. SSH es independiente del tipo de base de datos; solo se enruta tráfico TCP. Puedes usarlo para MongoDB, MySQL, SQL Server, etc., siempre que sepas el puerto y la IP del servidor destino.

¿Qué pasa si el servidor intermediario no tiene acceso a la base de datos?

Si el servidor SSH intermedio no puede comunicarse con el servidor de base de datos en la red privada, el túnel no funcionará. Es fundamental que exista conectividad entre estos dos puntos.

¿Existe alguna alternativa para usuarios sin permiso SSH?

Si no se dispone de acceso SSH, alternativas incluyen VPN corporativas, proxy específicos de bases de datos o solicitar al proveedor configuraciones especiales de acceso seguro.

Cómo conectar al servidor de bases de datos en entornos DBaaS completo y seguroCómo conectar al servidor de bases de datos en entornos DBaaS completo y seguro

Conclusión

El túnel SSH es una herramienta poderosa para conectar remotamente a bases de datos ubicadas en redes privadas dentro de centros de datos virtuales, garantizando seguridad y flexibilidad. Su implementación requiere un conocimiento básico de redes y comandos SSH, pero ofrece un equilibrio óptimo entre protección y accesibilidad. Si querés implementar este tipo de soluciones en tu empresa, en Código6 podemos ayudarte. Somos especialistas en automatización, inteligencia artificial y transformación digital. Contactanos para comenzar tu proyecto hoy.

Share

Leave A Comment

Descubre el Poder de la IA

Sumérgete en una experiencia transformadora hacia el futuro de la innovación, explorando el potencial ilimitado de la inteligencia artificial en cada interacción.

At Power AI, we offer affordable and comprehensive range of AI solutions, that empower drive growth, and enhance efficiency to meet your unique needs.

Join Our Newsletter

We will send you weekly updates for your better Product management.

© 2025 Codigo6 All Rights Reserved.