Serveur Apache HTTP 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 d'authz. Voir mod_authz_host
.
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 |
AllowOverride: | 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 |
AllowOverride: | Limit |
Statut: | Extension |
Module: | mod_access_compat |
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 aux arguments de la
directive Allow
.
Description: | D�finit 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: | Extension |
Module: | mod_access_compat |
La directive Order
, associ�e aux
directives Allow
et Deny
,
impl�mente un syst�me de contr�le d'acc�s en trois passes. Au cours
de la premi�re passe, ce sont soit toutes les directives Allow
, soit toutes les
directives Deny
qui sont trait�es, selon
la d�finition de la directive Order
. Le reste des
directives (Deny
ou Allow
) est
trait� au cours de la seconde passe. La troisi�me passe s'applique �
toutes les requ�tes qui ne sont concern�es par aucune des deux
premi�res passes.
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
correspond est utilis�e. La derni�re directive qui correspond
s'applique ( � la diff�rence l� encore d'un pare-feu classique). De
plus, l'ordre dans lequel les lignes apparaissent dans le fichier de
configuration n'a pas d'incidence -- toutes les lignes Allow
sont consid�r�es comme
un groupe, toutes les lignes Deny
comme un autre, et le
statut par d�faut a son existence propre.
Ordre peut �tre :
Allow,Deny
Allow
sont �valu�es ; au
moins une d'entre elles doit correspondre, sinon la requ�te est
rejet�e. Ensuite, toutes les directives Deny
sont �valu�es. Si au
moins l'une d'entre elles correspond, la requ�te est rejet�e.
Enfin, toute requ�te qui ne correspond � aucune directive
Allow
ou
Deny
est rejet�e
par d�faut.Deny,Allow
Deny
sont �valu�es ; Si au
moins une d'entre elles correspond, la requ�te est rejet�e,
� moins qu'elle corresponde aussi � une directive
Allow
. Toute
requ�te qui ne correspond � aucune directive Allow
ou Deny
est autoris�e.Mutual-failure
Allow,Deny
et
est devenu de ce fait obsol�te.Les mots-cl�s ne peuvent �tre s�par�s que par des virgules ; aucun espace ne doit s'intercaler entre eux.
Match | R�sultat Allow,Deny | R�sultat Deny,Allow |
---|---|---|
Correspond � Allow seulement | Requ�te autoris�e | Requ�te autoris�e |
Correspond � Deny seulement | Requ�te rejet�e | Requ�te rejet�e |
Aucune correspondance | Par d�faut la seconde directive : rejet | Par d�faut la seconde directive : autorisation |
Correspond � Allow & Deny | La derni�re correspondance l'emporte : rejet | La derni�re correspondance l'emporte : autorisation |
Dans cet exemple, tous les h�tes du domaine example.org ont l'autorisation d'acc�s ; tous les autres voient leur acc�s refus�.
Order Deny,Allow Deny from all Allow from example.org
Dans l'exemple suivant, tous les h�tes du domaine example.org ont
l'autorisation d'acc�s, sauf ceux du sous-domaine foo.example.org qui
voient leur acc�s refus�. Tous les h�tes qui ne sont pas dans le
domaine example.org sont rejet�s car le statut par d�faut est positionn�
sur Deny
, et consiste donc en un
refus d'acc�s.
Order Allow,Deny Allow from example.org Deny from foo.example.org
Par contre, si la valeur de la directive
Order
, dans l'exemple pr�c�dent, est
Deny,Allow
, tout le monde a l'autorisation d'acc�s.
Ceci est d� au fait que Allow from example.org
sera
�valu� en dernier, sans tenir compte de l'ordre r�el dans lequel les
directives apparaissent dans le fichier de configuration, et va
l'emporter sur Deny from foo.example.org
. Tout h�te qui
n'est pas dans le domaine example.org
aura aussi
l'autorisation d'acc�s car le statut par d�faut est positionn� sur
Allow
et constitue donc une
autorisation d'acc�s.
La pr�sence d'une directive Order
peut
affecter le contr�le d'acc�s � une partie du serveur m�me en
l'abscence de directives Allow
et Deny
associ�es, � cause de
son influence sur le statut par d�faut. Par exemple,
<Directory /www> Order Allow,Deny </Directory>
va interdire tout acc�s au r�pertoire /www
� cause
du statut d'acc�s par d�faut qui est d�fini � Deny
.
La directive Order
ne contr�le l'ordre
dans lequel sont trait�es les directives d'acc�s qu'au cours de
chaque phase du traitement de la configuration du serveur. Ceci
implique, par exemple, qu'une directive Allow
ou Deny
situ�e dans une section
<Location>
sera
toujours �valu�e apr�s une directive Allow
ou Deny
situ�e dans une section
<Directory>
ou un
fichier .htaccess
, sans tenir compte de la
d�finition de la directive Order
. Pour plus
de d�tails � propos de la fusion des sections de configuration, voir
le document Comment fonctionnent les sections Directory,
Location et Files.
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: | Interaction entre le contr�le d'acc�s en fonction de l'h�te et l'authentification utilisateur |
---|---|
Syntaxe: | Satisfy Any|All |
D�faut: | Satisfy All |
Contexte: | r�pertoire, .htaccess |
AllowOverride: | AuthConfig |
Statut: | Extension |
Module: | mod_access_compat |
Compatibilit�: | Affect� par <Limit> et <LimitExcept> � partir de la version
2.0.51 |
Politique d'acc�s dans le cas o� on utilise � la fois Allow
et Require
. L'argument est soit
All
, soit Any
. L'utilisation de cette
directive n'a de sens que si l'acc�s � une zone particuli�re du
serveur est restreinte par utilisateur/mot de passe et en fonction
de l'adresse IP de l'h�te client. Dans ce cas, par
d�faut (All
), le client doit satisfaire � la
restriction d'adresse, et fournir un couple
utilisateur/mot de passe valide. Avec l'argument Any
,
le client se verra accorder l'acc�s s'il satisfait � la restriction
d'adresse ou fournit un couple utilisateur/mot de passe valide. On
peut utiliser cette derni�re d�finition pour restreindre l'acc�s �
une zone par mot de passe, mais accorder l'acc�s aux clients
poss�dant certaines adresses IP sans qu'ils aient � fournir de mot
de passe.
Par exemple, si vous souhaitez que les utilisateurs de votre r�seau acc�dent � une zone de votre site web sans restriction, mais que l'acc�s � cette zone n�cessite un mot de passe pour les autres utilisateurs, vous pouvez utiliser une configuration du style :
Require valid-user Allow from 192.168.1 Satisfy Any
Une autre utilisation fr�quente de la directive
Satisfy
est l'all�gement des restrictions
d'acc�s � un sous-r�pertoire par rapport aux restrictions d'acc�s au
r�pertoire parent :
<Directory /var/www/private> Require valid-user </Directory> <Directory /var/www/private/public> Allow from all Satisfy Any </Directory>
Dans l'exemple ci-dessus, l'acc�s au r�pertoire
/var/www/private
n�cessitera une authentification,
alors que l'acc�s au r�pertoire /var/www/private/public
sera accord� sans restriction.
Depuis la version 2.0.51, les directives
Satisfy
peuvent �tre restreintes � certaines
m�thodes particuli�res � l'aide des sections <Limit>
et <LimitExcept>
.
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.