Beschreibung: Steuern Sie, welche Hosts auf einen Bereich des Servers zugreifen können. Syntax: Von allen zulassen|host|env=env-variable [host|env=env-variable] ...
Kontext: Verzeichnis, .htaccess
Abdeckung: Limit
Status: Basis
Modul: mod_access
Die Allow-Anweisung beeinflusst, welche Hosts auf einen Bereich des Servers zugreifen können. Der Zugriff kann mithilfe von Client-Anforderungsmerkmalen gesteuert werden, die in Hostnamen, IP-Adressen, IP-Adressbereichen oder anderen Umgebungsvariablen erfasst werden.
Der erste Parameter dieser Direktive ist immer from. Die nachfolgenden Parameter können drei verschiedene Formen annehmen. Wenn „Von allen zulassen“ angegeben ist, ist allen Hosts der Zugriff gestattet. Dazu müssen die Anweisungen „Deny“ und „Order“ wie unten beschrieben konfiguriert werden. Um nur einer bestimmten Untergruppe von Hosts oder Hostgruppen den Zugriff auf den Server zu ermöglichen, kann der Host in einem der folgenden Formate angegeben werden:
Ein Domainname (Teil)
Beispiel: Von apache.org zulassen
Erlauben Sie den Zugriff auf Hosts, deren Namen mit der angegebenen Zeichenfolge übereinstimmen oder mit dieser enden. Es werden nur vollständige Namensbestandteile abgeglichen, daher stimmt das obige Beispiel mit foo.apache.org überein, nicht jedoch mit fooapache.org. Eine solche Konfiguration führt dazu, dass der Server einen Reverse-Domain-Name-Lookup-Vorgang für die IP-Adresse des Clients durchführt, unabhängig davon, ob die HostnameLookups-Direktive die vollständige IP-Adresse festlegt. Beispiel: Ab 10.1.2.3 zulassen
Erlauben Sie den Zugriff von einer IP-Adresse eines Hosts.
Einige Beispiele für IP-Adressen: Ab 10.1 zulassen
Die ersten 1 bis 3 Bytes der IP-Adresse werden für Subnetzbeschränkungen verwendet.
Beispiel für ein Netzwerk-/Maskenpaar: Ab 10.1.0.0/255.255.0.0 zulassen
ein Netzwerk abcd und eine Maske wxyz. Für genauere Subnetzbeschränkungen.
Netzwerk/nnn Beispiel für keine Intra-Area-Routing-Spezifikation: Ab 10.1.0.0/16 zulassen
Ähnlich wie im vorherigen Fall, außer dass die Maske aus nnn höherwertigen Bytes besteht.
Beachten Sie, dass die letzten drei Beispiele oben genau derselben Gruppe von Hosts entsprechen.
IPv6-Adressen und IPv6-Subnetze können wie folgt angegeben werden:
Zulassen von fe80::a00:20ff:fea7:ccea
Erlauben ab fe80::a00:20ff:fea7:ccea/10
Das dritte Parameterformat der Allow-Direktive ermöglicht den Zugriff auf den Server, der durch eine Erweiterung der Umgebungsvariablen angegeben wird. Wenn „Zulassen von env=env-variable“ angegeben ist, wird die Zugriffsanforderung zugelassen, wenn die Umgebungsvariable env-variable vorhanden ist. Mithilfe der von mod_setenvif bereitgestellten Anweisungen bietet der Server die Möglichkeit, Umgebungsvariablen basierend auf Clientanforderungen flexibel festzulegen. Daher kann diese Direktive verwendet werden, um den Zugriff basierend auf Feldern wie User-Agent (Browsertyp), Referer oder anderen HTTP-Anforderungsheaderfeldern zu ermöglichen.
Beispiel:
SetEnvIf User-Agent ^KnockKnock/2.0 let_me_in
<Verzeichnis /docroot>
Befehl verweigern, zulassen
Von allen leugnen
Erlauben von env=let_me_in
</Verzeichnis>
In diesem Fall wird Browsern, die User-Agent-IDs senden, die mit KnockKnock/2.0 beginnen, der Zugriff gewährt, während alle anderen Browser blockiert werden.
Beschreibung der Verweigerungsanweisung: Steuern Sie, welchen Hosts der Zugriff auf den Server untersagt ist. Syntax: Verweigern von allen|host|env=env-variable [host|env=env-variable] ...
Kontext: Verzeichnis, .htaccess
Abdeckung: Limit
Status: Basis
Modul: mod_access
Diese Anweisung ermöglicht die Einschränkung des Zugriffs auf den Server basierend auf Hostname, IP-Adresse oder Umgebungsvariablen. Die Parametereinstellungen des Deny-Befehls sind genau die gleichen wie die des Allow-Befehls.
Beschreibung der Reihenfolge der Anweisungen: Steuert den Standardzugriffsstatus und die Reihenfolge, in der Zulassen- und Verweigerungsanweisungen ausgewertet werden.
Syntax: Reihenfolge bestellen
Standardwert: Order verweigern, zulassen
Kontext: Verzeichnis, .htaccess
Abdeckung: Limit
Status: Basis
Modul: mod_access
Die Order-Direktive steuert den Standardzugriffsstatus und die Reihenfolge, in der die Allow- und Deny-Direktiven ausgewertet werden. Die Bestellung ist eines der folgenden Beispiele:
Verweigern, Erlauben
Verweigerungsanweisungen werden vor Zulassungsanweisungen ausgewertet. Jeder Zugriff ist standardmäßig zulässig. Jeder Client, der nicht mit der Deny-Anweisung oder der Allow-Anweisung übereinstimmt, darf auf den Server zugreifen.
Erlauben, verweigern
Die Allow-Direktive wird vor der Deny-Direktive ausgewertet. Jeglicher Zugriff ist standardmäßig verboten. Jedem Client, der nicht mit der Allow-Anweisung oder der Deny-Anweisung übereinstimmt, wird der Zugriff auf den Server untersagt.
Gegenseitiges Versagen
Nur Hosts, die in der Zulassungsliste und nicht in der Verweigerungsliste aufgeführt sind, dürfen darauf zugreifen. Diese Anordnung hat die gleiche Wirkung wie die Anordnung „Zulassen“, „Verweigern“ und ist veraltet. Welche Konfiguration ist darin enthalten?
Schlüsselwörter können nur durch Kommas getrennt werden; es dürfen keine Leerzeichen dazwischen stehen. Beachten Sie, dass jede Anweisung der Allow- und Deny-Anweisung in allen Fällen ausgewertet wird.
Im folgenden Beispiel ist der Zugriff auf alle Hosts in der Domäne apache.org gestattet, während der Zugriff auf alle anderen Hosts verweigert wird.
Befehl verweigern, zulassen
Von allen leugnen
Zulassen von apache.org
Im folgenden Beispiel ist der Zugriff auf alle Hosts in der Domäne apache.org gestattet, mit Ausnahme der Hosts in der Unterdomäne foo.apache.org, denen der Zugriff verweigert wird. Allen Hosts, die sich nicht in der Domäne apache.org befinden, ist der Zugriff nicht gestattet, da der Standardstatus darin besteht, den Zugriff auf den Server zu verweigern.
Befehl Erlauben, Verweigern
Zulassen von apache.org
Ablehnen von foo.apache.org
Wenn andererseits die Order-Anweisung im vorherigen Beispiel in „Deny,Allow“ geändert wird, wird der Zugriff von allen Hosts zugelassen. Dies liegt daran, dass unabhängig von der tatsächlichen Reihenfolge der Direktiven in der Konfigurationsdatei die Allow from apache.org-Direktive zuletzt ausgewertet wird und die vorherige Deny from foo.apache.org-Direktive überschreibt. Allen Hosts, die nicht zur Domäne apache.org gehören, ist ebenfalls der Zugriff gestattet, da der Standardstatus auf „Zulassen“ geändert wurde.
Auch wenn es nicht von den Anweisungen „Zulassen“ und „Verweigern“ begleitet wird, wirkt sich das Vorhandensein einer Befehlsanweisung auf den Zugriff auf einen bestimmten Teil des Servers aus. Dies liegt an der Auswirkung auf den Standardzugriffsstatus. Zum Beispiel,
<Verzeichnis /www>
Befehl Erlauben, Verweigern
</Verzeichnis>
Dadurch wird jeglicher Zugriff auf das Verzeichnis /www deaktiviert, da der Standardstatus auf „Verweigern“ eingestellt ist.
Die Order-Direktive steuert die Verarbeitung von Zugriffsanweisungen nur innerhalb jedes Segments der Serverkonfiguration. Dies bedeutet, dass beispielsweise eine Allow- oder Deny-Anweisung, die in einem Abschnitt <Location> erscheint, immer nach einer Allow- oder Deny-Anweisung ausgewertet wird, die in einem Abschnitt <Directory> oder einer .htaccess-Datei erscheint, unabhängig von der Einstellung in der Order-Direktive. Warum. Einzelheiten zum Zusammenführen von Konfigurationsabschnitten finden Sie unter Funktionsweise der Abschnitte „Verzeichnis“, „Standort“ und „Dateien“.