DOSSIER SPÉCIAL SERVEUR WEB PERSO
Sommaire
7/10
Un peu de sécurité
Restreindre l'accès à MySQL
On l'a vu, que ce soit votre serveur MySQL ou votre site PHPNuke, tous ont
été installés avec des valeurs par défaut. Les noms
d'utilisateurs et mots de passes sont donc connus de toutes les personnes qui
ont déjà installé un serveur MySQL ou PHPNuke.
Vu que vous ne reculez devant rien pour sécuriser votre serveur web chéri,
vous allez donc changer le nom d'utilisateur par défaut et son mot de
passe sur votre serveur MySQL et vous allez aussi modifier en conséquence
les fichiers de configuration de PHPNuke. Et toute cela sans douleur.
Allez sur votre page de PhpMyAdmin. Pour ce faire, cliquez-droit sur le petit
logo « E » dans votre barre des tâches. Choisissez «
Web local ». Dans le navigateur qui vient de s'ouvrir, cliquez sur le
bouton « PhpMyAdmin ». Vous voici sur la page d'administration de
votre serveur MySQL.
Tout en haut à gauche sur la page web, vous trouvez, sous « Accueil
», la liste de vos bases. Cliquez sur « MySQL ». La partie
droite de la page vient de se rafraîchir et vous voyez à présent
la liste des tables. Chaque table est sur une ligne et différentes «
actions » sont disponibles. Sur la ligne « user », cliquez
sur « Afficher ».

Vous voyez alors, sur la nouvelle page, le contenu de la table « user
».

Comme vous le voyez, l'utilisateur « root », que vous utilisez
pas défaut, n'a pas de mot de passe. L'utilisateur « root »
apparaît d'ailleurs deux fois. En effet, sur la première ligne,
il s'agit des droits de « root » lorsqu'il se connecte depuis la
machine locale (localhost) sur le serveur de base de données et, pour
la seconde ligne, ce sont les droits de « root » pour toutes les
autres adresses, lorsque « root » se connecte depuis chez lui par
exemple.
Lorsque que la colonne « User » est vide, elle est donne les valeurs
par défaut pour tous les autres utilisateurs.
Les lettres Y ou N dans les colonnes suivantes donnent les droits : Yes et No.
Vous voyez par exemple que, lorsqu'il est sur la machine locale, n'importe quel
utilisateur peut faire ce qu'il veut (que des Y). Par contre, un utilisateur
venant de l'extérieur, lui, n'a aucun droit.
Pour plus de sécurité, vous allez devoir changer les droits de
l'utilisateur « root ». Pour cela, cliquez, dans la première
ligne, sur « modifier »
Vous arrivez alors sur cette page :

Comme vous le voyez, il existe déjà un champ « Password
» qui n'attend plus que vous pour le remplir. Mais attention, tout n'est
pas si simple. Le serveur va enregistrer le mot de passe, mais pas « en
clair », il va le crypter. Il faut donc indiquer au serveur que vous aller
lui donner un mot de passe, pour qu'il le stocke correctement. La colonne «
Fonction » est là pour ça. Cliquez sur la flèche
du menu déroulant de la colonne « Fonction », dans la ligne
« Password » et sélectionnez « Password ». Logique,
non ? Une fois que vous avez précisé la bonne fonction, vous pouvez
rentrer un mot de passe. Mettez ce que vous voulez et, comme de bien entendu,
n'oubliez pas de le noter précieusement. Cliquez sur « Sauvegarder
» en bas de la page pour valider votre opération.
Vous revenez alors sur la page de la table « User » de votre serveur
MySQL. Comme vous pouvez le constater, la première ligne s'est complétée
pour afficher le mot de passe. Vous ne pourrez pas lire votre mot de passe «
en clair » car, comme vous le savez désormais, celui-ci est crypté.
Vous devez donc lire quelque chose comme cela sur l'écran : « 63cc03f4770c6aaa
».
Vous avez donc spécifié un mot de passe pour l'utilisateur «
root » lorsqu'il se connecte.
Il vous faut maintenant mettre à jour votre serveur pour qu'il prenne
en compte les modifications. Pour cela, cliquez sur « MySQL » dans
la colonne de gauche. La page de droite doit se rafraîchir. Rentrez la
commande « flush privileges » dans le champ « Exécuter
une ou des requêtes sur la base mysql » puis cliquez sur le bouton
« Exécuter ». La page se rafraîchit. Vous venez de
mettre à jour votre serveur MySQL.
Pour vérifier que tout fonctionne bien, vous pouvez lancer un nouveau
navigateur et vous rendre sur http://localhost/mysql/.
Normalement, MySQL va vous refuser l'accès car vous n'avez pas spécifié
de mot de passe. Pas de panique, voici comment vous devez vous y prendre.
Lancer le notepad ou tout autre éditeur de texte simple et ouvrez le
fichier « config.inc.php » dans le dossier « phpmyadmin »
du répertoire « EasyPhp ». Dans ce fichier, recherchez ce
bloc de texte :
* Server(s) configuration
*/
// The $cfgServers array starts with $cfgServers[1]. Do not use $cfgServers[0].
// You can disable a server config entry by setting host to ''.
$cfgServers[1]['host'] = 'localhost'; // MySQL hostname
$cfgServers[1]['port'] = ''; // MySQL port - leave blank for default port
$cfgServers[1]['adv_auth'] = FALSE; // Use advanced authentication?
$cfgServers[1]['stduser'] = ''; // MySQL standard user (only needed with advanced
auth)
$cfgServers[1]['stdpass'] = ''; // MySQL standard password (only needed with
advanced auth)
$cfgServers[1]['user'] = 'root'; // MySQL user (only needed with basic auth)
$cfgServers[1]['password'] = ''; // MySQL password (only
needed with basic auth)
$cfgServers[1]['only_db'] = ''; // If set to a db-name, only this db is accessible
$cfgServers[1]['verbose'] = ''; // Verbose name for this host - leave blank
to show the hostname
$cfgServers[1]['bookmarkdb'] = ''; // Bookmark db - leave blank for no bookmark
support
$cfgServers[1]['bookmarktable'] = ''; // Bookmark table - leave blank for no
bookmark support
Dans ce bloc, vous allez pouvoir spécifier quel est le mot de passe requis
pour l'utilisateur « root ». La ligne à modifier est la ligne
en rouge. Entre les deux guillemets, vous allez entrer le mot de passe que vous
avez choisi pour votre base de données. Si votre mot de passe était
« toto », vous allez donc modifier la ligne ainsi :
$cfgServers[1]['password'] = 'toto'; // MySQL password (only needed with basic auth)
Après avoir fait la modification, vous pouvez sauvegarder le fichier
et aller vérifier que tout fonctionne bien sur http://localhost/mysql/
Tout cela peut vous paraître un peu complexe. Au fond, la démarche
est tout à fait simple. Vous disposez d'un espace de stockage : votre
serveur MySQL. Vous ne voulez pas que tout le monde puisse venir y faire mumuse
alors vous le protégez avec un mot de passe et, ensuite, vous montrez
patte blanche en incluant le mot de passe dans un fichier de configuration.
Vous aurez à répéter cette démarche lorsque vous
travaillerez en ligne, avec le serveur MySQL de votre hébergeur. Vous
aurez la possibilité de créer des bases et des tables sur le serveur,
mais il faudra pour cela vous authentifier. Quand vous voudrez utiliser PhpMyAdmin,
une authentification par le web suffira. Mais pour des applications en PHP comme
PHPNuke ou SPIP, il faudra que vous éditiez un fichier de configuration
similaire à celui de MySQL pour que le serveur sache que le programme
est autorisé à l'utiliser.
C'est d'ailleurs ce que nous allons faire pour PHPNuke qui, étant donné
le changement de mot de passe, ne doit plus fonctionner du tout. Vous pouvez
vérifier en allant à cette adresse : http://localhost/phpnuke.
Configurer un accès à MySQL