Installation d'un Serveur Internet - Étape 3 : Sécurisation des services.
Réponse AJAX

Sécurisation des services

Par défaut, Apache et MySQL tournent avec des droits administrateurs. C'est inacceptable, d'autant que le but est d'autoriser les internautes à déposer des fichiers PHP sur notre serveur, et à les exécuter. En l'état actuel, les internautes ont un contrôle total sur notre serveur.

Dans le répertoire système (C:\Windows), créez un fichier test.txt.

A la racine Internet de Apache (C:\wamp\www), créez le fichier test.php suivant :

<?php unlink("c:/windows/test.txt"); ?>

Exécutez ce fichier PHP en appelant, dans le navigateur, l'URL : http://127.0.0.1/test.php

Est-ce que le fichier test.txt, présent dans le répertoire système, a été détruit ?

Votre réponse n°1

La sécurisation d'un serveur Internet se fait en plusieurs étapes. La première est de faire en sorte que Apache et MySQL tournent avec des droits spécifiques, plus limités. On va créer des utilisateurs dédiés. Les services Apache et MySQL vont tourner dans ces comptes d'utilisateurs, avec les droits de ses utilisateurs.

Sécurisation du service Apache (wampapache)

Créez un compte d'utilisateur nommé apache (avec le mot de passe apache), (grâce à la commande MS-DOS NET USER, ou dans l'interface graphique de gestion des utilisateurs).

Décocher la case "l'utilisateur doit changer de mot de passe à la prochaine ouverture de session", sinon cet utilisateur n'arrivera pas à lancer un service.

Retirez-le du groupe Utilisateurs (sinon, l'utilisateur Apache hérite de tous les droits de ce groupe : droit de lire tous les fichiers du disque, droit d'ouvrir une session locale, etc.).

Donnez-lui les droits suivants :

Lancez la gestion des services grâce à Démarrer -> exécuter -> services.msc, trouvez le service wampapache, accédez à ses propriétés.

Dans l'onglet Connexion, choisissez : Ouvrir une session en tant que : Ce compte : Apache, (n'oubliez pas de mettre le mot de passe de l'utilisateur apache).

Redémarrez le service wampapache. S'il ne démarre pas, c'est que :
- les droits accordés à l'utilisateur apache sont insuffisants. Regardez le chapitre suivant sur l'audit des accès aux objets,
- l'utilisateur apache n'a pas de mot de passe, où vous l'avez mal saisi dans les propriétés du service,
- vous laissé coché la case "l'utilisateur doit changer de mot de passe à la prochaine ouverture de session".

A faire... si Apache ne démarre plus

Si Apache ne démarre plus, il est souvent utilise d'aller voir le journal Windows des applications (dans l'observateur d'événements). C'est ici, par exemple, que sont marquées les erreurs de syntaxe dans les fichiers .conf

Sécurisation du service MySQL (wampmysqld)

Créez un compte d'utilisateur nommé mysql (avec le mot de passe mysql).

Décocher la case "l'utilisateur doit changer de mot de passe à la prochaine ouverture de session", sinon cet utilisateur n'arrivera pas à lancer un service.

Retirez-le du groupe Utilisateurs.

Donnez-lui les droits suivants :

Lancez la gestion des services grâce à Démarrer -> exécuter -> services.msc, trouvez le service wampmysqld, accédez à ses propriétés.

Dans l'onglet Connexion, choisissez : Ouvrir une session en tant que : Ce compte : mysql, (n'oubliez pas de mettre le mot de passe de l'utilisateur mysql).

Redémarrez le service wampmysqld. S'il ne démarre pas, c'est que les droits accordés à l'utilisateur mysql sont insuffisants. Regardez le chapitre suivant sur l'audit des accès aux objets.

Audit de l'accès aux objets

Si les services ne redémarrent pas après ces manips, c'est qu'on a probablement donné des droits insuffisants sur les dossiers. On peut détecter facilement les droits manquants en activant l'audit de l'accès aux objets. Par objets, on entend ici les dossiers et les fichiers.

Activer l'audit grâce à : Outils d'administration -> stratégie de sécurité locale -> Auditer l'accès aux objets -> Echecs.

A la racine C:\ et ses sous-répertoires, activer l'audit des échecs pour les utilisateurs apache et mysql (propriétés du dossier -> sécurité -> paramètres avancés -> onglet audit -> ajouter chaque utilisateur -> sélectionner tous les échecs).

Lorsque vous essayez de démarrer les services, allez vérifier les échecs grâce à Outils d'administration -> Observateur d'événements -> Sécurité.