La base de données MySQL est non "sécurisée" dans son installation par défaut. Au travers de cet article nous allons voir les quelques procédures "de base" à appliquer pour augmenter le niveau de sécurité de votre base de données MySQL.
Sécurisation des comptes administrateurs de votre base MySQL
Dans un premier temps identifiez l'ensemble des comptes "root" installés au niveau de votre base de MySQL
#mysql –urootPour chacun des comptes identifiés affecter un mot de passe « sécurisé » en suivant la procédure suivante :
mysql> use mysql
mysql>select user,password,host from user where user=’root’
mysql> set password for 'root'@'localhost' = password('YOUR PASSWORD');Vous pouvez également appliquer le même mot de passe pour l'ensemble des comptes 'root' identifiés :
mysql>flush privileges ;
mysql>exit ;
mysql> update mysql.user set password = password('YOUR PASSWORD') where user = 'root';Vous pouvez appliquer les recommandations du SSI pour définir le mot de passe administrateur de votre base de données. Vous pouvez maintenant vous connecter en utilisant votre nouveau mot de passe
mysql> flush privileges;
mysql –uroot –pImportant : Ne spécifiez jamais le mot de passe directement au niveau de la ligne de commande, autrement il sera visible au niveau de l'historique de votre shell.
Gestion du compte anonymous
Sauf besoin spécifique, nous vous recommandons de supprimer le compte anonymous.
mysql -uroot -p
mysql> drop user ''@'localhost';
mysql> drop user ''@'localhost.localdomain';
Suppression de la base test
Par défaut, MySQL installe une base test, nous vous recommandons de la supprimer.
mysql> delete from mysql.db where Db like 'test%';
mysql> flush privileges;
mysql> drop database test ;
Fichier historique
MySQL maintient un fichier historique, il contient l'historique des commandes sql (cela inclut les mots de passe en clair). Vous pouvez sous certaines conditions le supprimer et le désactiver.
rm $HOME/.mysql_history
ln –s /dev/null $HOME/.mysql_history