Description : Contrôler quels hôtes peuvent accéder à une zone du serveur Syntaxe : Autoriser depuis tous|host|env=env-variable [host|env=env-variable]...
Contexte : répertoire, .htaccess
Couverture : Limite
Statut : Base
Module : mod_access
La directive Allow affecte les hôtes qui peuvent accéder à une zone du serveur. L'accès peut être contrôlé à l'aide des caractéristiques des demandes des clients capturées dans les noms d'hôte, les adresses IP, les plages d'adresses IP ou d'autres variables d'environnement.
Le premier paramètre de cette directive est toujours from. Les paramètres suivants peuvent prendre trois formes différentes. Si Allow from all est spécifié, tous les hôtes sont autorisés à accéder, ce qui nécessite que les directives Deny et Order soient configurées comme indiqué ci-dessous. Pour autoriser uniquement un sous-ensemble spécifique d'hôtes ou de groupes d'hôtes à accéder au serveur, l'hôte peut être spécifié dans l'un des formats suivants :
Un nom de domaine (partie)
Exemple : Autoriser depuis apache.org
Autoriser l'accès aux hôtes dont les noms correspondent ou se terminent par la chaîne donnée. Seuls les composants de nom complet correspondent, donc l'exemple ci-dessus correspondra à foo.apache.org mais pas à fooapache.org. Une telle configuration amènera le serveur à effectuer une opération de recherche inversée de nom de domaine sur l'adresse IP du client, que la directive HostnameLookups définisse ou non l'adresse IP complète. Exemple : Autoriser à partir de 10.1.2.3.
Autoriser l'accès à partir d'une adresse IP d'un hôte.
Quelques exemples d'adresses IP : Autoriser à partir de 10.1
Les 1 à 3 premiers octets de l'adresse IP sont utilisés pour les restrictions de sous-réseau.
Exemple de paire réseau/masque : Autoriser à partir de 10.1.0.0/255.255.0.0
un réseau abcd, et un masque wxyz. Pour des restrictions de sous-réseau plus précises.
Réseau/nnn Aucun exemple de spécification de routage intra-zone : Autoriser à partir de 10.1.0.0/16
Similaire au cas précédent, sauf que le masque est constitué de nnn octets de poids fort.
Notez que les trois derniers exemples ci-dessus correspondent exactement au même ensemble d'hôtes.
Les adresses IPv6 et les sous-réseaux IPv6 peuvent être spécifiés comme ceci :
Autoriser depuis fe80::a00:20ff:fea7:ccea
Autoriser à partir de fe80::a00:20ff:fea7:ccea/10
Le troisième format de paramètre de la directive Allow permet d'accéder au serveur spécifié par une extension de la variable d'environnement. Lorsque Allow from env=env-variable est spécifié, la demande d'accès est autorisée si la variable d'environnement env-variable existe. À l'aide des directives fournies par mod_setenvif, le serveur offre la possibilité de définir des variables d'environnement de manière flexible en fonction des demandes des clients. Par conséquent, cette directive peut être utilisée pour autoriser l'accès en fonction de champs tels que User-Agent (type de navigateur), Referer ou d'autres champs d'en-tête de requête HTTP.
exemple:
Agent utilisateur SetEnvIf ^KnockKnock/2.0 let_me_in
<Répertoire /docroot>
Commande refusée, Autoriser
Nier de tous
Autoriser depuis env=let_me_in
</Répertoire>
Dans ce cas, les navigateurs envoyant des identifiants d'agent utilisateur commençant par KnockKnock/2.0 seront autorisés à accéder, tandis que tous les autres navigateurs seront bloqués.
Description de l'instruction de refus : Contrôler quels hôtes ne sont pas autorisés à accéder au serveur Syntaxe : Deny from all|host|env=env-variable [host|env=env-variable] ...
Contexte : répertoire, .htaccess
Couverture : Limite
Statut : Base
Module : mod_access
Cette directive permet de restreindre l'accès au serveur en fonction du nom d'hôte, de l'adresse IP ou de variables d'environnement. Les réglages des paramètres de la commande Deny sont exactement les mêmes que ceux de la commande Allow.
Description de l'instruction de commande : contrôle l'état d'accès par défaut et l'ordre dans lequel les instructions Autoriser et Refuser sont évaluées.
Syntaxe : Ordre de commande
Valeur par défaut : Refuser la commande, Autoriser
Contexte : répertoire, .htaccess
Couverture : Limite
Statut : Base
Module : mod_access
La directive Order contrôle le statut d'accès par défaut et l'ordre dans lequel les directives Allow et Deny sont évaluées. La commande est l'un des exemples suivants :
Refuser, Autoriser
Les instructions de refus sont évaluées avant les instructions d'autorisation. Tous les accès sont autorisés par défaut. Tout client qui ne correspond pas à la directive Deny ou correspond à la directive Allow est autorisé à accéder au serveur.
Autoriser, Refuser
La directive Allow est évaluée avant la directive Deny. Tout accès est interdit par défaut. Tout client qui ne correspond pas à la directive Allow ou qui correspond à la directive Deny se verra interdire d'accéder au serveur.
Échec mutuel
Seuls les hôtes qui apparaissent dans la liste Autoriser et non dans la liste Refuser sont autorisés à accéder. Cette commande a le même effet que Order Allow, Deny et est obsolète. Quelle configuration inclut-elle ?
Les mots-clés ne peuvent être séparés que par des virgules ; il ne peut y avoir d'espace entre eux. Notez que chaque instruction de directive Allow et Deny sera évaluée dans tous les cas.
Dans l'exemple ci-dessous, l'accès est autorisé à tous les hôtes du domaine apache.org, tandis que l'accès à tout autre hôte est refusé.
Commande refusée, Autoriser
Nier de tous
Autoriser depuis apache.org
Dans l'exemple suivant, l'accès est autorisé à tous les hôtes du domaine apache.org, à l'exception des hôtes contenus dans le sous-domaine foo.apache.org, dont l'accès est refusé. Tous les hôtes qui ne font pas partie du domaine apache.org ne sont pas autorisés à y accéder, car l'état par défaut consiste à refuser l'accès au serveur.
Commande Autoriser, Refuser
Autoriser depuis apache.org
Refuser de foo.apache.org
D'un autre côté, si la directive Order de l'exemple précédent est modifiée en Deny,Allow, l'accès de tous les hôtes sera autorisé. En effet, quel que soit l'ordre réel des directives dans le fichier de configuration, la directive Allow d'apache.org sera évaluée en dernier et écrasera la directive Deny précédente de foo.apache.org. Tous les hôtes ne faisant pas partie du domaine apache.org sont également autorisés à accéder car l'état par défaut a été modifié pour autoriser.
Même si elle n'est pas accompagnée d'instructions Allow et Deny, l'existence d'une instruction Order affectera l'accès à une certaine partie du serveur. Cela est dû à son impact sur l'état d'accès par défaut. Par exemple,
<Répertoire /www>
Commande Autoriser, Refuser
</Répertoire>
Cela désactivera tout accès au répertoire /www, car le statut par défaut sera défini sur refuser.
La directive Order contrôle le traitement des instructions d'accès uniquement dans chaque segment de la configuration du serveur. Cela signifie que, par exemple, une directive Allow ou Deny apparaissant dans une section <Location> sera toujours évaluée après une directive Allow ou Deny apparaissant dans une section <Directory> ou un fichier .htaccess, quel que soit le paramètre de la directive Order. Pourquoi. Pour plus de détails sur la fusion des sections de configuration, consultez Fonctionnement des sections Répertoire, Emplacement et Fichiers.