Serveur sqlss.house.cpb
Installation TCPFlow
[root@sqlssl ~]# dnf install wget [root@sqlssl ~]# dnf install wget https://forensics.cert.org/cert-forensics-tools-release-el8.rpm [root@sqlssl ~]# dnf install epel-release [root@sqlssl ~]# dnf --enablerepo=forensics install tcpflow [root@sqlssl ~]# tcpflow -c -p -i any dst port 3306
Client Mysql sql-client.house.cpb
[root@sql-client01 ~]# mysql -u chris -p -h sqlssl
mysql> select user,host from mysql.user;
Serveur sqlss.house.cpb
On remarque bien les flux de données en claire sur le réseau ce qui pose un réel souci de sécurité.
On peut vérifier les paramètre SSL sur MariaDB
MariaDB [(none)]> show variables LIKE « %ssl% »;
MariaDB [(none)]> status
Création des répertoires des certificats
[root@sqlssl ~]# mkdir -p /etc/mysql/newcerts/ [root@sqlssl ~]# cd /etc/mysql/newcerts/
Génération et auto-signature du Certificat d’autorité
[root@sqlssl newcerts]# openssl genrsa 4096 > ca-key.pem
[root@sqlssl newcerts]# openssl req -new -x509 -nodes -days 3650 -key ca-key.pem -out ca-cert.pem
Génération et auto-signature du Certificat serveur sqlssl.house.cpb
[root@sqlssl newcerts]# openssl req -newkey rsa:4096 -days 365000 -nodes -keyout server-key.pem -out server-req.pem
[root@sqlssl newcerts]# openssl rsa -in server-key.pem -out server-key.pem
writing RSA key
[root@sqlssl newcerts]# openssl x509 -req -in server-req.pem -days 3650 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem
Certificats nécessaire à Mysql
[root@sqlssl newcerts]# ls -al
Installer les certificats dans Mysql
[root@sqlssl newcerts]# chmod 644 * [root@sqlssl newcerts]# vi /etc/my.cnf
ssl-ca=/etc/mysql/newcerts/ca-cert.pem ssl-cert=/etc/mysql/newcerts/server-cert.pem ssl-key=/etc/mysql/newcerts/server-key.pem ssl-cipher = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
[root@sqlssl newcerts]# systemctl restart mysqld
[root@sqlssl newcerts]# mysql -u root -p
mysql> show variables LIKE « %ssl% »;
Création d’un utilisateur « chrisSSL@ sqlssl-client.house.cpb » avec privlège SSL
mysql> CREATE USER « chrisSSL »@ »sql-client.house.cpb » IDENTIFIED BY « Votre_mot_de_passe » REQUIRE SSL;
Query OK, 0 rows affected (0,02 sec)
mysql> GRANT SELECT, SHOW DATABASES ON *.* TO « chrisSSL »@ »sql-client.house.cpb » ;
Query OK, 0 rows affected (0,01 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0,00 sec)
mysql> select user,host,ssl_type from mysql.user;
Génération et auto-signature pour le client sql-client.house.cpb
[root@sqlssl newcerts]# openssl req -newkey rsa:2048 -days 3650 -nodes -keyout client-key.pem -out client-req.pem
[root@sqlssl newcerts]# openssl rsa -in client-key.pem -out client-key.pem writing RSA key
[root@sqlssl newcerts]# openssl x509 -req -in client-req.pem -days 3650 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out client-cert.pem
Copie des certificats clients à vos/votre client(s)
[root@sqlssl newcerts]# scp ca-cert.pem root@sql-client:/etc/ssl/certs/ [root@sqlssl newcerts]# scp client-cert.pem root@sql-client:/etc/ssl/certs/ [root@sqlssl newcerts]# scp client-key.pem root@sql-client:/etc/ssl/certs/
CLIENT sql-client.house.cpb
Ajout des certificats à Mysql
[root@sqlssl-client ~]# cd /etc/ssl/certs/ [root@sqlssl-client certs]# chmod 644 *.pem [root@sqlssl-client certs]# la -al
Connexion en spécifiant les certificats en ligne de commande
[root@sqlssl-client certs]# mysql --ssl-ca=ca-cert.pem --ssl-cert=client-cert.pem --ssl-key=client-key.pem -h sqlssl -u chrisSSL -p
mysql> select user,host from mysql.user;
Côté flux serveur
Toutes les transactions sont désormais cryptées entre le client et le serveur.
mysql> status
Ajouter les clefs sur le fichier client my.cnf
[root@sqlssl-client certs]# vi /etc/my.cnf.d/client.cnf
[client] ssl-ca=/etc/ssl/certs/ca-cert.pem ssl-cert=/etc/ssl/certs/client-cert.pem ssl-key=/etc/ssl/certs/client-key.pem
[root@sql-client certs]# mysql -h sqlssl -u chrisSSL -p
Côté serveur
Sur le Client
Sur le Serveur
Views: 16