Serveur HTTP Apache Version 2.4
Description: | Autorisations de groupe à base de nom d'hôte (nom ou adresse IP) |
---|---|
Statut: | Extension |
Identificateur de Module: | access_compat_module |
Fichier Source: | mod_access_compat.c |
Compatibilité: | Disponible dans la version 2.3 du serveur HTTP Apache
à des fins de compatibilité
avec les précédentes versions d'Apache httpd 2.x. Les directives fournies par
ce module sont devenues obsolètes depuis la refonte d'authz. Voir
mod_authz_host |
Les directives fournies par le module
mod_access_compat
s'utilisent dans les sections
<Directory>
,
<Files>
et
<Location>
, ainsi
que dans les fichiers .htaccess
et permettent
de contrôler l'accès à certaines parties du serveur. On peut
contrôler cet accès en fonction du nom d'hôte du client, de son
adresse IP ou d'autres caractéristiques de la requête, telles
qu'elles sont enregistrées dans les variables
d'environnement. Les directives Allow
et Deny
permettent de spécifier
quels clients sont ou ne sont pas autorisés à accéder au serveur,
alors que la directive Order
définit le statut
d'accès par défaut, et détermine la manière dont les directives
Allow
et
Deny
interagissent
entre elles.
Les restrictions d'accès à base de nom d'hôte et
l'authentification à base de mot de passe peuvent être implémentées
simultanément. Dans ce cas, on utilise la directive Satisfy
pour déterminer la
manière dont ces deux modes de restrictions interagissent.
Les directives fournies par le module
mod_access_compat
sont devenues obsolètes depuis
la refonte du module mod_authz_host
. Mélanger d'anciennes
directives comme Order
, Allow
ou Deny
avec des nouvelles comme
Require
est techniquement
possible mais déconseillé. En effet, mod_access_compat
a
été conçu pour supporter des configurations ne contenant que des anciennes
directives afin de faciliter le passage à la version 2.4. Voir le document
upgrading pour plus de détails.
En général, les directives de restriction d'accès s'appliquent à
toutes les méthodes d'accès (GET
, PUT
,
POST
, etc...). C'est d'ailleurs ce que l'on souhaite
dans la plupart des cas. Il est cependant possible de restreindre
certaines méthodes, alors que les autres méthodes ne se verront
imposée aucune restriction, en regroupant les directives à
l'intérieur d'une section <Limit>
.
Lorsqu'une directive fournie par ce module est utilisée dans une nouvelle section de configuration, cette dernière n'hérite d'aucune directive définie dans une section précédente.
Description: | Spécifie quels hôtes peuvent accéder à une certaine zone du serveur |
---|---|
Syntaxe: | Allow from all|hôte|env=[!]variable
d'environnement
[hôte|env=[!]variable d'environnement] ... |
Contexte: | répertoire, .htaccess |
Surcharges autorisées: | Limit |
Statut: | Extension |
Module: | mod_access_compat |
La directive Allow
permet de définir quels
hôtes ont le droit d'accéder à une certaine partie du serveur. On
peut contrôler l'accès par nom d'hôte, adresse IP, intervalle
d'adresses IP, ou toute autre caractéristique de la requête client
enregistrée dans les variables d'environnement.
Le premier argument de cette directive est toujours
from
. Les arguments suivants peuvent prendre trois
formes différentes. Si Allow from all
est spécifié,
tout hôte se voit accordé l'accès, en tenant compte des directives
Deny
et Order
comme décrit plus loin.
Pour ne permettre l'accès au serveur qu'à un hôte ou un groupe
d'hôtes particuliers, on peut spécifier un nom d'hôte sous
une des formes suivantes :
Allow from example.org Allow from .net example.edu
Les hôtes dont les noms correspondent ou se terminent par la
chaîne spécifiée ont l'autorisation d'accès. Seules les
composantes entières du nom d'hôte doivent correspondre ; ainsi,
dans l'exemple ci-dessus, foo.example.org
correspondra, mais fooexample.org
ne conviendra pas.
Avec cette configuration, Apache httpd va effectuer une double recherche
DNS sur l'adresse IP du client, sans tenir compte de la
définition de la directive HostnameLookups
. Tout d'abord, une
recherche DNS inverse sur l'adresse IP est effectuée pour
déterminer le nom d'hôte associé, puis une recherche directe sur
le nom d'hôte est effectuée afin de s'assurer qu'il correspond
bien à l'adresse IP originale. L'accès ne sera accordé que si le
nom d'hôte correspond et si les recherches DNS inverse et directe
concordent.
Allow from 10.1.2.3 Allow from 192.168.1.104 192.168.1.205
L'adresse IP d'un hôte auquel on a accordé l'accès
Allow from 10.1 Allow from 10 172.20 192.168.2
De un à trois des premiers octets d'une adresse IP, afin de restreindre l'accès à un sous-réseau.
Allow from 10.1.0.0/255.255.0.0
Un réseau a.b.c.d, et un masque de sous-réseau w.x.y.z, pour une définition plus précise de la restriction d'accès imposée à un sous-réseau.
Allow from 10.1.0.0/16
Identique au cas précédent, mis à part que le masque est constitué des nnn bits de poids fort.
Notez que les trois derniers exemples désignent le même ensemble d'hôtes.
On peut spécifier des adresses et sous-réseaux IPv6 de la manière suivante :
Allow from 2001:db8::a00:20ff:fea7:ccea Allow from 2001:db8::a00:20ff:fea7:ccea/10
Le troisième format d'argument de la directive
Allow
permet de contrôler l'accès au serveur
en fonction de l'existence d'une variable d'environnement. Lorsque Allow
from env=variable d'environnement
est spécifié, la
requête est autorisée si la variable d'environnement variable
d'environnement existe. En revanche, lorsque Allow from
env=!env-variable
est spécifié, la
requête est autorisée si la variable d'environnement variable
d'environnement n'existe pas. Le serveur permet de définir
avec souplesse des variables d'environnement en se basant sur les
caractéristiques de la requête client et en utilisant les directives
fournies par le module mod_setenvif
. Ainsi, on peut
utiliser la directive Allow
pour permettre
l'accès en fonction de paramètres comme le User-Agent
(type de navigateur) des clients, le Referer
, ou
d'autres champs d'en-tête de la requête HTTP.
SetEnvIf User-Agent ^KnockKnock/2\.0 let_me_in <Directory "/docroot"> Order Deny,Allow Deny from all Allow from env=let_me_in </Directory>
Dans cet exemple, les navigateurs dont la chaîne user-agent
commence par KnockKnock/2.0
se verront accorder
l'accès, alors que tous les autres seront rejetés.
Lorsqu'une directive fournie par ce module est utilisée dans une nouvelle section de configuration, cette dernière n'hérite d'aucune directive définie dans une section précédente.
Description: | Définit quels hôtes ne sont pas autorisés à accéder au serveur |
---|---|
Syntaxe: | Deny from all|hôte|env=[!]variable
d'environnement
[hôte|env=[!]variable d'environnement] ... |
Contexte: | répertoire, .htaccess |