6.14 Comment protéger MySQL contre les hackers

Lorsque vous vous connectez à un serveur MySQL, vous utiliserez en règle générale un mot de passe. Le mot de passe sera transmis crypté lors de la connexion, et non pas en clair.

Toutes les informations suivantes seront transmises en clair, ce qui fait que quiconque observe la connexion peut lire les informations. Si vous êtes concerné par les problèmes de sécurité, vous pouvez utiliser le protocole compressé (à partir de MySQL 3.22) pour rendre les choses plus difficile. Pour complexifier encore la lecture, vous pouvez installer ssh (http://www.cs.hut.fi/ssh). Ce protocol fourni un cryptage de la connexion TCP/IP entre le client MySQL et me serveur MySQL.

Pour sécuriser un système MySQL, il est fortement recommandé de suivre les recommandations suivantes :@:

shell> mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('new_password')
WHERE user='root';
mysql> FLUSH PRIVILEGES;

Les options suivantes affectent la sécurité :@:

  • --secure Les adresse IP retournées par l'appel système gethostbyname() sont vérifiées pour s'assurer qu'elle correspondent bien à l'hôte original. Cela rend plus difficile de simuler un hôte. Cette option effectue aussi un nettoyage hygiénique des hôtes. Cette option a été enlevée par défaut dans la version MySQL 3.21 car elle peut ralentir le serveur, à cause du temps de résolution. MySQL 3.22 conserve les noms d'hôtes qu'il a déjà résolu dans un cache.
  • --skip-grant-tables Cette option indique au serveur qu'il ne doit pas utiliser les droits enregistrés. Cela donne à tous un accès complet à toutes les bases. (Vous pouvez aussi charger les tables d'un serveur en fonctionnement avec la commande mysqladmin reload.)
  • --skip-name-resolve Les noms d'hôtes ne sont pas résolus. Toutes les lignes de la table Host doivent contenir des valeurs nuémriques, ou bien localhost.
  • --skip-networking N'accepte pas les connexions TCP/. Toutes les connexions à mysqld doivent être faites avec les sockets Unix. Cette option n'est pas disponibles pour les systèmes qui utilisent les MIT-pthreads, car MIT-pthreads ne supporte pas les sockets Unix.