Crear conexión remota servidor base de datos
En este post vamos a crear conexión remota servidor base de datos por medio de un tunel (tunneling) configurado con el servidor ssh para una base de datos mysql.
Para conectarse a una base de datos remota sin tener que abrir puertos en el servidor o realizar configuraciones adicionales que puedan exponer la seguridad de tu servidor usaremos la conexión ssh con el programa putty para realizar la conexión a nuestra base de datos remota con seguridad de llaves privadas y publicas.
Que vamos a necesitar
Servidor
- Un servidor con S.O. ubuntu (o el s.o. con que trabaje) que este alojado en la nube -> Configurar ssh ubuntu server
- Las keys de acceso ssh
- Una base de datos instalada, para este ejemplo se uso mysql (puede ser cualquier db)
Local
- Trabajaremos con Windows
- Usaremos a putty para hacer la configuración y conexión al servidor
- Algun gestos de base de datos, en este caso tenemos mysql workbeanch
Definiciones
Tunel (tunneling)
El tunel consiste en encapsular un protocolo de red sobre otro protocolo de red para enviar datos seguros sobre equipos de computo; para nuestro ejemplo lo usaremos para enviar los datos cifrados de la comunicación de base de datos por medio de la conexión ssh.
Configuración
Verificar puerto mysql
Una ves que tengamos las llaves publicas, privadas y el servidor con la base de datos vamos a realizar la conexión para ello accedemos a la administrador de base de datos y con el siguiente comando verificamos la ip y el puerto que esta usando.
SHOW VARIABLES
WHERE Variable_name IN (
"hostname",
"port")
Donde nos retornara lo siguiente.
Configurar putty
Procedemos a configurar putty, para ello vamos a realizar los siguientes pasos como se explican en las siguientes imagenes.
- 1. Seleccionamos en la categoría la opción de sesión.
- 2. Ingresamos la ip de nuestro servidor.
- 3. Ingresamos el puerto que nuestro caso es el 22 para conexión remota.
- 4. Seleccionamos el tipo de conexión que en nuestro caso es SSH.
- 5. Colocamos un nombre para guardar la sesión y no tener que ingresar los datos de nuevo.
- 6. En la lista de categoría, seleccionamos conexión > SSH > Auth
- 7. Cargaremos la llave privada.ppk que usa para la conexion SSH
- 8. En la misma opción de Auth buscamos tunel.
- 9. El source port es el puerto local de nuestra máquina que usara para conectarse remotamente.
- 10. El destino es la IP y el puerto del servidor en donde estamos realizando la conexión, como en el paso 2 dejamos la IP establecida, colocamos localhost y el puerto que queremos conectar al tunel.
- 11. Adicionamos los parámetros que acabamos de crear.
- 12. Volvemos a la categoría de sesión para finalizar la configuración.
- 13. Guardamos la sesión para cárgala de nuevo despues.
- 14. Damos en conectar.
Configurar mysql workbeanch
Una vez que tengamos la conexión establecida, usaremos a mysql workbeanch para conectarnos a la base de datos remota.
- 1. Crearemos una nueva conexión con el workbeanch.
- 2. Le damos un nombre a la nueva conexión.
- 3. La IP que colocaremos es la local de nuestra máquina, ya que la configuración SSH con el tunel que realizamos anteriormente usara el puerto de enlace para conectarse remotamente.
- 4. Colocamos el puerto que establecimos en el paso 9 de la configuración SSH.
- 5. Comprobaremos la conexión en el test que tiene la aplicación.
- 6. Introducimos la contraseña del motor de mysql.
- 7. Damos en ok para crear la conexión.
Prueba de conexión a mysql
Una vez tengamos la configuraciones realizadas en los pasos anteriores realizamos pruebas, para ello ejecutamos cualquier query, donde estará procesando directamente en el motor de mysql.
Con estos pasos podemos conectarnos remotamente a una base de datos, ahora los invito a realizar el ejercicio para conectarse remotamente, y poder probar cualquier conexión a otros motores de base de datos.