PDF de programación - Estableciendo Sesiones SSL en MySQL

Imágen de pdf Estableciendo Sesiones SSL en MySQL

Estableciendo Sesiones SSL en MySQLgráfica de visualizaciones

Publicado el 26 de Junio del 2020
780 visualizaciones desde el 26 de Junio del 2020
3,1 MB
69 paginas
Creado hace 9a (28/11/2014)
Estableciendo Sesiones

SSL en MySQL



Gestión de Bases de Datos

LUIS MENGUAL (c)

Estableciendo Sesiones

SSL en MySQL

Objetivos:

• Crear la infraestructura de certificados X.509
necesaria para incorporar servicios de seguridad
en el acceso a un Base de Datos

• Establecer de forma práctica sesiones seguras en

MySQL

• Captura del trafico en el acceso a la BD

Gestión de Bases de Datos

LUIS MENGUAL (c)

Índice

Creación de la Infraestructura necesaria para el
establecimiento de accesos seguros SSL:

1. Usuario cliente_ssl0: Cliente SSL sin Autenticación de
usuario
2. Usuario cliente_ssl: Cliente SSL con Autenticación de
usuario
3. Usuario cliente_ssl1: Cliente SSL con Autenticación de
usuario, verificando el propietario del certificado
4. Usuario cliente_ssl2: Cliente SSL con Autenticación de
usuario, verificando el emisor del certificado

Gestión de Bases de Datos

LUIS MENGUAL (c)

Confirmar que la versión actual de
MySQL soporta el protocolo SSL

1. Desde un cliente
mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.37 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> SHOW VARIABLES LIKE "have_ssl";
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| have_ssl | YES |
+---------------+-------+
1 row in set (0.00 sec)

2. Desde el servidor MySQL
mysqld --ssl
[ERROR] mysql: unknown option ‘—ssl’ ->Esto indica que no soporta SSL
Gestión de Bases de Datos

LUIS MENGUAL (c)

Crear certificados

Certificado de la CA

openssl>

genrsa -out CAClavePrivada.pem 4096

(Generamos un par de claves pública y privada. Obtenemos el fichero
“CAClavePrivada.pem” conteniendo la clave privada de la CA)


req -new -x509 -days 3650 -key CAClavePrivada.pem -out CACertificado.pem

(Obtenemos un certificado autofirmado, fichero “CACertificado.pem”, que será
el certificado de la CA)

x509 –inform PEM –in CACertificado.pem –outform DER –out CACertificado.crt

(Podemos convertir el formato *.pem del certificado a formato *.crt)


Gestión de Bases de Datos

LUIS MENGUAL (c)

Crear certificados
Certificado del Servidor (I)

genrsa -out SR_ClavePrivada.pem 1024

(Generamos un par de claves pública y privada para el usuario. Obtenemos
el fichero “SR_ClavePrivada.pem” conteniendo la clave privada del servidor)

req –new -key SR_ClavePrivada.pem -out SR_Peticion.csr

(Creamos un certificado de usuario y creamos una petición a la espera
que la firme la CA)

x509 -req -days 365 -in SR_Peticion.csr -CA CACertificado.pem
-CAkey CAClavePrivada.pem -set_serial 01 -out SR_Certificado.pem

(obtenemos un certificado firmado por la CA, listo para ser utilizado
en el Gestor de la BD, servidor, o en el cliente)

Gestión de Bases de Datos


LUIS MENGUAL (c)

Crear certificados
Certificado del Servidor (II)



x509 –inform PEM –in SR_Certificado.pem –outform DER
–out SR_Certificado.crt

(opcionalmente podemos obtener el fichero del certificado del servidor
en formato *.crt)


pkcs12 -export -in SR_Certificado.pem -inkey SR_ClavePrivada.pem
-out SR_Certificado.p12

(opcionalmente podemos obtener el fichero del certificado del servidor
en formato *.p12, incorporando la clave privada)


Gestión de Bases de Datos

LUIS MENGUAL (c)

Arranque Servidor

1. Arranque manual del Servidor


mysqld –ssl --ssl-ca=CACertificado.pem --ssl-cert=SR_Certificado.pem
--ssl-key=SR_ClavePrivada.pem

(Los certificados deben estar en el path adecuado)

2. Arranque automático con el fichero de configuración (my.ini)



Gestión de Bases de Datos

LUIS MENGUAL (c)

Arranque Manual Servidor

Variables SSL

Gestión de Bases de Datos

LUIS MENGUAL (c)

Conexión Cliente root ssl

Comprobación certificados cargados correctamente (I)

mysql -u root --ssl-ca=ca.pem

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.1.37 Source distribution

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


Ahora comprobamos que la conexión se ha establecido con ssl

mysql> SHOW STATUS LIKE "ssl_cipher";
+---------------+--------------------+
| Variable_name | Value |
+---------------+--------------------+
| Ssl_cipher | DHE-RSA-AES256-SHA |
+---------------+--------------------+

Gestión de Bases de Datos

LUIS MENGUAL (c)

Conexión Cliente root ssl

Comprobación certificados cargados correctamente (II)


mysql> \s
--------------
mysql Ver 14.14 Distrib 5.5.16, for Win32 (x86)

Connection id: 3
Current database:
Current user: root@localhost
SSL: Cipher in use is DHE-RSA-AES256-SHA
Using delimiter: ;
Server version: 5.1.37 Source distribution
Protocol version: 10
Connection: localhost via TCP/IP
Server characterset: latin1
Db characterset: latin1
Client characterset: cp850
Conn. characterset: cp850
TCP port: 3306
Uptime: 30 sec

Threads: 3 Questions: 22 Slow queries: 0 Opens: 19 Flush tables: 1 Open tab
les: 12 Queries per second avg: 0.733
--------------


Gestión de Bases de Datos

LUIS MENGUAL (c)

Conexión Cliente root ssl

Comprobación certificados cargados correctamente (III)

Si no están bien cargados los certificados saldría lo siguiente:

mysql -u root --ssl-ca=ca.pem

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 5.1.37 Source distribution

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> SHOW STATUS LIKE "ssl_cipher";
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Ssl_cipher | |
+---------------+-------+
1 row in set (0.00 sec)


Gestión de Bases de Datos

LUIS MENGUAL (c)

Conexión Cliente root ssl

Comprobación certificados cargados correctamente (IV)

mysql> \s
--------------
mysql Ver 14.14 Distrib 5.5.16, for Win32 (x86)

Connection id: 9
Current database:
Current user: root@localhost
SSL: Not in use
Using delimiter: ;
Server version: 5.1.37 Source distribution
Protocol version: 10
Connection: localhost via TCP/IP
Server characterset: latin1
Db characterset: latin1
Client characterset: cp850
Conn. characterset: cp850
TCP port: 3306
Uptime: 5 min 46 sec

Threads: 1 Questions: 59 Slow queries: 0 Opens: 20 Flush tables: 1 Open tab
les: 13 Queries per second avg: 0.170
--------------


Gestión de Bases de Datos

LUIS MENGUAL (c)

Conexión Cliente root ssl
MySQL Workbench (I)

Gestión de Bases de Datos

LUIS MENGUAL (c)

Conexión Cliente root ssl
MySQL Workbench (II)

Gestión de Bases de Datos

LUIS MENGUAL (c)

Arranque automático Servidor (I)



Fichero configuración: “my.ini”



ssl
ssl-ca = "C:/XAMPP_28MAR11_LM/xampp/mysql/CONFIGURACION_MYSQL_SSL
/SERVER/CACertificado.pem"
ssl-cert = "C:/XAMPP_28MAR11_LM/xampp/mysql/CONFIGURACION_MYSQL_SSL
/SERVER/SR_Certificado.pem"
ssl-key = "C:/XAMPP_28MAR11_LM/xampp/mysql/CONFIGURACION_MYSQL_SSL
/SERVER/SR_ClavePrivada.pem"
ssl-capath = "C:/XAMPP_28MAR11_LM/xampp/mysql/CONFIGURACION_MYSQL_SSL
/SERVER"

• Con el gestor de BD apagado hay que editar el fichero my.ini
insertar las líneas anteriores, guardar y cerrar el fichero

• Copiar los certificados en los paths especificados

• Finalmente, reiniciar el Gestor de la BD


Gestión de Bases de Datos

LUIS MENGUAL (c)

Arranque Automático Servidor

Variables SSL

Gestión de Bases de Datos

LUIS MENGUAL (c)

CREAR USUARIOS SSL

1. Usuario cliente_ssl0: Cliente SSL sin Autenticación de
usuario
2. Usuario cliente_ssl: Cliente SSL con Autenticación de
usuario
3. Usuario cliente_ssl1: Cliente SSL con Autenticación de
usuario, verificando el propietario del certificado
4. Usuario cliente_ssl2: Cliente SSL con Autenticación de
usuario, verificando el emisor del certificado



Gestión de Bases de Datos

LUIS MENGUAL (c)

CREAR USUARIOS SSL (1)

1. Usuario cliente_ssl0: Cliente SSL sin Autenticación de
usuario

Gestión de Bases de Datos

LUIS MENGUAL (c)

1. Crear cliente_ssl0 (sin autenticación)

Configuración en el servidor

LUIS MENGUAL (c)



GRANT ALL PRIVILEGES ON *.* TO 'cliente_ssl0'@'%' IDENTIFIED BY 'ssl‘
WITH GRANT OPTION;

(Crear el usuario cliente_ssl0“ con clave ssl)



GRANT ALL PRIVILEGES ON *.* TO 'cliente_ssl0'@'%' IDENTIFIED BY 'ssl'
REQUIRE SSL;

(Al cliente cliente_ssl0 con clave ssl se el exige utilizar SSL)



SHOW GRANTS FOR cliente_ssl0;

(Vemos los privilegios/requisitos creados para este usuario)

-
'GRANT ALL PRIVILEGES ON *.* TO \'cliente_ssl0\'@\'%\' IDENTIFIED BY
PASSWORD \'*035E199C2E188B7300132D5C991D9E002AB5C150\'
REQUIRE SSL WITH GRANT OPTION'



Gestión de Bases de Datos

1. Crear cliente_ssl0 (sin autenticación)

Arranque Servidor



1. Arranque manual del Servidor


mysqld –ssl --ssl-ca=CACertificado.pem --ssl-cert=SR_Certificado.pem
--ssl-key=SR_ClavePrivada.pem

(Los certificados deben estar en el path adecuado)

2. Arranque automático con el fichero de configuración (my.ini)



Gestión de Bases de Datos

LUIS MENG
  • Links de descarga
http://lwp-l.com/pdf17830

Comentarios de: Estableciendo Sesiones SSL en MySQL (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad