Autenticar usuarios MySQL utilizando SSL
- Detalles
- Categoría: Gurú
- Creado en Viernes, 02 Marzo 2012 18:39
- Visitas: 601
Recientemente me tocó configurar un servidor MySQL para autenticar usuarios mediante certificados SSL en lugar de contraseñas. El mecanismo de autenticación necesita un certificado para el servidor MySQL y un certificado para cada usuario, todos firmados por la misma autoridad certificante (CA).
La configuración es bastante sencilla. Para habilitar SSL en MySQL es necesario agregar la ruta a los certificados de la CA y del servidor en el archivo my.cnf:
- Editar el archivo my.cnf:
nano /etc/mysql/my.cnf
- Agregar las rutas al certificado de la CA, al certificado del servidor y a la clave privada del certificado del servidor:
# * Security Features
#
# Read the manual, too, if you want chroot!
# chroot = /var/lib/mysql/
#
# For generating SSL certificates I recommend the OpenSSL GUI "tinyca".
#
# ssl-ca=/etc/mysql/cacert.pem
# ssl-cert=/etc/mysql/server-cert.pem
# ssl-key=/etc/mysql/server-key.pem
ssl-ca=/ruta/al/certificado/de/la/ca/certificado-ca.crt
ssl-cert=/ruta/al/certificado/del/servidor/mysql/certificado-mysql.crt
ssl-key=/ruta/a/la/clave/privada/del/certificado/del/servidor/mysql/certificado-mysql.key - Los clientes que se conecten a través de SSL deben utilizar un certificado firmado por la misma CA que firma el certificado del servidor MySQL. Luego para una base de datos en particular (por ejemplo: "bd_ejemplo") se fuerza la autenticación mediante SSL agregando "require x509" en la sentencia "grant" (en este ejemplo se le otorgan todos los privilegios "all privileges" al usuario "usuario_ssl"):
grant all privileges on bd_ejemplo.* to 'usuario_ssl'@'localhost' require x509;
Asumiendo que el usuario tiene un certificado firmado por la misma CA que firma el certificado del serivdor MySQL, el cliente realiza la conexión de la siguiente forma:
mysql -u usuario_ssl --ssl-key=/ruta/clave/privada/usuario.key --ssl-cert=/ruta/certificado/usuario.crt bd_ejemplo
Si en algún momento necesitan autenticar usuarios sin contraseña (por ejemplo usuarios para realizar backups) les puede ser útil.
Más adelante publicaré un artículo sobre cómo crear tu propia CA autofirmada, por lo tanto estén atentos...
Sponsor
Hits Recientes
- Iron: alternativa a Google Chrome hace 4 minutos
- Instalación y configuración de OpenVPN hace 6 minutos
- Virtualización en CentOS 6.2 utilizando KVM hace 7 minutos
- Autenticar usuarios MySQL utilizando SSL hace 9 minutos
- Qué es el "stolen time" hace 10 minutos
- Opiniones hace 11 minutos
- Estadísticas 2012 hace 12 minutos
- KVM: rendimiento de red en máquinas virtuales GNU/Linux hace 14 minutos
- Encender "Num Lock" por defecto en el teclado en KDE 4 hace 18 minutos
- Reemplazos para Microsoft Visio hace 18 minutos
Sponsor
Más Leído
- Virtualización en CentOS 6.2 utilizando KVM (3343)
- Instalación y configuración de OpenVPN (3049)
- "ps aux" explicado (2380)
- Instalar samba en CentOS 6.2 (2310)
- Por qué no utilizar 000webhost.com (2097)
- Cómo configurar el proxy en Ubuntu Server 12.04 (1975)
- Utilizar SPICE en máquinas virtuales KVM (1949)
- Compiz-fusion en CentOS 6.3 (1919)
- Acceso remoto a máquinas virtuales KVM utilizando el cliente SPICE (1770)
- Cómo configurar Samba en Red Hat/CentOS (1723)


