Configuration de la méthode d'authentification SHA dans MySQL
Introduction
À partir de la version 8 de MySQL, le cryptage (hashing) des mots de passe des utilisateurs de la base de données a été modifié par défaut en caching_sha2_password
. Cette méthode englobe à la fois des protocoles obsolètes (SHA 256) et des protocoles actuels et futurs, combinés à la capacité de stocker en mémoire rapide (caching) l'ensemble du mécanisme de cryptage et la comparaison valide des informations d'identification de l'utilisateur.
Sur une nouvelle installation de MySQL 8, c'est la méthode par défaut. Cependant, les serveurs MySQL qui ont été mis à niveau à partir de versions antérieures conservent la méthode précédente appelée mysql_native_password
. Cette considération permet d'éviter que d'anciens utilisateurs perdent la connexion à distance parce que, du côté des clients, le processus de connexion et d'authentification doit être mis à jour et configuré.
Dans Pandora FMS, la connexion entre la console Web et le PFMS server (monolithic environment) se fait par l'intermédiaire d'un fichier de connexion de type Unix (Unix socket-file) et protocole de mémoire partagée (shared-memory protocol), qui sont considérés comme protégés et sécurisés dans un environnement local, donc dans ce cas particulier le protocole utilisé pour le cryptage, le chiffrement et la transmission des mots de passe et des données est indifférent.
Face à cette situation, et afin de maintenir à jour les bonnes pratiques de sécurité, il est recommandé de changer le protocole d'encryptage de mysql_native_password
à caching_sha2_password
, pour l'utilisateur par défaut pandora
, avec ce tutoriel.
Conditions préalables
Vous devez confirmer que vous avez installé une version égale ou supérieure à MySQL 8.0.4 avec la commande suivante (dans sa version longue):
mysql --version
Ou en version courte:
mysql -V
Vous obtiendrez quelque chose de similaire à ceci:
mysql Ver 8.0.39-30 for Linux on x86_64 (Percona Server (GPL), Release '30', Revision '41ebc5d9')
Ce thème utilise un utilisateur appelé pandora
et un mot de passe Pandor4!
.
Pour chaque cas particulier, il est possible de consulter ces valeurs:
cat /var/www/html/pandora_console/include/config.php | grep dbuser cat /var/www/html/pandora_console/include/config.php | grep dbpass
Le résultat est similaire à ce qui suit:
Procédure pour tous les systèmes d'exploitation
- Arrêter le PFMS server.
Il doit être exécuté dans une fenêtre de terminal:
systemctl stop pandora_server
- Vérification de l'utilisateur actif.
Vérifier si l'utilisateur actif pour la connexion à la base de données (par défaut pandora
) utilise mysql_native_password
. Pour ce faire, connectez-vous à MySQL en tant que root
et exécutez la requête suivante:
SELECT USER, host, plugin FROM mysql.user WHERE USER = 'pandora';
Vous obtiendrez une réponse similaire:
- Modifier le type de mot de passe.
La méthode d'authentification est modifiée et un mot de passe est défini avec l'instruction suivante:
ALTER USER 'pandora'@'%' IDENTIFIED WITH caching_sha2_password BY 'Pandor4!';
- Vérification de la modification.
Lors de la ré-exécution:
SELECT USER, host, plugin FROM mysql.user WHERE USER = 'pandora';
Les éléments suivants doivent être obtenus:
Une fois la modification vérifiée au niveau du serveur, fermez l'interface MySQL avec la commande exit;
et passez à l'étape suivante au niveau du client.
Configuration du client
Comme expliqué dans la introduction, du côté du client, la connexion doit être mise à jour et configurée en fonction du type de système d'exploitation utilisé: EL 8 /EL 9 ou Ubuntu.
EL8 / EL9
Vous devez avoir installé le paquet mariadb-connector-c
, qui est installé par défaut dans la plupart des environnements EL8 et EL9.
L'existence du fichier est vérifiée avec:
ls -l /usr/lib64/mariadb/plugin/caching_sha2_password.so
Une réponse positive similaire à la suivante sera obtenue:
L'étape suivante consiste à créer un lien symbolique vers ce fichier à l'aide de la commande:
ln -s /usr/lib64/mariadb/plugin/caching_sha2_password.so /usr/lib64/mysql/plugin/caching_sha2_password.so
Le lien établi avec est vérifié:
ls -l /usr/lib64/mysql/plugin/caching_sha2_password.so
La réponse positive suivante a été reçue:
Une fois toutes les étapes franchies avec succès, il ne reste plus qu'à redémarrer l'PFMS server.
Ubuntu
Le paquet libmariadb3
doit être installé. En fonction de la version installée, il peut ne pas être fourni avec le système d'exploitation et doit être installé à l'aide de la commande:
apt-get install libmariadb3
Vérifiez que l'installation du paquet a généré le fichier requis, caching_sha2_password.so
:
ls -l /usr/lib/x86_64-linux-gnu/libmariadb3/plugin/caching_sha2_password.so
Le dossier de destination /usr/lib64/mysql/plugin/
doit être créé, avec la commande:
mkdir -p /usr/lib64/mysql/plugin/
Le lien symbolique doit maintenant être créé:
ln -s /usr/lib/x86_64-linux-gnu/libmariadb3/plugin/caching_sha2_password.so /usr/lib64/mysql/plugin/caching_sha2_password.so
Avec ces étapes, le serveur sera capable d'utiliser l'authentification SHA2 pour se connecter à la base de données. Allez à étape suivante (redémarrer le Pandora FMS server) pour terminer la configuration.
Redémarrer le serveur PFMS
Pour redémarrer le Pandora FMS server, il faut l'exécuter:
systemctl restart pandora_server
Après quelques instants, l'état doit être confirmé via la Console Web (menu Management → Servers → Manage servers):