Mysql SSL 231219 105425
Mysql SSL 231219 105425
Mysql SSL 231219 105425
Conclusion ............................................................................... 13
1
Introduction
Dans ce tutoriel, nous allons apprendre à configurer MySQL pour qu'il utilise le SSL afin de
chiffrer les échanges avec ses clients.
Il faut savoir que le chiffrement d'un flux par SSL alourdis en général les échanges par des
traitements et des calculs supplémentaires (chiffrement / déchiffrement), c'est pourquoi
le SSL n'est pas configuré par défaut dans MySQL. Il peut toutefois être dans certaines situations
une solution non négligeable pour sécuriser les échanges.
Par défaut, le chiffrement des données n'est pas activé, ce qui signifie que les données circulent
en texte clair
1. configuration de la base de données
Création de la base de données securite
#mysql> create database securite ;
2
Création de l’utilisateur mbaye
#mysql> create user "mbaye " @ "% " identified by "passer" ;
Il faut donner tous les droits à l’utilisateur mbaye à la base de données securite par la commande suivante
mysql>grant all privileges on securite.* to mbaye ;
3
#cd /etc/mysql/mysql.conf.d/
#nano mysqld.cnf
2. Test
Pour les tests l’utilisateur mbaye va se connecter à la base de données à partir d’une machine distante
NB : avant de connecter nous allons lancer wireshark pour analyser les messages
La syntaxe : mysql –utilisateur –p –h adresse_IP_serveur_Mysql
#mysql –u mbaye –p –h 192.168.1.26
Après la connexion à la base de données, on voit que l’utilisateur mbaye et son mot de passe chiffré
4
Maintenant, nous allons exécuter une requête pour sélectionner la base de données
mysql> use securite ;
5
Nous allons exécuter une requête qui affiche tous les utilisateurs de la table utilisateur
6
On constate que sur l’analyseur wireshark, les données de l’insertion circulent t en clair
Cette partie consiste de chiffrer les données qui transitent entre le serveur mysql et le client
7
Générons une clé privée pour le certificat
#cd /etc/mysql/ssl
#sudo openssl genrsa -out ca-key.pem 2048
8
#ls –l
9
La capture ci-dessus montre que le ssl de mysql est activé avec succès
4. Configuration du client
Pour utiliser le mode ssl, nous allons mettre l’option –ssl-mode=REQUIRED
On ne peut donc plus obtenir d'informations sur les échanges client- serveur en sniffant le réseau
car les échanges sont chiffrés par le SSL.On peut peut connaitre le not d’utilisateur du client
10
Nous allons afficher toutes les bases de données
#mysql> show databases ;
Au niveau de l’analyser wireshark on voit que les informations de la requête sql sont chiffrées
11
Nous allons afficher les données de la table utilisateurs de la base de données securite
#mysql>select * from utilisateurs ;
12
Conclusion
L'activation de SSL pour MySQL aide à protéger les données sensibles transmises sur le réseau,
en particulier dans les scénarios où le serveur et les clients communiquent sur des réseaux non
fiables ou sur Internet. Il est important de noter que SSL/TLS pour MySQL nécessite de générer
et de gérer des certificats SSL et de configurer le serveur et les clients de manière appropriée.
13