Asegure MariaDB con soporte SSL en Ubuntu 16.04

MariaDB es una base de datos gratuita de código abierto, y es el reemplazo directo más utilizado para MySQL. Está hecho por los desarrolladores de MySQL y está destinado a permanecer libre bajo la GNU GPL. Es muy rápido, escalable y viene con un rico conjunto de características que lo hacen muy versátil para una amplia variedad de casos de uso.

Este tutorial lo guiará a través de cómo instalar y configurar MariaDB con soporte SSL en Ubuntu 16.04.

Requisitos

  • Una nueva instancia de Ubuntu 16.04 Vultr.
  • Un usuario no root con privilegios de sudo.
  • Se configura una dirección IP estática 192.168.0.190 en la instancia del servidor.
  • Se configura una dirección IP estática 192.168.0.191 en la máquina del cliente.

Paso 1: instalar MariaDB

Por defecto, la última versión de MariaDB no está disponible en el repositorio de Ubuntu 16.04; por lo tanto, deberá agregar el repositorio MariaDB a su sistema.

Primero, descargue la clave con el siguiente comando:

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8

A continuación, agregue el repositorio MariaDB al /etc/apt/sources.listarchivo:

sudo echo "deb [arch=amd64,i386,ppc64el] http://ftp.utexas.edu/mariadb/repo/10.1/ubuntu xenial main" >> /etc/apt/sources.list

Actualice el índice apt con el siguiente comando:

sudo apt-get update -y

Una vez que apt index ha sido actualizado, instale el servidor MariaDB con el siguiente comando:

sudo apt-get install mariadb-server -y

Inicie el servidor MariaDB y permita que se inicie en el momento del arranque:

sudo systemctl start mysql
sudo systemctl enable mysql

A continuación, deberá ejecutar un mysql_secure_installationscript para asegurar la instalación de MariaDB. Este script le permite establecer la contraseña de root, eliminar usuarios anónimos, no permitir el inicio de sesión root remoto y eliminar la base de datos de prueba:

sudo mysql_secure_installation

Paso 2: cree un certificado SSL y una clave privada para el servidor

Primero, cree un directorio para almacenar todos los archivos de claves y certificados.

sudo mkdir /etc/mysql-ssl

A continuación, cambie el directorio /etc/mysql-ssly cree el certificado de CA y la clave privada con el siguiente comando:

sudo cd /etc/mysql-ssl
sudo openssl genrsa 2048 > ca-key.pem
sudo openssl req -new -x509 -nodes -days 365000 -key ca-key.pem -out ca-cert.pem

Responda todas las preguntas como se muestra a continuación:

You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:IN
State or Province Name (full name) [Some-State]:GUJ
Locality Name (eg, city) []:JND
Organization Name (eg, company) [Internet Widgits Pty Ltd]:ENJ
Organizational Unit Name (eg, section) []:SYSTEM
Common Name (e.g. server FQDN or YOUR name) []:HITESH
Email Address []:example@example.com

A continuación, cree una clave privada para el servidor con el siguiente comando:

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

Responda todas las preguntas como lo hizo en el comando anterior.

A continuación, exporte la clave privada del servidor a una clave de tipo RSA con el siguiente comando:

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

Finalmente, genere un certificado de servidor utilizando el certificado de CA de la siguiente manera:

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

Ahora puede ver todos los certificados y claves con el siguiente comando:

ls

Debería ver el siguiente resultado:

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

Una vez que haya terminado, puede continuar con el siguiente paso.

Paso 3: Configurar el servidor MariaDB para usar SSL

Debe tener todos los certificados y una clave privada; y ahora necesitará configurar MariaDB para usar la clave y los certificados. Puede hacer esto editando el /etc/mysql/mariadb.conf.d/50-server.cnfarchivo:

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

Agregue las siguientes líneas debajo de la [mysqld]sección:

ssl-ca=/etc/mysql-ssl/ca-cert.pem
ssl-cert=/etc/mysql-ssl/server-cert.pem
ssl-key=/etc/mysql-ssl/server-key.pem

##Change this value to connect the MariaDB server from another host.
bind-address = *

Guarde el archivo, luego reinicie el servicio MariaDB para aplicar estos cambios:

sudo systemctl restart mysql

Ahora, puede verificar si la configuración SSL funciona o no con la siguiente consulta:

mysql -u root -p
MariaDB [(none)]> SHOW VARIABLES LIKE '%ssl%';

Si la configuración fue exitosa, debería ver el siguiente resultado:

+---------------+--------------------------------+
| Variable_name | Value                          |
+---------------+--------------------------------+
| have_openssl  | YES                            |
| have_ssl      | YES                            |
| ssl_ca        | /etc/mysql-ssl/ca-cert.pem     |
| ssl_capath    |                                |
| ssl_cert      | /etc/mysql-ssl/server-cert.pem |
| ssl_cipher    |                                |
| ssl_crl       |                                |
| ssl_crlpath   |                                |
| ssl_key       | /etc/mysql-ssl/server-key.pem  |
+---------------+--------------------------------+

Debería notar que los valores have_ssly have_opensslestán habilitados en la salida anterior.

Paso 4: crear un usuario con privilegios SSL

Cree un usuario remoto que tenga privilegios para acceder al servidor MariaDB a través de SSL. Haga esto ejecutando el siguiente comando:

Primero, inicie sesión en el shell de MySQL:

mysql -u root -p

A continuación, cree un usuario remotey otorgue privilegios para acceder al servidor a través de SSL.

MariaDB [(none)]>GRANT ALL PRIVILEGES ON *.* TO 'remote'@'192.168.0.191' IDENTIFIED BY 'password' REQUIRE SSL;

Luego, vacíe los privilegios con el siguiente comando:

MariaDB [(none)]>FLUSH PRIVILEGES;

Finalmente, salga del shell MySQL con el siguiente comando:

MariaDB [(none)]>exit;

Nota: 192.168.0.191 es la dirección IP de la máquina del usuario remoto (Cliente).

Su servidor ahora está listo para permitir conexiones a usuarios remotos.

Paso 5: Crear el certificado del cliente

La configuración del lado del servidor está completa. A continuación, deberá crear una nueva clave y certificado para el cliente.

En la máquina del servidor, cree la clave del cliente con el siguiente comando:

sudo cd /etc/mysql-ssl
sudo sudo openssl req -newkey rsa:2048 -days 365 -nodes -keyout client-key.pem -out client-req.pem

A continuación, procese la clave RSA del cliente con el siguiente comando:

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

Finalmente, firme el certificado del cliente con el siguiente comando:

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

Paso 6: Configure el cliente MariaDB para usar SSL

Todos los certificados y la clave están listos para el cliente. A continuación, deberá copiar todos los certificados de cliente en cualquier máquina cliente donde desee ejecutar el cliente MariaDB.

Deberá instalar el cliente MariaDB en la máquina cliente.

Primero, en la máquina cliente, descargue la clave para MariaDB con el siguiente comando:

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8

Luego, agregue el repositorio MariaDB al /etc/apt/sources.listarchivo:

sudo echo "deb [arch=amd64,i386,ppc64el] http://ftp.utexas.edu/mariadb/repo/10.1/ubuntu xenial main" >> /etc/apt/sources.list

A continuación, actualice el índice de apt con el siguiente comando:

sudo apt-get update -y

Una vez que se actualiza el índice apt, instale el cliente MariaDB en la máquina cliente con el siguiente comando:

sudo apt-get install mariadb-client -y

Ahora cree un directorio para almacenar todos los certificados:

sudo mkdir /etc/mysql-ssl

A continuación, copie todos los certificados de cliente de la máquina del servidor a la máquina del cliente con el siguiente comando:

sudo scp root@192.168.0.190:/etc/mysql-ssl/client-* /etc/mysql-ssl/

Luego, deberá configurar el cliente MariaDB para usar SSL. Puede hacer esto creando un /etc/mysql/mariadb.conf.d/50-mysql-clients.cnfarchivo:

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

Agregue las siguientes líneas:

[client]
ssl-ca=/etc/mysql-ssl/ca-cert.pem
ssl-cert=/etc/mysql-ssl/client-cert.pem
ssl-key=/etc/mysql-ssl/client-key.pem

Guarde el archivo cuando haya terminado.

Paso 7: Verifique las conexiones remotas

Ahora que todo está configurado, es hora de verificar si puede conectarse con éxito al servidor MariaDB o no.

En la máquina cliente, ejecute el siguiente comando para conectarse al servidor MariaDB:

mysql -u remote -h 192.168.0.190 -p mysql

Se le pedirá que ingrese la remotecontraseña de usuario. Después de proporcionar la contraseña, iniciará sesión en el servidor remoto MariaDB.

Verifique el estado de la conexión con el siguiente comando:

MariaDB [mysql]> status

Debería ver el siguiente resultado:

--------------
mysql  Ver 15.1 Distrib 10.2.7-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

Connection id:      62
Current database:   mysql
Current user:       remote@192.168.0.191
SSL:            Cipher in use is DHE-RSA-AES256-SHA
Current pager:      stdout
Using outfile:      ''
Using delimiter:    ;
Server:         MariaDB
Server version:     10.0.31-MariaDB-0ubuntu0.16.04.2 Ubuntu 16.04
Protocol version:   10
Connection:     192.168.0.190 via TCP/IP
Server characterset:    utf8mb4
Db     characterset:    utf8mb4
Client characterset:    utf8
Conn.  characterset:    utf8
TCP port:       3306
Uptime:         1 hours 31 min 31 sec

Deberías ver SSL: Cipher in use is DHE-RSA-AES256-SHAen la salida anterior. Eso significa que su conexión ahora es segura con SSL.

Conclusión

¡Felicidades! Ha configurado correctamente un servidor MariaDB con soporte SSL. Ahora puede otorgar acceso a otros clientes para acceder al servidor MariaDB a través de SSL.

Dejar un comentario

ZPanel y Sentora en CentOS 6 x64

ZPanel y Sentora en CentOS 6 x64

ZPanel, un panel de control de alojamiento web popular, se bifurcó en 2014 a un nuevo proyecto llamado Sentora. Aprende a instalar Sentora en tu servidor con este tutorial.

Cómo instalar Vtiger CRM Open Source Edition en CentOS 7

Cómo instalar Vtiger CRM Open Source Edition en CentOS 7

Aprende cómo instalar Vtiger CRM, una aplicación de gestión de relaciones con el cliente, en CentOS 7 para aumentar tus ventas y mejorar el servicio al cliente.

Cómo instalar el servidor Counter-Strike 1.6 en Linux

Cómo instalar el servidor Counter-Strike 1.6 en Linux

Esta guía completa le mostrará cómo configurar un servidor Counter-Strike 1.6 en Linux, optimizando el rendimiento y la seguridad para el mejor juego. Aprende los pasos más recientes aquí.

¿Puede la IA luchar con un número cada vez mayor de ataques de ransomware?

¿Puede la IA luchar con un número cada vez mayor de ataques de ransomware?

Los ataques de ransomware van en aumento, pero ¿puede la IA ayudar a lidiar con el último virus informático? ¿Es la IA la respuesta? Lea aquí, sepa que la IA es una bendición o una perdición

ReactOS: ¿Es este el futuro de Windows?

ReactOS: ¿Es este el futuro de Windows?

ReactOS, un sistema operativo de código abierto y gratuito, está aquí con la última versión. ¿Puede satisfacer las necesidades de los usuarios de Windows de hoy en día y acabar con Microsoft? Averigüemos más sobre este estilo antiguo, pero una experiencia de sistema operativo más nueva.

Manténgase conectado a través de la aplicación de escritorio WhatsApp 24 * 7

Manténgase conectado a través de la aplicación de escritorio WhatsApp 24 * 7

Whatsapp finalmente lanzó la aplicación de escritorio para usuarios de Mac y Windows. Ahora puede acceder a Whatsapp desde Windows o Mac fácilmente. Disponible para Windows 8+ y Mac OS 10.9+

¿Cómo puede la IA llevar la automatización de procesos al siguiente nivel?

¿Cómo puede la IA llevar la automatización de procesos al siguiente nivel?

Lea esto para saber cómo la Inteligencia Artificial se está volviendo popular entre las empresas de pequeña escala y cómo está aumentando las probabilidades de hacerlas crecer y dar ventaja a sus competidores.

La actualización complementaria de macOS Catalina 10.15.4 está causando más problemas que resolver

La actualización complementaria de macOS Catalina 10.15.4 está causando más problemas que resolver

Recientemente, Apple lanzó macOS Catalina 10.15.4, una actualización complementaria para solucionar problemas, pero parece que la actualización está causando más problemas que conducen al bloqueo de las máquinas Mac. Lee este artículo para obtener más información

13 Herramientas comerciales de extracción de datos de Big Data

13 Herramientas comerciales de extracción de datos de Big Data

13 Herramientas comerciales de extracción de datos de Big Data

¿Qué es un sistema de archivos de diario y cómo funciona?

¿Qué es un sistema de archivos de diario y cómo funciona?

Nuestra computadora almacena todos los datos de una manera organizada conocida como sistema de archivos de diario. Es un método eficiente que permite a la computadora buscar y mostrar archivos tan pronto como presiona buscar.