Tutoriales

Configurar SSL / TLS autofirmado de MariaDB en Ubuntu

En este post veremos cómo conectarse a MariaDB a través de SSL / TLS en Ubuntu 20.04 | 18.04.

De forma predeterminada, cuando instale el servidor MariaDB, permitirá conexiones desde cualquier sistema para usuarios con las credenciales correctas.

Si deseas agregar otra capa de seguridad, puede habilitar la configuración de SSL / TLS y obligar a todos los usuarios a conectarse de forma segura.

Para estos tutoriales, usaremos los certificados SSL Let’s Encrypt existentes para configurar con MariaDB.

Para comenzar a configurar MariaDB con certificados SSL / TLS, sigue los pasos a continuación:

Crear certificado SSL

Dado que estamos creando certificados autofirmados, simplemente ejecute los siguientes comandos para crear un directorio donde se crearán los archivos cert.

Después de crear el directorio, cámbielo y comience a crear sus certificados autofirmados.

sudo mkdir /var/lib/mysql/pki
cd /var/lib/mysql/pki

Ahora que se creó el directorio y se cambió a él, ejecute los siguientes comandos para crear el certificado CA y la clave privada.

Crear clave CA y certificado CA

sudo openssl genrsa -out ca-key.pem 2048
sudo openssl req -new -x509 -nodes -days 365 -key ca-key.pem -out ca-cert.pem

Los comandos anteriores generarán una clave de autoridad de certificación de 2048 bits y crearán una nueva clave privada de 1 año (365 días).

Puede aumentar la fecha de vencimiento si lo desea para la clave privada.

Mientras crea la clave privada, se le solicitarán detalles de la clave que está generando.

Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:MN
Locality Name (eg, city) []:BP
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:
Email Address []:

A continuación, cree una clave privada para el servidor. Se le pedirá como se indica arriba. Escriba los detalles que desea incluir con el certificado.

Crear clave privada del servidor

sudo openssl req -newkey rsa:2048 -days 365 -nodes -keyout server-key.pem -out server-req.pem

Cuando haya terminado arriba, exporte la clave privada del servidor a una clave de tipo RSA usando los siguientes comandos:

sudo sudo openssl rsa -in server-key.pem -out server-key.pem

Después de todo lo anterior, ejecute los siguientes comandos para generar un certificado SSL utilizando los siguientes comandos:

Generar certificado SSL / TLS

sudo openssl x509 -req -in server-req.pem -days 365 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem

En el directorio, debería tener estos archivos:

  • ca-cert.pem
  • ca-key.pem
  • server-cert.pem
  • server-key.pem
  • servidor-req.pem

Configurar la conexión MariaDB SSL / TLS

Ahora que ha creado un certificado autofirmado, vaya a MariaDB y configure para conectarse a través de SSL / TLS.

Luego, haga que el usuario de MySQL sea propietario del directorio anterior.

sudo chown -R mysql. /var/lib/mysql/pki

Cuando haya terminado, abra el archivo de configuración MariaDB.

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Luego agregue las líneas resaltadas para habilitar SSL / TLS

# this is only for the mysqld standalone daemon
[mysqld]

#
# * Basic Settings
#
user                    = mysql
pid-file                = /run/mysqld/mysqld.pid
socket                  = /run/mysqld/mysqld.sock
#port                   = 3306
basedir                 = /usr
datadir                 = /var/lib/mysql
tmpdir                  = /tmp
lc-messages-dir         = /usr/share/mysql
#skip-external-locking
ssl-ca=/var/lib/mysql/pki/ca-cert.pem
ssl-cert=/var/lib/mysql/pki/server-cert.pem
ssl-key=/var/lib/mysql/pki/server-key.pem
.....................................
.....................................

Después de agregar las líneas anteriores, reinicie MariaDB.

sudo systemctl restart mariadb

A continuación, conéctese a MariaDB y verifique que SSL / TLS estén cargados ejecutando la siguiente declaración:

sudo mysql -u root

Luego ejecute la consulta a continuación:

show variables like '%ssl%'; 

Debería mostrar líneas similares a las siguientes:

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

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

MariaDB [(none)]> show variables like '%ssl%'; 
+---------------------+--------------------------------+
| Variable_name       | Value                          |
+---------------------+--------------------------------+
| have_openssl        | NO                             |
| have_ssl            | YES                            |
| ssl_ca              | /var/lig/mysql/pki/chain.pem   |
| ssl_capath          |                                |
| ssl_cert            | /var/lib/mysql/pki/cert.pem    |
| ssl_cipher          |                                |
| ssl_crl             |                                |
| ssl_crlpath         |                                |
| ssl_key             | /var/lib/mysql/pki/privkey.pem |
| version_ssl_library | YaSSL 2.4.4                    |
+---------------------+--------------------------------+
10 rows in set (0.001 sec)

Para conectarse a través del cliente a través de SSL / TLS, ejecute los siguientes comandos:

sudo mysql --ssl

Luego muestre el cifrado que se está utilizando:

show status like 'ssl_cipher';

Debería mostrar líneas similares a las siguientes:

+---------------+--------------------+
| Variable_name | Value              |
+---------------+--------------------+
| Ssl_cipher    | DHE-RSA-AES256-SHA |
+---------------+--------------------+
1 row in set (0.000 sec)

Después de habilitar SSL / TLS, debe comenzar a crear usuarios y requerir SSL / TLS para iniciar sesión.

create user dbuser identified by 'password_here' require ssl; 

Para obligar a los usuarios existentes a utilizar SSL / TLS, ejecute la consulta siguiente para cada uno.

grant usage on *.* to 'dbuser_here'@'%' require ssl;

Sal y listo.

Conclusión:

En este tutorial hemos visto cómo configurar MariaDB para conectarse a través de SSL / TLS. Si encuentra un error arriba, utilice el formulario a continuación para informar.

También te puede gustar la publicación a continuación:

Cómo instalar Wine 6 en Ubuntu

Leave a Comment

You may also like

Más