Page suivante > Accueil > Sécurité > Sécuriser Mysql






Sécuriser Mysql

Chercher :    

Introduction

  • Mysql est une base de données très utilisée sur le Web, notamment avec le langage de script Php. Il est très important de ne pas négliger l'aspect sécurité en appliquant un certains nombre de rêgles toutes simples qui rendront à un éventuel pirate sa tâche plus hardue.
  • Vous trouverez donc ci-dessous quelques rêgles simples à respecter pour sécuriser un peu plus votre installation Mysql.

Quelques rêgles simples pour sécuriser un peu plus Mysql

  • Mettre le password de root.
    • mysql -u root mysql
    • SET PASSWORD FOR root@localhost=PASSWORD('new_password');
    • exit
  • Supprimer le second compte administrateur qui peut se connecter depuis le nom renvoyé par 'hostname' car inutile
    • mysql -u root -p mysql
    • DELETE FROM user WHERE Host='nom_renvoyé_par_hostname' AND user='root'
    • exit
  • Interdire les connexions non identifiées.
    • mysql -u root mysql
    • DELETE FROM user WHERE Password='';
    • exit
  • Supprimer la base de test installée par défaut.
    • mysql -u root mysql
    • DROP DATABASE test;
    • exit
  • Supprimer la base test et toutes les bases commencant par "test_", si elles existent, car elles sont accessibles par tout le monde.
    • mysql -u root mysql
    • DELETE FROM db WHERE db='test' OR db='test\_%';
    • exit
  • Si on veut créer un user "user1" qui aura accès à la base "db1".
    • mysql -u root mysql
    • CREATE DATABASE db1
    • GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP ON db1.* TO user1@"localhost" IDENTIFIED BY "password_de_user1";
    • exit
    • L'idéal est de créer 3 user différents : un avec le droit SELECT, un avec SELECT, INSERT, UPDATE, DELETE et le dernier avec SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP
  • Si on veut qu'un utilisateur ne puisse lister (par la commande "show databases") que les bases dans lesquelles il a des droits.
    • mettre dans le fichier /etc/my.cnf, dans la rubrique [mysqld] :
      • safe-show-database
  • Si on veut limiter le nombre de connexions.
    • mettre dans le fichier /etc/my.cnf dans la rubrique [mysqld] :
      • set-variable = max_connections=100 // 100 connexions max. au total
      • set-variable = max_user_connections=50 // 1 user a le droit à 50 connexions max.

  • Voilà, le minimum vital est fait, vous avez désormais une installation Mysql plus sécurisée. N'hésitez pas à consulter cependant la documentation de Mysql pour accroitre encore cette sécurisation.

(Double-cliquer pour revenir en haut de la page)

Copyright 2012 © Envoyer un mail à Pariscyber