Cómo Conectar a MySQL Usando ProxyJump y un Servidor Bastión Sin Redirección de Puertos Locales

Artículos Guías Manuales Sistemas Linux Windows Binario 0

Para conectarte a un servidor MySQL a través de un túnel SSH con un bastión sin redirección de puertos locales, puedes utilizar el comando mysql con soporte SSH directamente o aprovechar un proxy mediante SSH. A continuación cómo hacerlo paso a paso, conectarte a MySQL a través de un túnel SSH con un bastión usando ProxyJump sin usar redirección de puertos locales. Todo estará configurado directamente en tu archivo ~/.ssh/config.

Escenario:

  • Servidor Bastión (intermediario):
    Usuario: usuario_bastion
    IP: ip_bastion
  • Servidor de Base de Datos (destino final):
    Usuario: usuario_destino
    IP: ip_destino
    MySQL escucha en 127.0.0.1:3306.
  • Tu máquina local:
    Ejecutarás comandos para conectarte sin configurar redirecciones de puertos locales.

Paso 1: Verifica las conexiones básicas

  1. Conexión al bastión:
    Asegúrate de poder conectarte al servidor bastión desde tu máquina local:

    ssh usuario_bastion@ip_bastion
  2. Conexión desde el bastión al servidor de base de datos:
    Una vez conectado al bastión, prueba que puedes llegar al servidor MySQL:

    ssh usuario_destino@ip_destino
  3. Conexión a MySQL desde el servidor destino:
    Una vez en el servidor de base de datos, verifica que el servicio MySQL está accesible:

    mysql -h 127.0.0.1 -u usuario_mysql -p

    Si todos estos pasos funcionan, continúa al siguiente.

Paso 2: Configura el archivo SSH para usar ProxyJump

  1. Edita el archivo ~/.ssh/config en tu máquina local:
    Configura el acceso al bastión y al servidor de base de datos. Añade lo siguiente:

    Host bastion
    HostName ip_bastion
    User usuario_bastion
    IdentityFile ~/.ssh/id_rsa # Cambia esto si usas otra clave SSH

    Host mysql-server
    HostName ip_destino
    User usuario_destino
    ProxyJump bastion

    Explicación:
    • Host bastion: Define cómo conectarte al servidor bastión.
    • Host mysql-server: Define cómo conectarte al servidor de base de datos.
    • ProxyJump bastion: Especifica que el acceso al servidor MySQL debe pasar primero por el bastión.
  2. Prueba la conexión SSH a MySQL:
    Desde tu máquina local, verifica que puedes llegar al servidor de base de datos:

    ssh mysql-server

Paso 3: Conexión directa a MySQL con ProxyJump

Ahora que tienes configurado el ProxyJump, puedes conectarte directamente a MySQL desde tu máquina local con el siguiente comando:

mysql -h 127.0.0.1 -P 3306 -u usuario_mysql -p --protocol=TCP --ssh-option="-o ProxyJump=bastion"

Explicación del comando:

  • -h 127.0.0.1: MySQL escucha en 127.0.0.1 en el servidor destino.
  • -P 3306: Puerto donde MySQL está activo.
  • -u usuario_mysql: Usuario para autenticarte en MySQL.
  • -p: Solicitará la contraseña de MySQL al ejecutar.
  • --protocol=TCP: Fuerza la conexión TCP al usar el túnel SSH.
  • --ssh-option="-o ProxyJump=bastion": Indica que el acceso debe pasar por el bastión configurado en ~/.ssh/config.

Paso 4: Validación de la conexión

Cuando ejecutes el comando anterior, el cliente MySQL te pedirá la contraseña de usuario_mysql. Una vez autenticado, deberías poder interactuar con la base de datos de manera normal.

Beneficios de usar ProxyJump

  1. Simplicidad: Toda la lógica del túnel SSH está en ~/.ssh/config.
  2. Seguridad: No abres ni rediriges puertos locales.
  3. Flexibilidad: Puedes reutilizar esta configuración para otros servicios o comandos.

Ahora puedes conectarte a MySQL a través de un bastión sin complicaciones adicionales.