From 977e515d0970257bc45f60794f4795a479e8b860 Mon Sep 17 00:00:00 2001
From: Lucien Gentis L'authentification est un processus qui vous permet de vérifier
- qu'une personne est bien celle qu'elle prétend être. L'autorisation
- est un processus qui permet à une personne d'aller là où elle veut
- aller, ou d'obtenir les informations qu'elle désire. L'authentification est un processus qui vous permet de vérifier
+ qu'une personne est bien celle qu'elle prétend être. L'autorisation
+ est un processus qui permet à une personne d'aller là où elle veut
+ aller, ou d'obtenir les informations qu'elle désire. Pour le contrôle d'accès en général, voir le How-To Contrôle d'accès. Pour le contrôle d'accès en général, voir le How-To Contrôle d'accès.
On peut aussi ajouter
Le module
Vous devriez aussi jeter un coup d'oeil au manuel de recettes de Contrôle d'accès, qui décrit les différentes - méthodes de contrôle d'accès à votre serveur.
+ href="access.html">Contrôle d'accès, qui décrit les différentes + méthodes de contrôle d'accès à votre serveur.Si votre site web contient des informations sensibles ou - destinées seulement à un groupe de personnes restreint, les - techniques exposées dans cet article vont vous aider à vous assurer - que les personnes qui ont accès à ces pages sont bien celles - auxquelles vous avez donné l'autorisation d'accès.
+ destinées seulement à un groupe de personnes restreint, les + techniques exposées dans cet article vont vous aider à vous assurer + que les personnes qui ont accès à ces pages sont bien celles + auxquelles vous avez donné l'autorisation d'accès. -Cet article décrit les méthodes "standards" de protection de - parties de votre site web que la plupart d'entre vous sont appelés à +
Cet article décrit les méthodes "standards" de protection de + parties de votre site web que la plupart d'entre vous sont appelés à utiliser.
Si vos données ont un réel besoin de sécurisation, prévoyez
- l'utilisation de
Si vos données ont un réel besoin de sécurisation, prévoyez
+ l'utilisation de
Les directives décrites dans cet article devront être insérées
+ Les directives décrites dans cet article devront être insérées
soit au niveau de la configuration de votre serveur principal (en
- général dans une section .htaccess
).htaccess
)
Si vous envisagez l'utilisation de fichiers
.htaccess
, la configuration de votre serveur devra
permettre l'ajout de directives d'authentification dans ces
fichiers. Pour ce faire, on utilise la directive
Comme il est ici question d'authentification, vous aurez besoin
d'une directive
Si vous avez l'intention d'ajouter les directives directement dans le fichier de configuration principal, vous devrez bien entendu - posséder les droits en écriture sur ce fichier.
+ posséder les droits en écriture sur ce fichier. -Vous devrez aussi connaître un tant soit peu la structure des - répertoires de votre serveur, ne serait-ce que pour savoir où se - trouvent certains fichiers. Cela ne devrait pas présenter de grandes - difficultés, et nous essaierons de clarifier tout ça lorsque le besoin +
Vous devrez aussi connaître un tant soit peu la structure des + répertoires de votre serveur, ne serait-ce que pour savoir où se + trouvent certains fichiers. Cela ne devrait pas présenter de grandes + difficultés, et nous essaierons de clarifier tout ça lorsque le besoin s'en fera sentir.
Enfin, vous devrez vous assurer que les modules
Nous décrivons ici les bases de la protection par mot de passe - d'un répertoire de votre serveur.
+Nous décrivons ici les bases de la protection par mot de passe + d'un répertoire de votre serveur.
-Vous devez en premier lieu créer un fichier de mots de passe. La - méthode exacte selon laquelle vous allez créer ce fichier va varier +
Vous devez en premier lieu créer un fichier de mots de passe. La + méthode exacte selon laquelle vous allez créer ce fichier va varier en fonction du fournisseur d'authentification choisi. Mais nous - entrerons dans les détails plus loin, et pour le moment, nous nous + entrerons dans les détails plus loin, et pour le moment, nous nous contenterons d'un fichier de mots de passe en mode texte.
-Ce fichier doit être enregistré à un endroit non accessible - depuis le web, de façon à ce que les clients ne puissent pas le - télécharger. Par exemple, si vos documents sont servis à partir de +
Ce fichier doit être enregistré à un endroit non accessible
+ depuis le web, de façon à ce que les clients ne puissent pas le
+ télécharger. Par exemple, si vos documents sont servis à partir de
/usr/local/apache/htdocs
, vous pouvez enregistrer le
fichier des mots de passe dans
/usr/local/apache/passwd
.
L'utilitaire bin
de votre installation d'Apache. Si vous avez
- installé Apache à partir d'un paquetage tiers, il sera probablement
- dans le chemin par défaut de vos exécutables.
Pour créer le fichier, tapez :
+Pour créer le fichier, tapez :
Si /usr/local/apache2/bin/htpasswd
.
/usr/local/apache2/bin/htpasswd
.
- Ensuite, vous allez devoir configurer le serveur de façon à ce - qu'il demande un mot de passe et lui préciser quels utilisateurs ont - l'autorisation d'accès. Pour ce faire, vous pouvez soit éditer le +
Ensuite, vous allez devoir configurer le serveur de façon à ce
+ qu'il demande un mot de passe et lui préciser quels utilisateurs ont
+ l'autorisation d'accès. Pour ce faire, vous pouvez soit éditer le
fichier httpd.conf
, soit utiliser un fichier
- .htaccess
. Par exemple, si vous voulez protéger le
- répertoire /usr/local/apache/htdocs/secret
, vous pouvez
+ .htaccess
. Par exemple, si vous voulez protéger le
+ répertoire /usr/local/apache/htdocs/secret
, vous pouvez
utiliser les directives suivantes, soit dans le fichier
/usr/local/apache/htdocs/secret/.htaccess
, soit dans le
- fichier httpd.conf
à l'intérieur d'une section <Directory
+ fichier httpd.conf
à l'intérieur d'une section <Directory
"/usr/local/apache/htdocs/secret"> :
Examinons ces directives une à une. La directive Basic
, et elle est implémentée par
-
Examinons ces directives une à une. La directive Basic
, et elle est implémentée par
+ AuthType
- Digest
. Cette méthode est implémentée par le module AuthType
+ Digest
. Cette méthode est implémentée par le module
La directive
Ainsi par exemple, une fois un client authentifié dans la zone
- "Fichiers réservés"
, il soumettra à nouveau
- automatiquement le même mot de passe pour toute zone du même serveur
- marquée de l'identificateur "Fichiers réservés"
. De
- cette façon, vous pouvez éviter à un utilisateur d'avoir à saisir
- plusieurs fois le même mot de passe en faisant partager le même
- identificateur entre plusieurs zones réservées. Bien entendu et pour
- des raisons de sécurité, le client devra redemander le mot
- de passe chaque fois que le nom d'hôte du serveur sera modifié.
Ainsi par exemple, une fois un client authentifié dans la zone
+ "Fichiers réservés"
, il soumettra à nouveau
+ automatiquement le même mot de passe pour toute zone du même serveur
+ marquée de l'identificateur "Fichiers réservés"
. De
+ cette façon, vous pouvez éviter à un utilisateur d'avoir à saisir
+ plusieurs fois le même mot de passe en faisant partager le même
+ identificateur entre plusieurs zones réservées. Bien entendu et pour
+ des raisons de sécurité, le client devra redemander le mot
+ de passe chaque fois que le nom d'hôte du serveur sera modifié.
La directive file
est la valeur par défaut
+ cas, facultative, car file
est la valeur par défaut
pour cette directive. Par contre, cette directive sera obligatoire
si vous utilisez une autre source d'authentification comme
La directive
Enfin, la directive
Les directives ci-dessus n'autorisent qu'une personne (quelqu'un
- possédant le nom d'utilisateur rbowen
) à accéder au
- répertoire. Dans la plupart des cas, vous devrez autoriser
- l'accès à plusieurs personnes. C'est ici
+ possédant le nom d'utilisateur rbowen
) à accéder au
+ répertoire. Dans la plupart des cas, vous devrez autoriser
+ l'accès à plusieurs personnes. C'est ici
qu'intervient la directive
Si vous voulez autoriser l'accès à plusieurs personnes, vous - devez créer un fichier de groupes qui associe des noms de groupes +
Si vous voulez autoriser l'accès à plusieurs personnes, vous + devez créer un fichier de groupes qui associe des noms de groupes avec une liste d'utilisateurs de ce groupe. Le format de ce fichier - est très simple, et vous pouvez le créer avec votre éditeur favori. - Son contenu se présente comme suit :
+ est très simple, et vous pouvez le créer avec votre éditeur favori. + Son contenu se présente comme suit :Il s'agit simplement une liste des membres du groupe sous la - forme d'une ligne séparée par des espaces.
+ forme d'une ligne séparée par des espaces. -Pour ajouter un utilisateur à votre fichier de mots de passe - préexistant, entrez :
+Pour ajouter un utilisateur à votre fichier de mots de passe + préexistant, entrez :
Vous obtiendrez le même effet qu'auparavant, mais le mot de passe
- sera ajouté au fichier, plutôt que d'en créer un nouveau (C'est le
- drapeau -c
qui permet de créer un nouveau fichier de
+
Vous obtiendrez le même effet qu'auparavant, mais le mot de passe
+ sera ajouté au fichier, plutôt que d'en créer un nouveau (C'est le
+ drapeau -c
qui permet de créer un nouveau fichier de
mots de passe)..
Maintenant, vous devez modifier votre fichier @@ -337,58 +337,58 @@ Require group GroupName
Maintenant, quiconque appartient au groupe
- Nom-de-groupe
, et possède une entrée dans le fichier
- password
pourra accéder au répertoire s'il tape le bon
+ Nom-de-groupe
, et possède une entrée dans le fichier
+ password
pourra accéder au répertoire s'il tape le bon
mot de passe.
Il existe une autre méthode moins contraignante pour autoriser - l'accès à plusieurs personnes. Plutôt que de créer un fichier de +
Il existe une autre méthode moins contraignante pour autoriser + l'accès à plusieurs personnes. Plutôt que de créer un fichier de groupes, il vous suffit d'ajouter la directive suivante :
Le remplacement de la ligne Require user rbowen
par
- la ligne Require valid-user
autorisera l'accès à
- quiconque possédant une entrée dans le fichier password, et ayant
- tapé le bon mot de passe.
Require valid-user
autorisera l'accès Ã
+ quiconque possédant une entrée dans le fichier password, et ayant
+ tapé le bon mot de passe.
L'authentification Basic est spécifiée d'une telle manière que
- vos nom d'utilisateur et mot de passe doivent être vérifiés chaque
- fois que vous demandez un document au serveur, et ceci même si vous
- rechargez la même page, et pour chaque image contenue dans la page
- (si elles sont situées dans un répertoire protégé). Comme vous
+ L'authentification Basic est spécifiée d'une telle manière que
+ vos nom d'utilisateur et mot de passe doivent être vérifiés chaque
+ fois que vous demandez un document au serveur, et ceci même si vous
+ rechargez la même page, et pour chaque image contenue dans la page
+ (si elles sont situées dans un répertoire protégé). Comme vous
pouvez l'imaginer, ceci ralentit un peu le fonctionnement. La mesure
- dans laquelle le fonctionnement est ralenti est proportionnelle à la
- taille du fichier des mots de passe, car ce dernier doit être ouvert
- et la liste des utilisateurs parcourue jusqu'à ce que votre nom soit
- trouvé, et ceci chaque fois qu'une page est chargée.
En conséquence, ce ralentissement impose une limite pratique au +
En conséquence, ce ralentissement impose une limite pratique au nombre d'utilisateurs que vous pouvez enregistrer dans un fichier de mots de passe. Cette limite va varier en fonction des performances - de votre serveur, mais vous commencerez à remarquer un + de votre serveur, mais vous commencerez à remarquer un ralentissement lorsque vous atteindrez quelques centaines - d'utilisateurs, et serez alors appelés à utiliser une méthode - d'authentification différente.
+ d'utilisateurs, et serez alors appelés à utiliser une méthode + d'authentification différente.Suite au problème évoqué précédemment et induit par le stockage - des mots de passe dans un fichier texte, vous pouvez être appelé à - stocker vos mots de passe d'une autre manière, par exemple dans une - base de données.
+Suite au problème évoqué précédemment et induit par le stockage + des mots de passe dans un fichier texte, vous pouvez être appelé à + stocker vos mots de passe d'une autre manière, par exemple dans une + base de données.
Pour y parvenir, on peut utiliser les modules
dbm
ou
- dbd
à la place de file
pour la directive
+ dbd
à la place de file
pour la directive
Par exemple, pour sélectionner un fichier dbm à la place d'un +
Par exemple, pour sélectionner un fichier dbm à la place d'un fichier texte :
D'autres options sont disponibles. Consultez la documentation de
-
Depuis l'arrivée des nouvelles architecture d'autorisation et - d'authentification basées sur les fournisseurs, vous n'êtes plus - limité à une méthode d'authentification et d'autorisation +
Depuis l'arrivée des nouvelles architecture d'autorisation et + d'authentification basées sur les fournisseurs, vous n'êtes plus + limité à une méthode d'authentification et d'autorisation unique. En fait, on peut panacher autant de fournisseurs que l'on - veut, ce qui vous permet d'élaborer l'architecture qui correspond - exactement à vos besoins. Dans l'exemple suivant, on utilise + veut, ce qui vous permet d'élaborer l'architecture qui correspond + exactement à vos besoins. Dans l'exemple suivant, on utilise conjointement les fournisseurs d'authentification file et LDAP :
@@ -434,18 +434,18 @@ d'authentificationDans cet exemple, le fournisseur file va tenter d'authentifier l'utilisateur en premier. S'il n'y parvient pas, le fournisseur LDAP - sera sollicité. Ceci permet l'élargissement des possibilités - d'authentification si votre organisation implémente plusieurs types - de bases d'authentification. D'autres scénarios d'authentification + sera sollicité. Ceci permet l'élargissement des possibilités + d'authentification si votre organisation implémente plusieurs types + de bases d'authentification. D'autres scénarios d'authentification et d'autorisation peuvent associer un type d'authentification avec un autre type d'autorisation. Par exemple, une authentification - basée sur un fichier de mots de passe peut permettre l'attribution - d'autorisations basée sur un annuaire LDAP.
+ basée sur un fichier de mots de passe peut permettre l'attribution + d'autorisations basée sur un annuaire LDAP. -Tout comme plusieurs fournisseurs d'authentification peuvent être - implémentés, on peut aussi utiliser plusieurs méthodes - d'autorisation. Dans l'exemple suivant, on utilise à la fois une - autorisation à base de fichier de groupes et une autorisation à base +
Tout comme plusieurs fournisseurs d'authentification peuvent être + implémentés, on peut aussi utiliser plusieurs méthodes + d'autorisation. Dans l'exemple suivant, on utilise à la fois une + autorisation à base de fichier de groupes et une autorisation à base de groupes LDAP.
Pour un scénario d'autorisation un peu plus avancé, des +
Pour un scénario d'autorisation un peu plus avancé, des
directives de conteneur d'autorisation comme
La manière dont les autorisations sont accordées est désormais - beaucoup plus souple qu'une simple vérification auprès d'une seule - base de données. Il est maintenant possible de choisir l'ordre, la - logique et la manière selon lesquels une autorisation est - accordée.
+La manière dont les autorisations sont accordées est désormais + beaucoup plus souple qu'une simple vérification auprès d'une seule + base de données. Il est maintenant possible de choisir l'ordre, la + logique et la manière selon lesquels une autorisation est + accordée.
Le contrôle de la manière et de l'ordre selon lesquels le - processus d'autorisation était appliqué - constituait une sorte de mystère par - le passé. Dans Apache 2.2, un mécanisme d'authentification basé - sur les fournisseurs a été développé afin de séparer le - véritable processus d'authentification de l'autorisation et ses - différentes fonctionnalités. Un des avantages colatéraux - résidait dans le fait que les fournisseurs d'authentification - pouvaient être configurés et appelés selon un ordre particulier - indépendant de l'ordre de chargement du module auth proprement - dit. Ce mécanisme basé sur les fournisseurs a été étendu au +
Le contrôle de la manière et de l'ordre selon lesquels le
+ processus d'autorisation était appliqué
+ constituait une sorte de mystère par
+ le passé. Dans Apache 2.2, un mécanisme d'authentification basé
+ sur les fournisseurs a été développé afin de séparer le
+ véritable processus d'authentification de l'autorisation et ses
+ différentes fonctionnalités. Un des avantages colatéraux
+ résidait dans le fait que les fournisseurs d'authentification
+ pouvaient être configurés et appelés selon un ordre particulier
+ indépendant de l'ordre de chargement du module auth proprement
+ dit. Ce mécanisme basé sur les fournisseurs a été étendu au
processus d'autorisation. Ceci signifie que la directive
-
Par défaut, toutes les directives
La vérification du nom d'utilisateur et du mot de passe ne - constituent qu'un aspect des méthodes d'authentification. - Souvent, le contrôle d'accès à certaines personnes n'est pas - basé sur leur identité ; il peut dépendre, par exemple de leur + d'autorisation pour le contrôle d'accès +
La vérification du nom d'utilisateur et du mot de passe ne + constituent qu'un aspect des méthodes d'authentification. + Souvent, le contrôle d'accès à certaines personnes n'est pas + basé sur leur identité ; il peut dépendre, par exemple de leur provenance.
Les fournisseurs d'autorisation all
,
env
, host
et ip
vous
- permettent d'accorder ou refuser l'accès en
- fonction de critères tels que le nom d'hôte ou l'adresse
- IP de la machine qui effectue la requête.
L'utilisation de ces fournisseurs est spécifiée à l'aide de +
L'utilisation de ces fournisseurs est spécifiée à l'aide de
la directive
où adresse est une adresse IP (ou une adresse IP +
où adresse est une adresse IP (ou une adresse IP partielle) ou :
où nom_domaine est un nom de domaine entièrement - qualifé (ou un nom de domaine partiel) ; vous pouvez indiquer - plusieurs adresses ou noms de domaines, si vous le désirez.
+où nom_domaine est un nom de domaine entièrement + qualifé (ou un nom de domaine partiel) ; vous pouvez indiquer + plusieurs adresses ou noms de domaines, si vous le désirez.
Par exemple, si vous voulez rejeter les spams dont une machine vous inonde, vous pouvez utiliser ceci :
@@ -574,7 +574,7 @@ autorisationAinsi, les visiteurs en provenance de cette adresse ne - pourront pas voir le contenu concerné par cette directive. Si, + pourront pas voir le contenu concerné par cette directive. Si, par contre, vous connaissez le nom de la machine, vous pouvez utiliser ceci :
@@ -585,8 +585,8 @@ autorisation </RequireAll> -Et si vous voulez interdire l'accès à toutes les machines - d'un domaine, vous pouvez spécifier une partie seulement de +
Et si vous voulez interdire l'accès à toutes les machines + d'un domaine, vous pouvez spécifier une partie seulement de l'adresse ou du nom de domaine :
L'utilisation de la directive not
, n'accordera l'accès que si toutes les
- conditions négatives sont vérifiées. En d'autres termes, l'accès
- sera refusé si au moins une des conditions négatives n'est pas
- vérifiée.
not
, n'accordera l'accès que si toutes les
+ conditions négatives sont vérifiées. En d'autres termes, l'accès
+ sera refusé si au moins une des conditions négatives n'est pas
+ vérifiée.
L'adoption d'un mécanisme à base de fournisseurs pour
- l'authentification, a pour effet colatéral de rendre inutiles
+ L'adoption d'un mécanisme à base de fournisseurs pour
+ l'authentification, a pour effet colatéral de rendre inutiles
les directives Les directives fournies par le module
+
Dans certains cas, l'authentification constitue une charge
- inacceptable pour un fournisseur d'authentification ou votre réseau.
+ inacceptable pour un fournisseur d'authentification ou votre réseau.
Ceci est susceptible d'affecter les utilisateurs du module
Cette mise en cache apportera un gain en performance substantiel - à certains utilisateurs.
+ Ã certains utilisateurs.Vous pouvez aussi lire la documentation de
Les différents algorithmes de chiffrement supportés par Apache - pour authentifier les données sont expliqués dans Les différents algorithmes de chiffrement supportés par Apache + pour authentifier les données sont expliqués dans PasswordEncryptions.
-Enfin vous pouvez consulter la recette Contrôle - d'accès, qui décrit un certain nombre de situations en relation +
Enfin vous pouvez consulter la recette Contrôle + d'accès, qui décrit un certain nombre de situations en relation avec le sujet.
HTTP/2 est une évolution du protocole de la couche application le plus + connu au monde, HTTP. Les efforts se sont concentrés sur une amélioration + de l'efficacité de l'utilisation des ressources réseau sans modifier la + sémantique de HTTP. Ce guide explique la manière dont HTTP/2 est + implémenté dans httpd, donne des conseils pour une configuration de base + ainsi qu'une liste de recommandations. +
+ +Voir le guide HTTP/2
+.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
+ 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 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
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
Les directives fournies par le module
-
En général, les directives de restriction d'accès s'appliquent à
- toutes les méthodes d'accès (GET
, PUT
,
+
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
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.
+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.
La directive
La directive
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
+ formes différentes. Si Allow from all
est spécifié,
+ tout hôte se voit accordé l'accès, en tenant compte des directives
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, +
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
L'adresse IP d'un hôte auquel on a accordé l'accès
L'adresse IP d'un hôte auquel on a accordé l'accès
De un à trois des premiers octets d'une adresse IP, afin de - restreindre l'accès à un sous-réseau.
+De un à trois des premiers octets d'une adresse IP, afin de + restreindre l'accès à un sous-réseau.
-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.
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.
-Identique au cas précédent, mis à part que le masque est - constitué des nnn bits de poids fort.
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.
+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 +
On peut spécifier des adresses et sous-réseaux IPv6 de la manière suivante :
Le troisième format d'argument de la directive
-
Le troisième format d'argument de la directive
+ Allow
- from env=variable d'environnement
est spécifié, la
- requête est autorisée si la variable d'environnement variable
+ 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
+ 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
+ caractéristiques de la requête client et en utilisant les directives
fournies par le module User-Agent
+ 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.
Dans cet exemple, les navigateurs dont la chaîne user-agent +
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.
+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.
Cette directive permet de restreindre l'accès au serveur en - fonction du nom d'hôte, de l'adresse IP ou de variables +
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
La directive La directive
Notez que toutes les directives
Ordre peut être :
+Ordre peut être :
Allow,Deny
Deny,Allow
Mutual-failure
Allow,Deny
et
- est devenu de ce fait obsolète.Allow,Deny
et
+ est devenu de ce fait obsolète.Les mots-clés ne peuvent être séparés que par des virgules ; +
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 | +Résultat Allow,Deny | +Résultat Deny,Allow | |
---|---|---|---|---|---|
Correspond à Allow seulement | -Requête autorisée | -Requête autorisée | +Correspond à Allow seulement | +Requête autorisée | +Requête autorisée |
Correspond à Deny seulement | -Requête rejetée | -Requête rejeté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 | +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 | +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é.
+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é.
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é +
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
Par contre, si la valeur de la directive
- 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
+ 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
+ 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
+ l'autorisation d'accès car le statut par défaut est positionné sur
La présence d'une directive
La présence d'une directive
va interdire tout accès au répertoire /www
à cause
- du statut d'accès par défaut qui est défini à /www
à cause
+ du statut d'accès par défaut qui est défini Ã
La directive
La directive .htaccess
, sans tenir compte de la
- définition de la directive
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.
+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.
Politique d'accès dans le cas où on utilise à la fois All
, soit Any
. L'utilisation de cette
- directive n'a de sens que si l'accès à une zone particulière du
+ 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
+ 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
+ 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
+ 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 + 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 :
- Une autre utilisation fréquente de la directive
-
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.
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
-
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.
+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.
Ce module permet l'exécution de différents serveurs virtuels sous -différents identifiants Unix User et Group, -et avec différents Privilèges -Solaris. En particulier, il apporte au problème de -séparation des privilèges entre les différents serveurs virtuels la -solution que devait apporter le module MPM abandonné perchild. Il -apporte aussi d'autres améliorations en matière de sécurité.
- -À la différence de perchild,
Ce module permet l'exécution de différents serveurs virtuels sous +différents identifiants Unix User et Group, +et avec différents Privilèges +Solaris. En particulier, il apporte au problème de +séparation des privilèges entre les différents serveurs virtuels la +solution que devait apporter le module MPM abandonné perchild. Il +apporte aussi d'autres améliorations en matière de sécurité.
+ +à la différence de perchild,
Les principaux problèmes de sécurité que l'on rencontre avec +
Les principaux problèmes de sécurité que l'on rencontre avec mod_privileges sont :
-La directive
Avant de décrire les modes, il nous faut présenter les cas +
Avant de décrire les modes, il nous faut présenter les cas d'utilisation de la cible : "Benign" ou "Hostile". Dans une situation -"Benign", vous voulez séparer les utilisateurs pour leur confort, et les -protéger, ainsi que le serveur, contre les risques induits par les +"Benign", vous voulez séparer les utilisateurs pour leur confort, et les +protéger, ainsi que le serveur, contre les risques induits par les erreurs involontaires. Dans une situation "Hostile" - par exemple -l'hébergement d'un site commercial - il se peut que des utilisateurs -attaquent délibérément le serveur ou s'attaquent entre eux.
+l'hébergement d'un site commercial - il se peut que des utilisateurs +attaquent délibérément le serveur ou s'attaquent entre eux.Vous pouvez sélectionner différents +
Vous pouvez sélectionner différents
Cette directive permet de faire un compromis entre les -performances et la sécurité à l'encontre des codes malicieux supportant -les privilèges. En mode SECURE, chaque requête est traitée -dans un sous-processus sécurisé, ce qui induit une dégradation sensible -des performances. En mode FAST, le serveur n'est pas protégé -contre l'augmentation de privilège comme décrit plus haut.
-Cette directive est sensiblement différente selon qu'elle se trouve +performances et la sécurité à l'encontre des codes malicieux supportant +les privilèges. En mode SECURE, chaque requête est traitée +dans un sous-processus sécurisé, ce qui induit une dégradation sensible +des performances. En mode FAST, le serveur n'est pas protégé +contre l'augmentation de privilège comme décrit plus haut.
+Cette directive est sensiblement différente selon qu'elle se trouve
dans une section <Directory>
(ou Location/Files/If)
ou au niveau global ou dans un <VirtualHost>
.
Au niveau global, elle définit un comportement par défaut dont
-hériteront les serveurs virtuels. Dans un serveur virtuel, les modes
-FAST ou SECURE agissent sur l'ensemble de la requête HTTP, et toute
-définition de ces modes dans une section <Directory>
-sera ignorée. Le pseudo-mode SELECTIVE confie le choix
+
Au niveau global, elle définit un comportement par défaut dont
+hériteront les serveurs virtuels. Dans un serveur virtuel, les modes
+FAST ou SECURE agissent sur l'ensemble de la requête HTTP, et toute
+définition de ces modes dans une section <Directory>
+sera ignorée. Le pseudo-mode SELECTIVE confie le choix
du mode FAST ou SECURE aux directives contenues dans une
section<Directory>
.
Dans une section <Directory>
, elle ne s'applique
-que lorsque le mode SELECTIVE a été défini pour le serveur virtuel.
-Seuls FAST ou SECURE peuvent être définis dans ce contexte (SELECTIVE
+que lorsque le mode SELECTIVE a été défini pour le serveur virtuel.
+Seuls FAST ou SECURE peuvent être définis dans ce contexte (SELECTIVE
n'aurait pas de sens).
<Directory>
qui
- s'applique à la requête. Ceci peut donner à un attaquant
- l'opportunité d'introduire du code via une directive <Directory>
qui
+ s'applique à la requête. Ceci peut donner à un attaquant
+ l'opportunité d'introduire du code via une directive La directive
La directive
identifiant-utilisateur-unix peut être :
+ avec les modules MPM threadés. +identifiant-utilisateur-unix peut être :
#
suivi d'un numéro d'utilisateur.#
suivi d'un numéro d'utilisateur.Cette directive ne peut pas être utilisée pour exécuter Apache en
- tant que root ! Elle est tout de même susceptible de poser des
- problèmes de sécurité similaires à ceux décrits dans la
+ Cette directive ne peut pas être utilisée pour exécuter Apache en
+ tant que root ! Elle est tout de même susceptible de poser des
+ problèmes de sécurité similaires à ceux décrits dans la
documentation de suexec.
La directive
La directive
Unix-group peut être :
+ avec les modules MPM threadés. +Unix-group peut être :
#
suivi d'un numéro de groupe.#
suivi d'un numéro de groupe.Cette directive ne peut pas être utilisée pour exécuter Apache en
- tant que root ! Elle est tout de même susceptible de poser des
- problèmes de sécurité similaires à ceux décrits dans la
+ Cette directive ne peut pas être utilisée pour exécuter Apache en
+ tant que root ! Elle est tout de même susceptible de poser des
+ problèmes de sécurité similaires à ceux décrits dans la
documentation de suexec.
Détermine si les serveurs virtuels traitent les requêtes avec une - sécurité avancée en supprimant les Détermine si les serveurs virtuels traitent les requêtes avec une + sécurité avancée en supprimant les Privilèges rarement requis par un serveur web, mais disponibles - par défaut pour un utilisateur Unix standard, et donc susceptibles - d'être demandés par des modules et des applications. Il est - recommandé de conserver la définition par défaut (On), sauf si elle - empêche une application de fonctionner. Comme la définition + >Privilèges rarement requis par un serveur web, mais disponibles + par défaut pour un utilisateur Unix standard, et donc susceptibles + d'être demandés par des modules et des applications. Il est + recommandé de conserver la définition par défaut (On), sauf si elle + empêche une application de fonctionner. Comme la définition s'applique au processus, cette directive est incompatible - avec les modules MPM threadés.
+ avec les modules MPM threadés.Le fait que la directive
Détermine si le serveur virtuel est autorisé à exécuter fork et
- exec, et définit les Détermine si le serveur virtuel est autorisé à exécuter fork et
+ exec, et définit les privilèges requis pour exécuter des sous-processus. Si cette
- directive est définie à Off le serveur virtuel ne
- disposera d'aucun privilège et ne pourra exécuter ni des programmes
+ >privilèges requis pour exécuter des sous-processus. Si cette
+ directive est définie à Off le serveur virtuel ne
+ disposera d'aucun privilège et ne pourra exécuter ni des programmes
ou scripts CGI classiques via le module traditionnel
Si cette directive est définie à On ou
- Secure, le serveur virtuel pourra exécuter les scripts et
- programmes externes cités ci-dessus. Définir la directive
-
Si cette directive est définie à On ou
+ Secure, le serveur virtuel pourra exécuter les scripts et
+ programmes externes cités ci-dessus. Définir la directive
+
Cette directive qui s'applique à l'ensemble du serveur permet de - déterminer si Apache s'exécutera avec les Cette directive qui s'applique à l'ensemble du serveur permet de + déterminer si Apache s'exécutera avec les privilèges requis pour exécuter privilèges requis pour exécuter dtrace. - Notez que la définition DTracePrivileges On n'activera - pas à elle-seule DTrace, mais que DTracePrivileges Off - l'empêchera de fonctionner.
+ Notez que la définition DTracePrivileges On n'activera + pas à elle-seule DTrace, mais que DTracePrivileges Off + l'empêchera de fonctionner.La directive
nom-privilège peut être éventuellement préfixé par + - ou -, ce qui va respectivement accorder ou refuser le privilège. Si - nom-privilège est spécifié sans + ni -, tous les autres - privilèges préalablement assignés au serveur virtuel seront refusés. - Cette directive permet de construire aisément votre propre jeu de - privilèges en annulant tout réglage par défaut.
+nom-privilège peut être éventuellement préfixé par + + ou -, ce qui va respectivement accorder ou refuser le privilège. Si + nom-privilège est spécifié sans + ni -, tous les autres + privilèges préalablement assignés au serveur virtuel seront refusés. + Cette directive permet de construire aisément votre propre jeu de + privilèges en annulant tout réglage par défaut.
-L'utilisation de cette directive peut ouvrir d'immenses trous de - sécurité dans Apache, jusqu'au traitement de requêtes avec les - droits de root. Ne l'utilisez que si vous êtes absolument sûr de + sécurité dans Apache, jusqu'au traitement de requêtes avec les + droits de root. Ne l'utilisez que si vous êtes absolument sûr de comprendre ce que vous faites !
La directive
nom-privilège peut être éventuellement préfixé par + - ou -, ce qui va respectivement accorder ou refuser le privilège. Si - nom-privilège est spécifié sans + ni -, tous les autres - privilèges préalablement assignés au serveur virtuel seront refusés. - Cette directive permet de construire aisément votre propre jeu de - privilèges en annulant tout réglage par défaut.
+nom-privilège peut être éventuellement préfixé par + + ou -, ce qui va respectivement accorder ou refuser le privilège. Si + nom-privilège est spécifié sans + ni -, tous les autres + privilèges préalablement assignés au serveur virtuel seront refusés. + Cette directive permet de construire aisément votre propre jeu de + privilèges en annulant tout réglage par défaut.
-L'utilisation de cette directive peut ouvrir d'immenses trous de - sécurité dans les sous-processus Apache, jusqu'à leur exécution avec les - droits de root. Ne l'utilisez que si vous êtes absolument sûr de + sécurité dans les sous-processus Apache, jusqu'à leur exécution avec les + droits de root. Ne l'utilisez que si vous êtes absolument sûr de comprendre ce que vous faites !