Ich verwende CentOS 5.5 mit dem aktuellen Apache httpd-2.2.3.
Ich habe mod_status unter Location / Server-Status aktiviert . Ich möchte den Zugriff auf diesen einzelnen Standort auf folgende Weise zulassen:
- Abgelehnt von allen
- Zulassen aus dem Subnetz 192.168.16.0/24
- Ablehnen von einer IP-Adresse 192.168.16.100, die sich im Subnetz 192.168.16.0/24 befindet.
1 & 2 sind einfach. Ist es jedoch möglich, seit "Zulassen von 192.168.16.0/24" von 192.168.16.100 zu verweigern?
Ich habe versucht, eine Deny-Anweisung für 192.168.16.100 hinzuzufügen, aber sie funktioniert nicht. Hier ist die relevante Konfiguration:
<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>
Oder:
<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>
Dies verhindert jedoch nicht den Zugriff auf diese bestimmte Seite, wie in den Zugriffsprotokollen gezeigt:
www.example.org 192.168.16.100 - - [11/Mar/2011:16:01:14 -0800] "GET /server-status HTTP/1.1" 200 9966 "-" "
Nach dem Handbuch für mod_authz_host :
Zulassen, Ablehnen
Zunächst werden alle Zulassungsanweisungen ausgewertet. Mindestens eine muss übereinstimmen, sonst wird die Anfrage abgelehnt. Als nächstes werden alle Verweigerungsanweisungen ausgewertet. Wenn Übereinstimmungen vorliegen, wird die Anforderung abgelehnt
Die IP-Adresse entspricht der Ablehnungsrichtlinie. Sollte die Anfrage nicht abgelehnt werden?
Gemäß der Tabelle auf der Seite "mod_authz_host" sollte diese IP-Adresse mit "Zulassen und Verweigern" übereinstimmen, und daher sollte die Regel "Letzte Übereinstimmungskontrolle: Verweigert" gelten.
Match Allow, Deny Ergebnis Deny, Allow Ergebnis Treffer Nur erlauben Anfrage erlaubt Anfrage erlaubt Übereinstimmung Nur ablehnen Anfrage abgelehnt Anfrage abgelehnt Keine Übereinstimmung Standard für zweite Anweisung: Verweigert Standard für zweite Anweisung: Zulässig Erlaube und verweigere die Kontrolle der endgültigen Übereinstimmung: Verweigerte die Kontrolle der endgültigen Übereinstimmung: Erlaubt
Allow from 192.168.16.0/24
. Soweit ich die Dokumentation verstehe, stimmen alle Requestor-IPs im 192.168.16.0/24-Netzwerk mit dieser Allow-Anweisung überein. Die Anfrage ist zulässig.