Différences entre les versions de « Apache config »

De BlaxWiki
Aller à la navigationAller à la recherche
Ligne 1 : Ligne 1 :
Explication de Order allow & deny :
* Order allow & deny :
<pre>
<pre>
Allow,Deny
Allow,Deny

Version du 29 avril 2013 à 11:55

  • Order allow & deny :
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.

----------------------------------------------------------------------------------------------------------------------------------------------
            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. L'exemple ci-dessous, va interdire tout accès au répertoire /www à cause du statut d'accès par défaut qui est défini à Deny.

<Directory /www>
    Order Allow,Deny
</Directory>

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.


  • Quelques exemples d'un fichier httpd.conf
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %T %v" full
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %P %T" debug
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b %t %T\"%{Referer}i\" \"%{User-Agent}i\"" perso
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

ServerSignature Off
ServerTokens ProductOnly

<VirtualHost 212.43.246.8>
    DocumentRoot /var/www/epyceprod
    ErrorLog /var/log/apache/error.log
    CustomLog /var/log/apache/blaxeenprod.com/epyceprod.com.fr.log combined
    ServerName prod.epyce.com
    php_value include_path .:/var/www/epyceprod
<Files ~ ".inc|.sql|.xml|.txt">
    Order allow,deny
    Deny from all
    Satisfy All
</Files>
</VirtualHost>

<VirtualHost 212.43.246.8>
    ServerName stats.epyce.com
    RedirectPermanent / http://www.epyce.com//awstats/awstats.pl?config=www.epyce.com
</VirtualHost>

<Directory /var/www/epyce/voc/arthur>
   Order deny,allow
   allow from 127.0.0.
   deny from all
</Directory>