]> granicus.if.org Git - apache/blob - docs/manual/mod/mod_privileges.xml.fr
XML update.
[apache] / docs / manual / mod / mod_privileges.xml.fr
1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
4 <!-- English Revision: 1739102 -->
5 <!-- French translation : Lucien GENTIS -->
6 <!-- Reviewed by : Vincent Deffontaines -->
7
8 <!--
9  Licensed to the Apache Software Foundation (ASF) under one or more
10  contributor license agreements.  See the NOTICE file distributed with
11  this work for additional information regarding copyright ownership.
12  The ASF licenses this file to You under the Apache License, Version 2.0
13  (the "License"); you may not use this file except in compliance with
14  the License.  You may obtain a copy of the License at
15
16      http://www.apache.org/licenses/LICENSE-2.0
17
18  Unless required by applicable law or agreed to in writing, software
19  distributed under the License is distributed on an "AS IS" BASIS,
20  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21  See the License for the specific language governing permissions and
22  limitations under the License.
23 -->
24
25 <modulesynopsis metafile="mod_privileges.xml.meta">
26
27 <name>mod_privileges</name>
28 <description>Support des privilèges de Solaris et de l'exécution des
29 serveurs virtuels sous différents identifiants
30 utilisateurs.</description>
31 <status>Experimental</status>
32 <sourcefile>mod_privileges.c</sourcefile>
33 <identifier>privileges_module</identifier>
34 <compatibility>Disponible depuis la version 2.3 d'Apache sur les
35 plates-formes Solaris 10 et OpenSolaris</compatibility>
36
37 <summary>
38 <p>Ce module permet l'exécution de différents serveurs virtuels sous
39 différents identifiants Unix <var>User</var> et <var>Group</var>,
40 et avec différents <a
41 href="http://sosc-dr.sun.com/bigadmin/features/articles/least_privilege.jsp">Privilèges
42 Solaris</a>. En particulier, il apporte au problème de
43 séparation des privilèges entre les différents serveurs virtuels la
44 solution que devait apporter le module MPM abandonné perchild. Il
45 apporte aussi d'autres améliorations en matière de sécurité.</p>
46
47 <p>À la différence de perchild, <module>mod_privileges</module> n'est
48 pas un module MPM. Il travaille <em>au sein</em> d'un modèle de
49 traitement pour définir les privilèges et les User/Group <em>pour chaque
50 requête</em> dans un même processus. Il n'est donc pas compatible avec
51 les MPM threadés, et refusera de s'exécuter en cas d'utilisation d'un de
52 ces derniers.</p>
53
54 <p><module>mod_privileges</module> traite des problèmes de sécurité
55 similaires à ceux de <a href="../suexec.html">suexec</a> ; mais à la
56 différence de ce dernier, il ne s'applique pas seulement aux programmes
57 CGI, mais à l'ensemble du cycle de traitement d'une requête, y compris
58 les applications in-process et les sous-processus. Il convient
59 particulièrement à l'exécution des applications PHP sous
60 <strong>mod_php</strong>, qui est lui-même incompatible avec les modules
61 MPM threadés. Il est également bien adapté aux autres applications de type
62 script in-process comme <strong>mod_perl</strong>,
63 <strong>mod_python</strong>, et <strong>mod_ruby</strong>, ainsi qu'aux
64 applications en langage C telles que les modules Apache pour lesquels la
65 séparation des privilèges constitue un problème.</p>
66
67 </summary>
68
69 <section id="security"><title>Considérations à propos de sécurité</title>
70
71 <p><module>mod_privileges</module> introduit de nouveaux problèmes de
72 sécurité dans les situations où du <strong>code non sûr</strong> peut
73 s'exécuter <strong>à l'intérieur du processus du serveur web</strong>.
74 Ceci s'applique aux modules non sûrs, et aux scripts s'exécutant sous
75 des modules comme mod_php ou mod_perl. Les scripts s'exécutant en
76 externe (comme par exemple les scripts CGI ou ceux s'exécutant sur un
77 serveur d'applications derrière mod_proxy ou mod_jk) ne sont pas
78 concernés.</p>
79
80 <p>Les principaux problèmes de sécurité que l'on rencontre avec
81 mod_privileges sont :</p>
82
83
84 <ul><li>L'exécution sous un utilisateur système pose les mêmes problèmes
85 de sécurité que mod_suexec, et pratiquement les mêmes que cgiwrap et
86 suphp.</li>
87 <li>Une extension utilisateur (module ou script) malveillante, écrite en connaissant les mécanismes
88 utilisés par <strong>mod_privileges</strong>,
89 pourrait élever ses privilèges à tout niveau
90 accessible au processus httpd dans tout serveur virtuel. Ceci introduit
91 de nouveaux risques si (et seulement si) mod_privileges est compilé avec
92 l'option <var>BIG_SECURITY_HOLE</var>.</li>
93 <li>Une extension utilisateur (module ou script) malveillante, écrite en connaissant les mécanismes
94 utilisés par <strong>mod_privileges</strong>,
95 pourrait élever ses privilèges pour s'attribuer
96 l'identifiant utilisateur d'un autre utilisateur (et/ou groupe)
97 système.</li>
98 </ul>
99
100 <p>La directive <directive>PrivilegesMode</directive> vous permet de
101 sélectionner soit le mode <var>FAST</var>, soit le mode
102 <var>SECURE</var>. Vous pouvez panacher les modes en utilisant par
103 exemple le mode <var>FAST</var> pour les utilisateurs de confiance et
104 les chemins contenant du code entièrement audité, tout en imposant le
105 mode <var>SECURE</var> où un utilisateur non sûr a la possibilité
106 d'introduire du code.</p>
107 <p>Avant de décrire les modes, il nous faut présenter les cas
108 d'utilisation de la cible : "Benign" ou "Hostile". Dans une situation
109 "Benign", vous voulez séparer les utilisateurs pour leur confort, et les
110 protéger, ainsi que le serveur, contre les risques induits par les
111 erreurs involontaires. Dans une situation "Hostile" - par exemple
112 l'hébergement d'un site commercial - il se peut que des utilisateurs
113 attaquent délibérément le serveur ou s'attaquent entre eux.</p>
114 <dl>
115 <dt>Mode FAST</dt>
116 <dd>En mode <var>FAST</var>, les requêtes sont traitées "in-process"
117 avec les uid/gid et privilèges sélectionnés, si bien que la
118 surcharge est négligeable. Ceci convient aux situations "Benign", mais
119 n'est pas sécurisé contre un attaquant augmentant ses privilèges avec un
120 module ou script "in-process".</dd>
121 <dt>Mode SECURE</dt>
122 <dd>Une requête en mode <var>SECURE</var> génère un sous-processus qui
123 supprime les privilèges. Ce comportement est très similaire à
124 l'exécution d'un programme CGI avec suexec, mais il reste valable tout
125 au long du cycle de traitement de la requête, avec en plus l'avantage
126 d'un contrôle précis des privilèges.</dd>
127 </dl>
128 <p>Vous pouvez sélectionner différents
129 <directive>PrivilegesMode</directive>s pour chaque serveur virtuel, et
130 même dans un contexte de répertoire à l'intérieur d'un serveur virtuel.
131 Le mode <var>FAST</var> convient lorsque les utilisateurs sont sûrs
132 et/ou n'ont pas le privilège de charger du code "in-process". Le mode
133 <var>SECURE</var> convient dans les cas où du code non sûr peut
134 s'exécuter "in-process".  Cependant, même en mode <var>SECURE</var>, il
135 n'y a pas de protection contre un utilisateur malveillant qui a la
136 possibilité d'introduire du code supportant les privilèges <em>avant le
137 début du cycle de traitement de la requête.</em></p>
138
139 </section>
140 <directivesynopsis>
141 <name>PrivilegesMode</name>
142 <description>Fait un compromis entre d'une part l'efficacité et la
143 vitesse de traitement et d'autre part la sécurité à l'encontre des codes
144 malicieux supportant les privilèges.</description>
145 <syntax>PrivilegesMode FAST|SECURE|SELECTIVE</syntax>
146 <default>PrivilegesMode FAST</default>
147 <contextlist>
148         <context>server config</context>
149         <context>virtual host</context>
150         <context>directory</context>
151 </contextlist>
152 <compatibility>Disponible sous Solaris 10 et OpenSolaris avec des
153 modules MPMs non threadés (comme <module>prefork</module> ou un module
154 personnalisé).</compatibility>
155 <usage><p>Cette directive permet de faire un compromis entre les
156 performances et la sécurité à l'encontre des codes malicieux supportant
157 les privilèges. En mode <var>SECURE</var>, chaque requête est traitée
158 dans un sous-processus sécurisé, ce qui induit une dégradation sensible
159 des performances. En mode <var>FAST</var>, le serveur n'est pas protégé
160 contre l'augmentation de privilège comme décrit plus haut.</p>
161 <p>Cette directive est sensiblement différente selon qu'elle se trouve
162 dans une section <code>&lt;Directory&gt;</code> (ou Location/Files/If)
163 ou au niveau global ou dans un <code>&lt;VirtualHost&gt;</code>.</p>
164 <p>Au niveau global, elle définit un comportement par défaut dont
165 hériteront les serveurs virtuels. Dans un serveur virtuel, les modes
166 FAST ou SECURE agissent sur l'ensemble de la requête HTTP, et toute
167 définition de ces modes dans une section <code>&lt;Directory&gt;</code>
168 sera <strong>ignorée</strong>. Le pseudo-mode SELECTIVE confie le choix
169 du mode FAST ou SECURE aux directives contenues dans une
170 section<code>&lt;Directory&gt;</code>.</p>
171 <p>Dans une section <code>&lt;Directory&gt;</code>, elle ne s'applique
172 que lorsque le mode SELECTIVE a été défini pour le serveur virtuel.
173 Seuls FAST ou SECURE peuvent être définis dans ce contexte (SELECTIVE
174 n'aurait pas de sens).</p>
175 <note type="warning"><title>Avertissement</title>
176         Lorsque le mode SELECTIVE a été défini pour un serveur virtuel,
177         l'activation des privilèges doit être reportée <em>après</em>
178         la détermination, par la phase de comparaison du traitement de
179         la requête, du contexte <code>&lt;Directory&gt;</code> qui
180         s'applique à la requête. Ceci peut donner à un attaquant
181         l'opportunité d'introduire du code via une directive <directive
182         module="mod_rewrite">RewriteMap</directive> s'exécutant au
183         niveau global ou d'un serveur virtuel <em>avant</em> que les
184         privilèges n'aient été supprimés et l'uid/gid défini.
185 </note>
186 </usage>
187 </directivesynopsis>
188
189 <directivesynopsis>
190 <name>VHostUser</name>
191 <description>Définit l'identifiant utilisateur sous lequel s'exécute un
192 serveur virtuel.</description>
193 <syntax>VHostUser <var>identifiant-utilisateur-unix</var></syntax>
194 <default>Hérite de l'identifiant utilisateur spécifié par la directive
195 <directive module="mod_unixd">User</directive></default>
196 <contextlist><context>virtual host</context></contextlist>
197 <compatibility>Disponible sous Solaris 10 et OpenSolaris avec les
198 modules MPM non-threadés (<module>prefork</module> ou MPM
199 personnalisé).</compatibility>
200
201 <usage>
202     <p>La directive <directive>VHostUser</directive> permet de définir
203     l'identifiant utilisateur unix sous lequel le serveur va traiter les
204     requêtes par l'intermédiaire d'un serveur virtuel. L'identifiant
205     utilisateur est défini avant le traitement de la requête, puis
206     restauré à sa valeur de départ via les <a
207     href="http://sosc-dr.sun.com/bigadmin/features/articles/least_privilege.jsp">Privilèges
208     Solaris</a>. Comme la définition
209     s'applique au <em>processus</em>, cette directive est incompatible
210     avec les modules MPM threadés.</p>
211     <p><var>identifiant-utilisateur-unix</var> peut être :</p>
212     <dl>
213       <dt>Un nom d'utilisateur</dt>
214       <dd>Fait référence à l'utilisateur donné par son nom.</dd>
215
216       <dt><code>#</code> suivi d'un numéro d'utilisateur.</dt>
217       <dd>Fait référence à l'utilisateur donné par son numéro.</dd>
218     </dl>
219
220     <note type="warning"><title>Sécurité</title>
221     <p>Cette directive ne peut pas être utilisée pour exécuter Apache en
222     tant que root ! Elle est tout de même susceptible de poser des
223     problèmes de sécurité similaires à ceux décrits dans la
224     documentation de <a href="../suexec.html">suexec</a>.</p></note>
225 </usage>
226 <seealso><directive module="mod_unixd">User</directive></seealso>
227 <seealso><directive module="mod_suexec">SuexecUserGroup</directive></seealso>
228 </directivesynopsis>
229
230 <directivesynopsis>
231 <name>VHostGroup</name>
232 <description>Définit l'identifiant du groupe sous lequel s'exécute un
233 serveur virtuel.</description>
234 <syntax>VHostGroup <var>identifiant-groupe-unix</var></syntax>
235 <default>Hérite de l'identifiant du groupe spécifié par la directive
236 <directive module="mod_unixd">Group</directive></default>
237 <contextlist><context>virtual host</context></contextlist>
238 <compatibility>Disponible sous Solaris 10 et OpenSolaris avec les
239 modules MPM non-threadés (<module>prefork</module> ou MPM
240 personnalisé).</compatibility>
241
242 <usage>
243     <p>La directive <directive>VHostGroup</directive> permet de définir
244     l'identifiant du groupe unix sous lequel le serveur va traiter les
245     requêtes par l'intermédiaire d'un serveur virtuel. L'identifiant
246     du groupe est défini avant le traitement de la requête, puis
247     restauré à sa valeur de départ via les <a
248     href="http://sosc-dr.sun.com/bigadmin/features/articles/least_privilege.jsp">Privilèges
249     Solaris</a>. Comme la définition
250     s'applique au <em>processus</em>, cette directive est incompatible
251     avec les modules MPM threadés.</p>
252     <p><var>Unix-group</var> peut être :</p>
253     <dl>
254       <dt>Un nom de groupe</dt>
255       <dd>Fait référence au groupe donné par son nom.</dd>
256
257       <dt><code>#</code> suivi d'un numéro de groupe.</dt>
258       <dd>Fait référence au groupe donné par son numéro.</dd>
259     </dl>
260
261     <note type="warning"><title>Sécurité</title>
262     <p>Cette directive ne peut pas être utilisée pour exécuter Apache en
263     tant que root ! Elle est tout de même susceptible de poser des
264     problèmes de sécurité similaires à ceux décrits dans la
265     documentation de <a href="../suexec.html">suexec</a>.</p></note>
266 </usage>
267 <seealso><directive module="mod_unixd">Group</directive></seealso>
268 <seealso><directive module="mod_suexec">SuexecUserGroup</directive></seealso>
269 </directivesynopsis>
270
271 <directivesynopsis>
272 <name>VHostSecure</name>
273 <description>Détermine si le serveur s'exécute avec une sécurité avancée
274 pour les serveurs virtuels.</description>
275 <syntax>VHostSecure On|Off</syntax>
276 <default>VHostSecure On</default>
277 <contextlist><context>virtual host</context></contextlist>
278 <compatibility>Disponible sous Solaris 10 et OpenSolaris avec les
279 modules MPM non-threadés (<module>prefork</module> ou MPM
280 personnalisé).</compatibility>
281
282 <usage>
283     <p>Détermine si les serveurs virtuels traitent les requêtes avec une
284     sécurité avancée en supprimant les <a
285     href="http://sosc-dr.sun.com/bigadmin/features/articles/least_privilege.jsp"
286     >Privilèges</a> rarement requis par un serveur web, mais disponibles
287     par défaut pour un utilisateur Unix standard, et donc susceptibles
288     d'être demandés par des modules et des applications. Il est
289     recommandé de conserver la définition par défaut (On), sauf si elle
290     empêche une application de fonctionner. Comme la définition
291     s'applique au <em>processus</em>, cette directive est incompatible
292     avec les modules MPM threadés.</p>
293     <note><title>Note</title>
294     <p>Le fait que la directive <directive>VHostSecure</directive>
295     empêche une application de fonctionner peut constituer un signal
296     d'avertissement indiquant que la sécurité de l'application doit être
297     revue.</p></note>
298 </usage>
299 </directivesynopsis>
300
301 <directivesynopsis>
302 <name>VHostCGIMode</name>
303 <description>Détermine si le serveur virtuel peut exécuter des
304 sous-processus, et définit les privilèges disponibles pour ces
305 dernier.</description>
306 <syntax>VHostCGIMode On|Off|Secure</syntax>
307 <default>VHostCGIMode On</default>
308 <contextlist><context>virtual host</context></contextlist>
309 <compatibility>Disponible sous Solaris 10 et OpenSolaris avec les
310 modules MPM non-threadés (<module>prefork</module> ou MPM
311 personnalisé).</compatibility>
312
313 <usage>
314     <p>Détermine si le serveur virtuel est autorisé à exécuter fork et
315     exec, et définit les <a
316     href="http://sosc-dr.sun.com/bigadmin/features/articles/least_privilege.jsp"
317     >privilèges</a> requis pour exécuter des sous-processus. Si cette
318     directive est définie à <var>Off</var> le serveur virtuel ne
319     disposera d'aucun privilège et ne pourra exécuter ni des programmes
320     ou scripts CGI classiques via le module traditionnel
321     <module>mod_cgi</module>, ni des programmes externes similaires tels
322     que ceux créés via le module <module>mod_ext_filter</module> ou les
323     programmes de réécriture externes utilisés par la directive
324     <directive module="mod_rewrite">RewriteMap</directive>. Notez que
325     ceci n'empêche pas l'exécution de programmes CGI via d'autres
326     processus et sous d'autres modèles de sécurité comme <a
327     href="https://httpd.apache.org/mod_fcgid/">mod_fcgid</a>, ce qui est la
328     solution recommandée sous Solaris.</p>
329     <p>Si cette directive est définie à <var>On</var> ou
330     <var>Secure</var>, le serveur virtuel pourra exécuter les scripts et
331     programmes externes cités ci-dessus. Définir la directive
332     <directive>VHostCGIMode</directive> à <var>Secure</var> a pour effet
333     supplémentaire de n'accorder aucun privilège aux sous-processus,
334     comme décrit dans la directive
335     <directive>VHostSecure</directive>.</p>
336 </usage>
337 </directivesynopsis>
338
339 <directivesynopsis>
340 <name>DTracePrivileges</name>
341 <description>Détermine si les privilèges requis par dtrace sont
342 activés.</description>
343 <syntax>DTracePrivileges On|Off</syntax>
344 <default>DTracePrivileges Off</default>
345 <contextlist><context>server config</context></contextlist>
346 <compatibility>>Disponible sous Solaris 10 et OpenSolaris avec les
347 modules MPM non-threadés (<module>prefork</module> ou MPM
348 personnalisé).</compatibility>
349
350 <usage>
351     <p>Cette directive qui s'applique à l'ensemble du serveur permet de
352     déterminer si Apache s'exécutera avec les <a
353     href="http://sosc-dr.sun.com/bigadmin/features/articles/least_privilege.jsp"
354     >privilèges</a> requis pour exécuter <a
355     href="http://sosc-dr.sun.com/bigadmin/content/dtrace/">dtrace</a>.
356     Notez que la définition <var>DTracePrivileges On</var> n'activera
357     pas à elle-seule DTrace, mais que <var>DTracePrivileges Off</var>
358     l'empêchera de fonctionner.</p>
359 </usage>
360 </directivesynopsis>
361
362 <directivesynopsis>
363 <name>VHostPrivs</name>
364 <description>Assigne des privilèges à un serveur virtuel.</description>
365 <syntax>VHostPrivs [+-]?<var>nom-privilège</var> [[+-]?nom-privilège] ...</syntax>
366 <default>Aucun</default>
367 <contextlist><context>virtual host</context></contextlist>
368 <compatibility>Disponible sous Solaris 10 et OpenSolaris avec les
369 modules MPM non-threadés (<module>prefork</module> ou MPM
370 personnalisé) et lorsque <module>mod_privileges</module> est construit
371 avec l'option de compilation
372 <var>BIG_SECURITY_HOLE</var>.</compatibility>
373
374 <usage>
375     <p>La directive <directive>VHostPrivs</directive> permet d'assigner
376     des <a
377     href="http://sosc-dr.sun.com/bigadmin/features/articles/least_privilege.jsp"
378     >privilèges</a> au choix à un serveur virtuel. Chaque
379     <var>nom-privilège</var> correspond à un privilège Solaris tel que
380     <var>file_setid</var> ou <var>sys_nfs</var>.</p>
381
382     <p><var>nom-privilège</var> peut être éventuellement préfixé par +
383     ou -, ce qui va respectivement accorder ou refuser le privilège. Si
384     <var>nom-privilège</var> est spécifié sans + ni -, tous les autres
385     privilèges préalablement assignés au serveur virtuel seront refusés.
386     Cette directive permet de construire aisément votre propre jeu de
387     privilèges en annulant tout réglage par défaut.</p>
388
389     <note type="warning"><title>Sécurité</title>
390     <p>L'utilisation de cette directive peut ouvrir d'immenses trous de
391     sécurité dans Apache, jusqu'au traitement de requêtes avec les
392     droits de root. Ne l'utilisez que si vous êtes absolument sûr de
393     comprendre ce que vous faites !</p></note>
394 </usage>
395 </directivesynopsis>
396
397 <directivesynopsis>
398 <name>VHostCGIPrivs</name>
399 <description>Assigne des privilèges au choix aux sous-processus créés
400 par un serveur virtuel.</description>
401 <syntax>VHostPrivs [+-]?<var>nom-privilège</var> [[+-]?nom-privilège] ...</syntax>
402 <default>Aucun</default>
403 <contextlist><context>virtual host</context></contextlist>
404 <compatibility>Disponible sous Solaris 10 et OpenSolaris avec les
405 modules MPM non-threadés (<module>prefork</module> ou MPM
406 personnalisé) et lorsque <module>mod_privileges</module> est construit
407 avec l'option de compilation
408 <var>BIG_SECURITY_HOLE</var>.</compatibility>
409
410 <usage>
411     <p>La directive <directive>VHostCGIPrivs</directive> permet
412     d'assigner des <a
413     href="http://sosc-dr.sun.com/bigadmin/features/articles/least_privilege.jsp"
414     >privilèges</a> au choix aux sous-processus créés par un serveur
415     virtuel, comme décrit dans la directive
416     <directive>VHostCGIMode</directive>. Chaque
417     <var>nom-privilège</var> correspond à un privilège Solaris tel que
418     <var>file_setid</var> ou <var>sys_nfs</var>.</p>
419
420     <p><var>nom-privilège</var> peut être éventuellement préfixé par +
421     ou -, ce qui va respectivement accorder ou refuser le privilège. Si
422     <var>nom-privilège</var> est spécifié sans + ni -, tous les autres
423     privilèges préalablement assignés au serveur virtuel seront refusés.
424     Cette directive permet de construire aisément votre propre jeu de
425     privilèges en annulant tout réglage par défaut.</p>
426
427     <note type="warning"><title>Sécurité</title>
428     <p>L'utilisation de cette directive peut ouvrir d'immenses trous de
429     sécurité dans les sous-processus Apache, jusqu'à leur exécution avec les
430     droits de root. Ne l'utilisez que si vous êtes absolument sûr de
431     comprendre ce que vous faites !</p></note>
432 </usage>
433 </directivesynopsis>
434
435
436
437 </modulesynopsis>