Mysql SSL 231219 105425

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 14

École Centrale des Logiciels Libres et de Télécommunications

Institut Supérieur de Technologie de l'Université de Bangui (IST/UB)

COMPTE RENDU SUR MYSQL ET SSL


Présenté par : Sous la supervision :
Mbaye Ndiaye SAMB Pr. SAMUEL OUYA
AHAMADI NASRY

Années académique : 2022/2023


Sommaire
Introduction .............................................................................. 2
I. les données en clair ................................................................ 2
1. configuration de la base de données ................................................................................................ 2
2. Test .................................................................................................................................................. 4

II. Mysql avec SSL .................................................................... 7


1. Générer les certificats ...................................................................................................................... 7
2. Activation de ssl sur mysql ............................................................................................................... 9
4. Configuration du client ................................................................................................................... 10

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.

I. les données en clair

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 ;

Création de la table utilisateurs dans la base de données securite

#mysql> use securite;


#mysql> create table utilisateurs (id primary key auto_increment,login varchar(50),password
varchar(50));

Insérer des données dans la table utilisateurs


#mysql> insert into utilisateurs (login,password) values ("mbaye","passer");
#mysql> insert into utilisateurs (login,password) values ("nasry","passer");

Vérifier si les données sont insérées


#mysql> select * from utilisateurs;

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 ;

Pour appliquer les droits on tape la commande suivante


mysql> flush privileges ;

Vérifions si l’utilisateur est bien créé

mysql> select user,host from mysql.user ;


% signifie que l’utilisateur peut accéder sur le serveur mysql à distance

Activation de la connexion de notre serveur de mysql à distance

Nous allons éditer le fichier de configuration mysqld.cnf situé dans le répertoire


/etc/mysql/mysql.conf.d/ et on met bind-address =0.0.0.0

3
#cd /etc/mysql/mysql.conf.d/
#nano mysqld.cnf

On redémarre le serveur de mysql et vérifions si le port est ouvert

#service mysql restart


#netstat –anp | grep –w 3306

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 ;

Au niveau de l’analyseur wireshark, on voit le mot de la base de données circule en clair

5
Nous allons exécuter une requête qui affiche tous les utilisateurs de la table utilisateur

Mysql>select * from utilisateurs ;

Au niveau de wireshark on voit la requête exécutée en clair

Nous allons insérer des données dans la table utilisateur


mysql> insert into utilisateurs(login,password) values ("ismaila","passer") ;

6
On constate que sur l’analyseur wireshark, les données de l’insertion circulent t en clair

II. Mysql avec SSL

Cette partie consiste de chiffrer les données qui transitent entre le serveur mysql et le client

1. Générer les certificats


Pour générer les certificats, nous allons utiliser outil Openssl
#apt install openssl

Création du dossier qui doit contenir les certificats


#mkdir /etc/mysql/ssl

7
Générons une clé privée pour le certificat

#cd /etc/mysql/ssl
#sudo openssl genrsa -out ca-key.pem 2048

Générez une demande de signature de certificat (CSR) :


#sudo openssl req -new -key server-key.pem -out ca-csr.pem

Auto-signez le CSR pour générer le certificat :


#sudo openssl x509 -req -in ca-csr.pem -signkey ca-key.pem -out ca-cert.pem

Définissez les autorisations appropriées sur les fichiers de certificate


#sudo chmod 600 server-*.pem

8
#ls –l

2. Activation de ssl sur mysql


Nous allons maintenant aller modifier la configuration de notre serveur afin de lui indiquer les
certificats à utiliser et donc de lui permettre d'utiliser le SSL. On va donc modifier le fichier
"/etc/mysql/my.cnf" pour y ajouter dans la section "[mysqld]" les lignes suivantes :
ssl-ca=/etc/mysql/ssl/ca-cert.pem
ssl-cert=/etc/mysql/ssl/ca-cert.pem
ssl-key=/etc/mysql/ssl/ca-key.pem

On redémarre le serveur de mysql et on vérifie si le port est ouvert


#systemctl restart mysql
#netstat –anp | grep –w 3306

Maintenant, vérifions si le ssl est activé en tapant la commande suivante


mysql>show variables like "ssl%" ;

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 ;

L’analyseur wireshark montre que les données de la requête sont chiffrées

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

Vous aimerez peut-être aussi