J'utilise CentOS 5.5 avec le stock Apache httpd-2.2.3.
J'ai activé mod_status à l'emplacement / état du serveur. Je voudrais autoriser l'accès à cet emplacement unique de la manière suivante:
- Refuser de tout
- Autoriser à partir du sous-réseau 192.168.16.0/24
- Refuser à partir de l'IP 192.168.16.100, qui se trouve dans le sous-réseau 192.168.16.0/24.
1 & 2 sont faciles. Cependant, puisque je "Autorise à partir de 192.168.16.0/24", est-il possible de refuser à partir de 192.168.16.100?
J'ai essayé d'ajouter une instruction Deny pour 192.168.16.100 mais cela ne fonctionne pas. Voici la configuration appropriée:
<Location /server-status>
SetHandler server-status
Order Allow,Deny
Deny from all
Deny from 192.168.16.100 # This does not deny access from 192.168.16.100
Allow from 192.168.16.0/24
</Location>
Ou:
<Location /server-status>
SetHandler server-status
Order Allow,Deny
Deny from all
Deny from 192.168.16.100 # This does not deny access from 192.168.16.100
Allow from 192.168.16.0/24
</Location>
Cependant, cela n'empêche pas l'accès à cette page particulière, comme le montrent les journaux d'accès:
www.example.org 192.168.16.100 - - [11/Mar/2011:16:01:14 -0800] "GET /server-status HTTP/1.1" 200 9966 "-" "
Selon le manuel de mod_authz_host :
Autoriser, refuser
Tout d'abord, toutes les directives Allow sont évaluées; au moins un doit correspondre, sinon la demande est rejetée. Ensuite, toutes les directives Deny sont évaluées. En cas de correspondance, la demande est rejetée
L'adresse IP correspond à la directive Deny, donc la demande ne devrait-elle pas être rejetée?
Selon le tableau de la page mod_authz_host, cette adresse IP doit "Correspondre à la fois Autoriser et Refuser", et donc la règle "Contrôles de correspondance finale: Refusé" doit s'appliquer.
Correspondance Autoriser, Refuser le résultat Refuser, Autoriser le résultat Correspondance Autoriser uniquement Demande autorisée Demande autorisée Match Refuser uniquement Demande refusée Demande refusée Aucune correspondance Par défaut à la deuxième directive: refusée Par défaut à la deuxième directive: autorisée Correspond à la fois Autoriser et Refuser Contrôles de correspondance finale: Refusé Contrôles de correspondance finale: Autorisés
Allow from 192.168.16.0/24
. Si je comprends bien la documentation, toute adresse IP demandeur du réseau 192.168.16.0/24 correspondra à cette instruction Allow, la demande est autorisée.