Moin!
Order deny,allow
Deny from .aol.com
Deny from 192.168
Allow from 192.168.220.102
>
> Bedeutet: Als erstes werden die Deny-Direktiven berücksichtigt, dann die Allow.
> Allen Clients, deren Hostname im DNS auf .aol.com endet, sowie alle Clients, deren IP-Adresse mit 192.168 beginnt, werden ausgeschlossen; ausgenommen der Client mit der IP-Adresse 192.168.220.102, von dem aus Zugriffe erlaubt werden.
Das ist so nicht vollständig erklärt.
Das LETZTE Keyword im Order-Statement definiert, welche Standard-Einstellung grundsätzlich gilt. Hier ist es "allow", also ist der Zugriff grundsätzlich möglich.
Der Zugriff wird verboten, wenn eine der als Deny aufgeführten Bedingungen zutrifft, also hier "Hostname endet auf .aol.com" und "IP beginnt mit 192.168".
Diese Verbotsbedingung tritt aber nur dann in Kraft, wenn nicht noch eine Allow-Bedingung explizit aufgeführt ist - hier für die IP 192.168.220.102.
Mit diesem dreistufigen Schema kann man also erstens für die Allgemeinheit eine Standardvorgabe machen, diese dann einschränken, und die Einschränkung dann teilweise wieder rückgängig machen. Im Falle von "Order deny,allow" ist der Standard "allow", einzelne Zugriffe werden mit Deny geblockt, und zu großes Deny kann mit Ausnahmen via Allow nochmal feiner definiert werden.
Umgekehrt hätte "Order allow,deny" zur Folge, dass grundsätzlich erstmal geblockt wird, einzelne Bereiche dann mit Allow Zugriff erhalten, und dieser Zugriff nochmal mit Deny eingeschränkt werden kann.
Es gibt "Allow from all" bzw. "Deny from all" - das zu benutzen ist aber nicht unbedingt die allerbeste Idee, weil diese Standardeinstellung für "alles" ja bereits durch passendes "Order" bestimmt werden kann. Insgesamt muss man sich sowieso seine Gedanken machen, ob die gewählte Definition das erreicht, was man will.
Typische Verwendung für "from all" wäre:
~~~apache
Order deny,allow
Deny from all
Allow from .intranet.example
Genau dasselbe erhält man mit:
Order allow,deny
Allow from .intranet.example
Im zweiten Beispiel kann man allerdings noch explizit Hosts ausnehmen, die doch keinen Zugriff haben sollen:
Order allow,deny
Allow from .intranet.example
Deny from gateway.intranet.example
- Sven Rautenberg