<-
Apache > Serveur HTTP > Documentation > Version 2.4 > Modules

Module Apache mod_access_compat

Langues Disponibles:  en  |  fr  |  ja 

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

Sommaire

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.

Note

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>.

Fusion des sections de configuration

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.

Directives

Voir aussi

top

Allow Directive

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 :

Un nom de domaine (partiel)
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.

Une adresse IP compl�te
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

Une adresse IP partielle
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.

Une paire r�seau/masque de 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.

Une sp�cification CIDR r�seau/nnn
        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.

Fusion des sections de configuration

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.

top

Deny Directive

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.

top

Order Directive

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
Dans un premier temps, toutes les directives 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
Dans un premier temps, toutes les directives 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
Cet argument a le m�me effet que 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.

Fusion des sections de configuration

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.

top

Satisfy Directive

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>.

Fusion des sections de configuration

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.

Voir aussi

Langues Disponibles:  en  |  fr  |  ja 

top

Commentaires

Notice:
This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our mailing lists.