Serveur Apache HTTP Version 2.2
Description: | Autorisations de groupe bas�es sur l'h�te (nom ou adresse IP) |
---|---|
Statut: | Base |
Identificateur�de�Module: | authz_host_module |
Fichier�Source: | mod_authz_host.c |
Compatibilit�: | Disponible depuis les versions 2.1 et sup�rieures d'Apache |
Les directives fournies par le module
mod_authz_host
s'utilisent dans des sections
<Directory>
,
<Files>
, et
<Location>
, ou des
fichiers
.htaccess
pour
contr�ler l'acc�s � certaines zones du serveur. Le contr�le d'acc�s
peut �tre effectu� en fonction du nom d'h�te, de l'adresse IP, ou
d'autres caract�ristiques de la requ�te client, telles qu'elles sont
enregistr�es dans des 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
vont interagir.
Les restrictions d'acc�s bas�es sur l'h�te et l'authentification
� base de mots de passe peuvent �tre utilis�es conjointement. Dans
ce cas, la directive Satisfy
permet de d�terminer la mani�re dont ces deux m�thodes de
restriction interagissent.
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 ne restreindre
l'acc�s que pour certaines m�thodes, tout en laissant les autres
m�thodes sans protection, en pla�ant les directives dans une section
<Limit>
.
Description: | Contr�les quels h�tes peuvent acc�der � une certaine zone du serveur |
---|---|
Syntaxe: | Allow from all|h�te|env=[!]var-env
[h�te|env=[!]var-env] ... |
Contexte: | r�pertoire, .htaccess |
AllowOverride: | Limit |
Statut: | Base |
Module: | mod_authz_host |
Compatibilit�: | Le support de la n�gation de env=env-variable est assur� depuis la version 2.2.10 du serveur HTTP Apache |
La directive Allow
permet de contr�ler
quels h�tes peuvent
acc�der � une zone du serveur. On peut contr�ler
l'acc�s en fonction du nom d'h�te, de l'adresse IP, d'un intervalle
d'adresses IP, ou d'autres caract�ristiques de la requ�te client
enregistr�es dans des variables d'environnement.
Le premier argument de cette directive est toujours
from
. Les arguments suivants peuvent se pr�senter sous
trois formes. Si Allow from all
est sp�cifi�, tous les
h�tes ont l'autorisation d'acc�s, sauf si la configuration des
directives Deny
et
Order
apporte une
restriction quelconque, comme d�crit plus loin. Afin de n'accorder
l'acc�s au serveur qu'� certains h�tes ou groupes d'h�tes,
on peut utiliser l'argument h�te sous les formes
suivantes :
Allow from apache.org
Allow from .net exemple.edu
Les h�tes dont les nom correspond � la cha�ne sp�cifi�e, ou
se terminant par elle, sont autoris�s � acc�der. Seuls les
�l�ments complets du nom de domaine sont compar�s, si bien que
l'exemple ci-dessus correspondra � foo.apache.org
,
mais pas � fooapache.org
. Avec cette configuration,
Apache va effectuer une double recherche DNS sur l'adresse IP du
client, sans tenir compte de la d�finition de la directive
HostnameLookups
. Il effectue
tout d'abord une recherche DNS inverse sur l'adresse IP afin de
d�terminer le nom d'h�te associ�, puis une recherche directe sur
le nom d'h�te pour v�rifier s'il correspond bien � l'adresse IP
originale. L'acc�s ne sera accord� que si le nom d'h�te correspond
� la cha�ne sp�cifi�e et si les recherches DNS inverse et
directe produisent un r�sultat coh�rent.
Allow from 10.1.2.3
Allow from 192.168.1.104 192.168.1.205
L'adresse IP d'un h�te qui a l'autorisation d'acc�s
Allow from 10.1
Allow from 10 172.20 192.168.2
Les 1 � 3 premiers octets d'une adresse IP, pour r�f�rencer 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 la restriction plus fine d'un sous-r�seau.
Allow from 10.1.0.0/16
Identique au cas pr�c�dent, mais le masque de sous-r�seau se compose des nnn bits de poids forts.
Notez que les trois derniers exemples r�f�rencent exactement 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'arguments 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=var-env
est sp�cifi�, la
requ�te est autoris�e si la variable d'environnement
var-env existe. Lorsque Allow from
env=!var-env
est sp�cifi�, la requ�te est
autoris�e � acc�der si la variable d'environnement
var-env n'existe pas. Le serveur fournit la possibilit�
de d�finir des variables d'environnement avec une grande souplesse
en fonction des caract�ristiques de la requ�te client � l'aide des
directives fournies par le module mod_setenvif
. On
peut ainsi utiliser cette directive pour contr�ler l'acc�s en
fonction de certains en-t�tes comme User-Agent
(type de
navigateur), Referer
, etc...
SetEnvIf User-Agent ^KnockKnock/2\.0 laisse_moi_entrer
<Directory /docroot>
Order Deny,Allow
Deny from all
Allow from env=laisse_moi_entrer
</Directory>
Dans cet exemple, les navigateurs dont la cha�ne de description
de l'en-t�te user-agent commence par KnockKnock/2.0
se
verront accorder l'acc�s, alors que tous les autres se le verront
refuser.
Description: | D�termine quels h�tes ont l'acc�s au serveur refus� |
---|---|
Syntaxe: | Deny from all|h�te|env=[!]var-env
[h�te|env=[!]var-env] ... |
Contexte: | r�pertoire, .htaccess |
AllowOverride: | Limit |
Statut: | Base |
Module: | mod_authz_host |
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 arguments de la directive
Deny
sont identiques � ceux de la directive
Allow
..
Description: | D�termine le statut d'acc�s par d�faut et l'ordre dans
lequel les directives Allow et
Deny sont �valu�es. |
---|---|
Syntaxe: | Order ordre |
D�faut: | Order Deny,Allow |
Contexte: | r�pertoire, .htaccess |
AllowOverride: | Limit |
Statut: | Base |
Module: | mod_authz_host |
La directive Order
, utilis�e avec les
directives Allow
et
Deny
, fournit un
syst�me de contr�le d'acc�s en trois passes. La premi�re passe
traite soit toutes les directives Allow
, soit toutes les
directives Deny
,
comme sp�cifi� par la directive Order
. La
seconde passe traite le reste des directives (Deny
ou Allow
). La troisi�me passe
s'applique � toutes les requ�tes auxquelles aucune des deux
premi�res passes ne s'appliquent.
Notez que toutes les directives Allow
et Deny
sont trait�es, � la
diff�rence d'un pare-feu classique, o� seule la premi�re r�gle qui
convient est trait�e. La derni�re directive qui convient l'emporte
sur les autres (� la diff�rence l� aussi d'un pare-feu classique).
De plus, l'ordre dans lequel les lignes apparaissent dans les
fichiers de configuration n'a aucune importance -- toutes les
directives Allow
sont trait�es comme un
groupe, toutes les directives Deny
comme un autre, et le
statut d'acc�s par d�faut est ind�pendant.
Ordre peut �tre soit :
Allow,Deny
Allow
sont �valu�es en premier
; l'une d'elles au moins doit convenir, faute de quoi la requ�te
sera rejet�e. Vient ensuite le tour des directives Deny
. Si l'une au moins
convient, le requ�te est rejet�e. Enfin, toute requ�te � laquelle
ne convient aucune directive Allow
ou Deny
sera rejet�e par d�faut.Deny,Allow
Deny
sont �valu�es en premier
; si l'une au moins
convient, le requ�te est rejet�e, sauf si une
directive Allow
convient aussi. Enfin,
toute requ�te � laquelle
ne convient aucune directive Allow
ou Deny
aura l'autorisation
d'acc�s par d�faut.Mutual-failure
Order
Allow,Deny
qui le remplace.Les mots-cl�s ne doivent �tre s�par�s que par des virgules ; aucun espace ne doit s'intercaler entre eux.
Directives qui conviennent | R�sultat de Allow,Deny | R�sultat de Deny,Allow |
---|---|---|
Allow seulement convient | Requ�te autoris�e | Requ�te autoris�e |
Deny seulement convient | Requ�te rejet�e | Requ�te rejet�e |
Aucune directive ne convient | La seconde directive par d�faut: Rejet | La seconde directive par d�faut: Autorisation |
Allow & Deny conviennent | La derni�re directive qui convient prend le contr�le: Rejet | La derni�re directive qui convient prend le contr�le: Autorisation |
Dans l'exemple suivant, tous les h�tes du domaine apache.org ont l'autorisation d'acc�s ; tous les autres h�tes voient leur acc�s refus�.
Order Deny,Allow
Deny from all
Allow from apache.org
Dans l'exemple suivant, tous les h�tes du domaine apache.org ont
l'autorisation d'acc�s, sauf les h�tes du sous-domaine
foo.apache.org qui voient leur acc�s refus�. Tous les h�tes qui ne
font pas partie du domaine apache.org voient leur acc�s refus� car
le statut d'acc�s par d�faut est d�fini � Deny
.
Order Allow,Deny
Allow from apache.org
Deny from foo.apache.org
En revanche, si la directive Order
du
dernier exemple a pour valeur Deny,Allow
, tous les
h�tes auront l'autorisation d'acc�s. Ceci est d� au fait que l'on ne
tient pas compte de l'ordre dans lequel apparaissent les directives
dans le fichier de configuration, et que la directive Allow
from apache.org
est �valu�e en dernier et l'emporte donc sur
la directive Deny from foo.apache.org
. Tous les h�tes
qui ne font pas partie du domaine apache.org
auront
aussi l'autorisation d'acc�s, car le statut d'acc�s par d�faut est
d�fini �
Allow
.
M�me en l'absence de directives Allow
et Deny
associ�es, la pr�sence
d'une directive Order
peut affecter l'acc�s �
une partie du serveur, � cause de son effet sur le statut d'acc�s
par d�faut. Par exemple,
<Directory /www>
Order Allow,Deny
</Directory>
interdira tout acc�s au r�pertoire /www
car le
statut d'acc�s par d�faut est d�fini � Deny
.
La directive Order
ne contr�le l'ordre de
traitement des directives d'acc�s qu'� l'int�rieur de chaque phase
du traitement de la configuration du serveur. Ceci implique, par
exemple, qu'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
, sans tenir compte de la d�finition de la
directive Order
. Pour plus de d�tails sur la
fusion des sections de configuration, voir la documentation Comment fonctionnent les sections Directory,
Location et Files.