Secure MariaDB avec prise en charge SSL sur Ubuntu 16.04

MariaDB est une base de données open source gratuite, et est le remplacement libre le plus utilisé pour MySQL. Il est réalisé par les développeurs de MySQL et destiné à rester libre sous la GNU GPL. Il est très rapide, évolutif et est livré avec un riche ensemble de fonctionnalités qui le rendent très polyvalent pour une grande variété de cas d'utilisation.

Ce didacticiel vous expliquera comment installer et configurer MariaDB avec prise en charge SSL sur Ubuntu 16.04.

Exigences

  • Une nouvelle instance d'Ubuntu 16.04 Vultr.
  • Un utilisateur non root avec des privilèges sudo.
  • Une adresse IP statique 192.168.0.190 est configurée sur l'instance de serveur.
  • Une adresse IP statique 192.168.0.191 est configurée sur la machine cliente.

Étape 1: installer MariaDB

Par défaut, la dernière version de MariaDB n'est pas disponible dans le référentiel Ubuntu 16.04; vous devrez donc ajouter le référentiel MariaDB à votre système.

Tout d'abord, téléchargez la clé avec la commande suivante:

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

Ensuite, ajoutez le référentiel MariaDB au /etc/apt/sources.listfichier:

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

Mettez à jour l'index apt avec la commande suivante:

sudo apt-get update -y

Une fois l'index apt mis à jour, installez le serveur MariaDB avec la commande suivante:

sudo apt-get install mariadb-server -y

Démarrez le serveur MariaDB et activez-le pour démarrer au démarrage:

sudo systemctl start mysql
sudo systemctl enable mysql

Ensuite, vous devrez exécuter un mysql_secure_installationscript pour sécuriser l'installation de MariaDB. Ce script vous permet de définir le mot de passe root, de supprimer les utilisateurs anonymes, d'interdire la connexion root distante et de supprimer la base de données de test:

sudo mysql_secure_installation

Étape 2: créer un certificat SSL et une clé privée pour le serveur

Créez d'abord un répertoire pour stocker tous les fichiers de clés et de certificats.

sudo mkdir /etc/mysql-ssl

Ensuite, modifiez le répertoire /etc/mysql-sslet créez le certificat CA et la clé privée avec la commande suivante:

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

Répondez à toutes les questions comme indiqué ci-dessous:

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

Ensuite, créez une clé privée pour le serveur avec la commande suivante:

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

Répondez à toutes les questions comme vous l'avez fait dans la commande précédente.

Ensuite, exportez la clé privée du serveur vers une clé de type RSA avec la commande suivante:

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

Enfin, générez un certificat de serveur à l'aide du certificat CA comme suit:

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

Vous pouvez maintenant voir tous les certificats et la clé avec la commande suivante:

ls

Vous devriez voir la sortie suivante:

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

Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.

Étape 3: configurer le serveur MariaDB pour utiliser SSL

Vous devez avoir tous les certificats et une clé privée; et maintenant vous devrez configurer MariaDB pour utiliser la clé et les certificats. Vous pouvez le faire en modifiant le /etc/mysql/mariadb.conf.d/50-server.cnffichier:

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

Ajoutez les lignes suivantes sous la [mysqld]section:

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 = *

Enregistrez le fichier, puis redémarrez le service MariaDB pour appliquer ces modifications:

sudo systemctl restart mysql

Maintenant, vous pouvez vérifier si la configuration SSL fonctionne ou non avec la requête suivante:

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

Si la configuration a réussi, vous devriez voir la sortie suivante:

+---------------+--------------------------------+
| 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  |
+---------------+--------------------------------+

Vous devriez remarquer que les valeurs have_sslet have_opensslsont activées dans la sortie ci-dessus.

Étape 4: créer un utilisateur avec des privilèges SSL

Créez un utilisateur distant qui a le privilège d'accéder au serveur MariaDB via SSL. Pour ce faire, exécutez la commande suivante:

Tout d'abord, connectez-vous au shell MySQL:

mysql -u root -p

Ensuite, créez un utilisateur remoteet accordez le privilège d'accéder au serveur via SSL.

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

Ensuite, videz les privilèges avec la commande suivante:

MariaDB [(none)]>FLUSH PRIVILEGES;

Enfin, quittez le shell MySQL avec la commande suivante:

MariaDB [(none)]>exit;

Remarque: 192.168.0.191 est l'adresse IP de la machine de l'utilisateur distant (client).

Votre serveur est maintenant prêt à autoriser les connexions à l'utilisateur distant.

Étape 5: créer le certificat client

La configuration côté serveur est terminée. Ensuite, vous devrez créer une nouvelle clé et un nouveau certificat pour le client.

Sur la machine serveur, créez la clé client avec la commande suivante:

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

Ensuite, traitez la clé RSA cliente avec la commande suivante:

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

Enfin, signez le certificat client avec la commande suivante:

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

Étape 6: Configurer le client MariaDB pour utiliser SSL

Tous les certificats et la clé sont prêts pour le client. Ensuite, vous devrez copier tous les certificats clients sur n'importe quel ordinateur client sur lequel vous souhaitez exécuter le client MariaDB.

Vous devrez installer le client MariaDB sur la machine cliente.

Tout d'abord, sur la machine cliente, téléchargez la clé de MariaDB avec la commande suivante:

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

Ensuite, ajoutez le référentiel MariaDB au /etc/apt/sources.listfichier:

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

Ensuite, mettez à jour l'index apt avec la commande suivante:

sudo apt-get update -y

Une fois que l'index apt est mis à jour, installez le client MariaDB sur la machine client avec la commande suivante:

sudo apt-get install mariadb-client -y

Créez maintenant un répertoire pour stocker tous les certificats:

sudo mkdir /etc/mysql-ssl

Ensuite, copiez tous les certificats clients de la machine serveur vers la machine client avec la commande suivante:

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

Ensuite, vous devrez configurer le client MariaDB pour utiliser SSL. Vous pouvez le faire en créant un /etc/mysql/mariadb.conf.d/50-mysql-clients.cnffichier:

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

Ajoutez les lignes suivantes:

[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

Enregistrez le fichier lorsque vous avez terminé.

Étape 7: vérifier les connexions à distance

Maintenant que tout est configuré, il est temps de vérifier si vous pouvez vous connecter au serveur MariaDB avec succès ou non.

Sur la machine cliente, exécutez la commande suivante pour vous connecter au serveur MariaDB:

mysql -u remote -h 192.168.0.190 -p mysql

Il vous sera demandé de saisir le remotemot de passe utilisateur. Après avoir donné le mot de passe, vous serez connecté au serveur MariaDB distant.

Vérifiez l'état de la connexion avec la commande suivante:

MariaDB [mysql]> status

Vous devriez voir la sortie suivante:

--------------
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

Vous devriez voir SSL: Cipher in use is DHE-RSA-AES256-SHAdans la sortie ci-dessus. Cela signifie que votre connexion est désormais sécurisée avec SSL.

Conclusion

Toutes nos félicitations! Vous avez correctement configuré un serveur MariaDB avec prise en charge SSL. Vous pouvez désormais accorder l'accès à d'autres clients pour accéder au serveur MariaDB via SSL.

Laisser un commentaire

Comment générer des clés SSH?

Comment générer des clés SSH?

Découvrez comment générer une clé SSH pour accéder à votre serveur sans mot de passe. Suivez nos étapes faciles à comprendre pour créer et ajouter des clés SSH.

Créer un serveur de messagerie avec hMailServer sous Windows

Créer un serveur de messagerie avec hMailServer sous Windows

Découvrez comment créer un serveur de messagerie avec hMailServer sous Windows pour recevoir des e-mails facilement.

LIA peut-elle lutter contre un nombre croissant dattaques de ransomware

LIA peut-elle lutter contre un nombre croissant dattaques de ransomware

Les attaques de ransomware sont en augmentation, mais l'IA peut-elle aider à lutter contre le dernier virus informatique ? L'IA est-elle la réponse ? Lisez ici, sachez que l'IA est un boone ou un fléau

ReactOS : est-ce lavenir de Windows ?

ReactOS : est-ce lavenir de Windows ?

ReactOS, un système d'exploitation open source et gratuit est ici avec la dernière version. Cela peut-il suffire aux besoins des utilisateurs de Windows modernes et faire tomber Microsoft ? Découvrons-en plus sur cet ancien style, mais une expérience de système d'exploitation plus récente.

Restez connecté via lapplication de bureau WhatsApp 24 * 7

Restez connecté via lapplication de bureau WhatsApp 24 * 7

Whatsapp a finalement lancé l'application de bureau pour les utilisateurs Mac et Windows. Vous pouvez désormais accéder facilement à Whatsapp depuis Windows ou Mac. Disponible pour Windows 8+ et Mac OS 10.9+

Comment lIA peut-elle faire passer lautomatisation des processus au niveau supérieur ?

Comment lIA peut-elle faire passer lautomatisation des processus au niveau supérieur ?

Lisez ceci pour savoir comment l'intelligence artificielle devient populaire parmi les petites entreprises et comment elle augmente les probabilités de les faire grandir et de donner à leurs concurrents un avantage.

La mise à jour du supplément macOS Catalina 10.15.4 cause plus de problèmes quelle nen résout

La mise à jour du supplément macOS Catalina 10.15.4 cause plus de problèmes quelle nen résout

Récemment, Apple a publié macOS Catalina 10.15.4, une mise à jour supplémentaire pour résoudre les problèmes, mais il semble que la mise à jour cause davantage de problèmes, ce qui entraîne le bridage des machines mac. Lisez cet article pour en savoir plus

13 outils commerciaux dextraction de données de Big Data

13 outils commerciaux dextraction de données de Big Data

13 outils commerciaux d'extraction de données de Big Data

Quest-ce quun système de fichiers de journalisation et comment fonctionne-t-il ?

Quest-ce quun système de fichiers de journalisation et comment fonctionne-t-il ?

Notre ordinateur stocke toutes les données d'une manière organisée connue sous le nom de système de fichiers de journalisation. C'est une méthode efficace qui permet à l'ordinateur de rechercher et d'afficher des fichiers dès que vous appuyez sur la recherche.https://wethegeek.com/?p=94116&preview=true

Singularité technologique : un futur lointain de la civilisation humaine ?

Singularité technologique : un futur lointain de la civilisation humaine ?

Alors que la science évolue à un rythme rapide, prenant le pas sur une grande partie de nos efforts, les risques de nous soumettre à une Singularité inexplicable augmentent également. Lisez, ce que la singularité pourrait signifier pour nous.