Sto eseguendo CentOS 5.5 con lo stock Apache httpd-2.2.3.
Ho abilitato mod_status allo stato Posizione / server. Vorrei consentire l'accesso a questa singola posizione nel modo seguente:
- Negato da tutti
- Consenti dalla sottorete 192.168.16.0/24
- Negare da un IP 192.168.16.100, che si trova nella sottorete 192.168.16.0/24.
1 e 2 sono facili. Tuttavia, poiché "Consenti da 192.168.16.0/24", è possibile negare da 192.168.16.100?
Ho provato ad aggiungere un'istruzione Deny per 192.168.16.100 ma non funziona. Ecco la configurazione rilevante:
<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>
O:
<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>
Tuttavia, ciò non impedisce l'accesso a questa particolare pagina, come dimostrato nei registri di accesso:
www.example.org 192.168.16.100 - - [11/Mar/2011:16:01:14 -0800] "GET /server-status HTTP/1.1" 200 9966 "-" "
Secondo il manuale di mod_authz_host :
Consenti, Nega
Innanzitutto, vengono valutate tutte le direttive Allow; almeno uno deve corrispondere o la richiesta viene respinta. Successivamente, vengono valutate tutte le direttive Nega. In caso di corrispondenze, la richiesta viene respinta
L'indirizzo IP corrisponde alla direttiva Nega, quindi la richiesta non dovrebbe essere respinta?
Secondo la tabella nella pagina mod_authz_host, questo indirizzo IP dovrebbe "Abbinare sia Consenti che Nega", quindi dovrebbe essere applicata la regola "Controlli di corrispondenza finali: Negato".
Abbina Consenti, Nega risultato Nega, Consenti risultato Abbina Consenti solo Richiesta consentita Richiesta consentita Match Nega solo Richiesta negata Richiesta negata Nessuna corrispondenza Predefinito alla seconda direttiva: negato Predefinito alla seconda direttiva: consentito Abbina entrambi i controlli della partita finale Consenti e Nega: Controlli della partita finale negati: Consentito
Allow from 192.168.16.0/24
. Come ho capito la documentazione, tutti gli IP dei richiedenti nella rete 192.168.16.0/24 corrisponderanno a questa istruzione Allow, la richiesta è consentita.