Sécurisation de base d’un serveur MySQL avec mysql_secure_installation
Il est relativement facile d’installer un serveur MySQL, que ce soit pour faire un environnement de développement ou de production. En effet, un simple yum/apt-get/aptitude install mysql-server (suivant votre gestionnaire de paquets) vous installe en quelques minutes ce serveur de base de données avec une configuration par défaut.
Pourtant, un serveur MySQL n’est pas exploitable tout de suite : le mot de passe root n’est pas initialisé, des privilèges anonymes existent, etc. Il est préférable d’accorder de l’importance à la sécurité au début d’un projet, que d’essayer d’y revenir plus tard.
La commande mysql_secure_installation va apporter un minimum de sécurité pour vos nouvelles installations. Elle vous permet (selon vos choix) :
- de changer le mot de passe root,
- de supprimer les comptes anonymes,
- de désactiver la connexion du compte root à distance,
- de supprimer la base de données « test » à laquelle tout le monde peut avoir accès.
L’outil finit sur un rechargement des privilèges (« Flush privileges ») afin d’appliquer les changements de droits au serveur.
Pour lancer la commande : /usr/bin/mysql_secure_installation.
Bien entendu, ceci n’exclut pas une politique de sécurisation globale (présence d’un firewall, port MySQL changé, filtrage des privilèges par adresse source, etc.). Cette commande vous permet juste de passer sur les points critiques en quelques secondes.
Note : je traite uniquement de Linux, je déconseille l’utilisation de MySQL sur un OS Windows. Par ailleurs, je ne sais pas si la commande mysql_secure_installation existe sur Windows.
Commentaire by Daz — 21 novembre 2011 @ 14:08
Bonjour,
Pourquoi tu déconseilles l’utilisation de MySQL sur un OS Windows ?
Commentaire by Romain — 22 novembre 2011 @ 14:42
@Daz > Sans vouloir rentrer dans un troll, parce que je ne juge pas l’interface graphique de Windows nécessaire, et aussi parce que j’ai eu quelques soucis avec des versions 3.X et 4.X de MySQL sur Windows il y a quelques années.
Toi, quelle est ton opinion ?
Commentaire by Daz — 22 novembre 2011 @ 15:09
En une dizaine d’année d’expérience sur MySQL, j’ai rencontré peu d’instances MySQL en prod sur Windows (mais beaucoup sur les postes des dev). A mon sens c’est surtout culturel:
* culture open source des utilisateurs de MySQL
* culture Windows des utilisateurs windows, qui ont tendance à n’utiliser (quasiment) que les outils Windows(sql server).
Il faut aussi ajouter à cela que les anciennes version de MySQL (<5.5) sont sensiblement moins performante sur Windows que sur Unix-like.
Avec la 5.5, Oracle voulant faire de MySQL un concurrent de sql server, un gros travail à été effectué sur les perfs et la scalabilité.
Cependant, le fonctionnement de MySQL sur Windows ou Unix-like à toujours été très proche.
En fait le sens de ma question est que de mon point de vu (celui de MySQL), je ne déconseille pas l'utilisation de MySQL sous Windows server pour la prod (et même Windows pour le dev).
Ça revient certes à se passer de pas mal d'outils très intéressant(ce qui est fort dommageable), mais ça fonctionne et plutôt bien même
++
Commentaire by Romain — 22 novembre 2011 @ 15:39
@Daz > Merci pour ton point de vue !
C’est vrai que depuis la version 4.1 je n’ai plus vu/toucher de MySQL sur Windows, donc mon regard est peut-être trop biaisé/pas assez objectif.