]> granicus.if.org Git - apache/blob - docs/manual/misc/security_tips.xml.fr
xforms
[apache] / docs / manual / misc / security_tips.xml.fr
1 <?xml version="1.0" encoding="ISO-8859-1" ?>
2 <!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
4 <!-- English revision : 1330882 -->
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 <manualpage metafile="security_tips.xml.meta">
26   <parentdocument href="./">Documentations diverses</parentdocument>
27
28   <title>Conseils sur la s&eacute;curit&eacute;</title>
29
30   <summary>
31     <p>Ce document propose quelques conseils et astuces concernant les
32     probl&egrave;mes de s&eacute;curit&eacute; li&eacute;s
33     &agrave; l'installation d'un serveur web. Certaines suggestions seront &agrave; caract&egrave;re
34     g&eacute;n&eacute;ral, tandis que d'autres seront sp&eacute;cifiques &agrave; Apache.</p>
35   </summary>
36
37   <section id="uptodate"><title>Maintenez votre serveur &agrave; jour</title>
38
39     <p>Le serveur HTTP Apache a une bonne r&eacute;putation en mati&egrave;re de s&eacute;curit&eacute;
40     et poss&egrave;de une communaut&eacute; de d&eacute;veloppeurs tr&egrave;s sensibilis&eacute;s aux probl&egrave;mes
41     de s&eacute;curit&eacute;. Mais il est in&eacute;vitable de trouver certains probl&egrave;mes
42     -- petits ou grands -- une fois le logiciel mis &agrave; disposition. C'est pour
43     cette raison qu'il est crucial de se tenir inform&eacute; des mises &agrave; jour. Si
44     vous avez obtenu votre version du serveur HTTP directement depuis Apache,
45     nous vous conseillons grandement de vous abonner &agrave; la <a
46     href="http://httpd.apache.org/lists.html#http-announce">Liste de diffusion
47     des annonces du serveur HTTP</a> qui vous informera de
48     la parution des nouvelles versions et des mises &agrave; jour de s&eacute;curit&eacute;. La
49     plupart des distributeurs tiers d'Apache fournissent des services
50     similaires.</p>
51
52     <p>Gardez cependant &agrave; l'esprit que lorsqu'un serveur web est compromis, le
53     code du serveur HTTP n'est la plupart du temps pas en cause. Les probl&egrave;mes
54     proviennent plut&ocirc;t de code ajout&eacute;, de scripts CGI, ou du syst&egrave;me
55     d'exploitation sous-jacent. Vous devez donc vous tenir inform&eacute; des
56     probl&egrave;mes et mises &agrave; jour concernant tous les logiciels pr&eacute;sents sur
57     votre syst&egrave;me.</p>
58
59   </section>
60
61   <section id="dos">
62
63     <title>Attaques de type "D&eacute;ni de service"
64     (Denial of Service - DoS)</title>
65
66     <p>Tous les services r&eacute;seau peuvent faire l'objet d'attaques de type
67     "D&eacute;ni de service" qui tentent de les emp&ecirc;cher de r&eacute;pondre aux clients en
68     saturant leurs ressources. Il est impossible de se pr&eacute;munir totalement
69     contre ce type d'attaques, mais vous pouvez accomplir certaines actions
70     afin de minimiser les probl&egrave;mes qu'elles cr&eacute;ent.</p>
71
72     <p>Souvent, l'outil anti-DoS le plus efficace sera constitu&eacute; par le
73     pare-feu ou certaines configurations du syst&egrave;me d'exploitation. Par
74     exemple, la plupart des pare-feu peuvent &ecirc;tre configur&eacute;s de fa&ccedil;on &agrave;
75     limiter le nombre de connexions simultan&eacute;es depuis une adresse IP ou un
76     r&eacute;seau, ce qui permet de pr&eacute;venir toute une gamme d'attaques simples.
77     Bien s&ucirc;r, ceci n'est d'aucun secours contre les attaques de type
78     "D&eacute;ni de service" distribu&eacute;es (DDoS).</p>
79
80     <p>Certains r&eacute;glages de la configuration d'Apache peuvent aussi
81     minimiser les probl&egrave;mes :</p>
82
83     <ul>
84       <li>La directive <directive
85       module="mod_reqtimeout">RequestReadTimeout</directive> permet de
86       limiter le temps que met le client pour envoyer sa requ&ecirc;te.</li>
87
88       <li>La valeur de la directive
89       <directive module="core">TimeOut</directive> doit &ecirc;tre diminu&eacute;e sur les
90       sites sujets aux attaques DoS. Une valeur de quelques secondes devrait
91       convenir. Cependant, comme <directive module="core">TimeOut</directive>
92       est actuellement concern&eacute; par de nombreuses op&eacute;rations diff&eacute;rentes, lui
93       attribuer une valeur trop faible peut provoquer des probl&egrave;mes avec les
94       scripts CGI qui pr&eacute;sentent un long temps de r&eacute;ponse.</li>
95
96       <li>La valeur de la directive
97       <directive module="core">KeepAliveTimeout</directive> doit aussi &ecirc;tre
98       diminu&eacute;e sur les sites sujets aux attaques DoS. Certains sites
99       d&eacute;sactivent m&ecirc;me compl&egrave;tement le "maintien en vie" (keepalives)
100       &agrave; l'aide de la directive
101       <directive module="core">KeepAlive</directive>, ce qui bien s&ucirc;r
102       pr&eacute;sente des inconv&eacute;nients en mati&egrave;re de performances.</li>
103
104       <li>Les valeurs des diff&eacute;rentes directives fournies par d'autres modules
105       et en rapport avec des d&eacute;lais doivent aussi &ecirc;tre v&eacute;rifi&eacute;es.</li>
106
107       <li>Les directives
108       <directive module="core">LimitRequestBody</directive>,
109       <directive module="core">LimitRequestFields</directive>,
110       <directive module="core">LimitRequestFieldSize</directive>,
111       <directive module="core">LimitRequestLine</directive>, et
112       <directive module="core">LimitXMLRequestBody</directive> doivent &ecirc;tre
113       configur&eacute;es avec prudence afin de limiter la consommation de ressources
114       induite par les demandes des clients.
115       </li>
116
117       <li>Sur les syst&egrave;mes d'exploitation qui le supportent, assurez-vous que
118       la directive <directive module="core">AcceptFilter</directive> est
119       activ&eacute;e afin de d&eacute;l&eacute;guer une partie du traitement des requ&ecirc;tes au
120       syst&egrave;me d'exploitation. Elle est activ&eacute;e par d&eacute;faut dans le d&eacute;mon httpd
121       d'Apache, mais peut n&eacute;cessiter une reconfiguration de votre noyau.</li>
122
123       <li>Optimisez la directive <directive
124       module="mpm_common">MaxRequestWorkers</directive> de fa&ccedil;on &agrave; d&eacute;finir le nombre
125       maximum de connexions simultan&eacute;es au dessus duquel les ressources
126       s'&eacute;puisent. Voir aussi la <a
127       href="perf-tuning.html">documentation sur l'optimisation des
128       performances</a>.</li>
129
130       <li>L'utilisation d'un <a href="../mpm.html">module mpm</a> thread&eacute;
131       vous permet de traiter d'avantage de connexions simultan&eacute;es, ce qui
132       minimise l'effet des attaques DoS. Dans le futur, le module mpm
133       <module>event</module> utilisera un traitement asynchrone afin de ne pas
134       d&eacute;dier un thread &agrave; chaque connexion. De par la
135       nature de la biblioth&egrave;que OpenSSL, le module mpm <module>event</module> est actuellement incompatible
136       avec le module <module>mod_ssl</module> ainsi que d'autres filtres
137       en entr&eacute;e. Dans ces cas, son comportement se ram&egrave;ne &agrave; celui
138       du module mpm <module>worker</module>.</li>
139
140       <li>Il existe de nombreux modules tiers disponibles &agrave; <a
141       href="http://modules.apache.org/">http://modules.apache.org/</a> qui
142       peuvent retreindre les comportements de certains clients et ainsi
143       minimiser les probl&egrave;mes de DoS.</li>
144
145     </ul>
146
147   </section>
148
149
150   <section id="serverroot">
151
152     <title>Permissions sur les r&eacute;pertoires de la racine du serveur</title>
153
154     <p>Typiquement, Apache est d&eacute;marr&eacute; par l'utilisateur root, puis il devient
155     la propri&eacute;t&eacute; de l'utilisateur d&eacute;fini par la directive <directive
156     module="mod_unixd">User</directive> afin de r&eacute;pondre aux demandes. Comme
157     pour toutes les commandes ex&eacute;cut&eacute;es par root, vous devez vous assurer
158     qu'elle n'est pas modifiable par les utilisateurs autres que root. Les
159     fichiers eux-m&ecirc;mes, mais aussi les r&eacute;pertoires ainsi que leurs parents ne
160     doivent &ecirc;tre modifiables que par root. Par exemple, si vous avez choisi de
161     placer la racine du serveur dans <code>/usr/local/apache</code>, il est conseill&eacute; de
162     cr&eacute;er le r&eacute;pertoire en tant que root, avec des commandes du style :</p>
163
164     <example>
165       mkdir /usr/local/apache <br />
166       cd /usr/local/apache <br />
167       mkdir bin conf logs <br />
168       chown 0 . bin conf logs <br />
169       chgrp 0 . bin conf logs <br />
170       chmod 755 . bin conf logs
171     </example>
172
173     <p>Nous supposerons que <code>/</code>, <code>/usr</code> et
174     <code>/usr/local</code> ne sont modifiables que par
175     root. Quand vous installez l'ex&eacute;cutable <program>httpd</program>, vous
176     devez vous assurer qu'il poss&egrave;de des protections similaires :</p>
177
178     <example>
179       cp httpd /usr/local/apache/bin <br />
180       chown 0 /usr/local/apache/bin/httpd <br />
181       chgrp 0 /usr/local/apache/bin/httpd <br />
182       chmod 511 /usr/local/apache/bin/httpd
183     </example>
184
185     <p>Vous pouvez cr&eacute;er un sous-r&eacute;pertoire htdocs modifiable par d'autres
186     utilisateurs -- car root ne cr&eacute;e ni ex&eacute;cute aucun fichier dans ce
187     sous-r&eacute;pertoire.</p>
188
189     <p>Si vous permettez &agrave; des utilisateurs non root de modifier des fichiers
190     que root &eacute;crit ou ex&eacute;cute, vous exposez votre syst&egrave;me &agrave; une compromission
191     de l'utilisateur root. Par exemple, quelqu'un pourrait remplacer le binaire
192     <program>httpd</program> de fa&ccedil;on &agrave; ce que la prochaine fois que vous le
193     red&eacute;marrerez, il ex&eacute;cutera un code arbitraire. Si le r&eacute;pertoire des
194     journaux a les droits en &eacute;criture (pour un utilisateur non root), quelqu'un
195     pourrait remplacer un fichier journal par un lien symbolique vers un autre
196     fichier syst&egrave;me, et root pourrait alors &eacute;craser ce fichier avec des donn&eacute;es
197     arbitraires. Si les fichiers journaux eux-m&ecirc;mes ont des droits en
198     &eacute;criture (pour un utilisateur non root), quelqu'un pourrait
199     modifier les journaux eux-m&ecirc;mes avec des donn&eacute;es fausses.</p>
200
201   </section>
202
203   <section id="ssi">
204
205     <title>Inclusions c&ocirc;t&eacute; serveur</title>
206
207     <p>Les inclusions c&ocirc;t&eacute; serveur (Server Side Includes - SSI) exposent
208     l'administrateur du serveur &agrave; de nombreux risques potentiels en mati&egrave;re de
209     s&eacute;curit&eacute;.</p>
210
211     <p>Le premier risque est l'augmentation de la charge du serveur. Tous les
212     fichiers o&ugrave; SSI est activ&eacute; doivent &ecirc;tre analys&eacute;s par Apache, qu'ils
213     contiennent des directives SSI ou non. L'augmentation de la charge induite
214     est minime, mais peut devenir significative dans le contexte d'un
215     serveur partag&eacute;.</p>
216
217     <p>Les fichiers SSI pr&eacute;sentent les m&ecirc;mes risques que les scripts CGI en
218     g&eacute;n&eacute;ral. Les fichiers o&ugrave; SSI est activ&eacute; peuvent ex&eacute;cuter tout script CGI
219     ou autre programme &agrave; l'aide de la commande <code>"exec cmd"</code> avec les permissions
220     des utilisateur et groupe sous lesquels Apache s'ex&eacute;cute, comme d&eacute;fini
221     dans <code>httpd.conf</code>.</p>
222
223     <p>Des m&eacute;thodes existent pour am&eacute;liorer la s&eacute;curit&eacute; des fichiers SSI, tout
224     en tirant parti des b&eacute;n&eacute;fices qu'ils apportent.</p>
225
226     <p>Pour limiter les dommages qu'un fichier SSI agressif pourrait causer,
227     l'administrateur du serveur peut activer<a href="../suexec.html">suexec</a>
228     comme d&eacute;crit dans la section <a href="#cgi">Les CGI en g&eacute;n&eacute;ral</a>.</p>
229
230     <p>L'activation des SSI pour des fichiers poss&eacute;dant des extensions
231     <code>.html</code> ou
232     <code>.htm</code> peut s'av&eacute;rer dangereux. Ceci est particuli&egrave;rement vrai dans un
233     environnement de serveur partag&eacute; ou &eacute;tant le si&egrave;ge d'un traffic &eacute;lev&eacute;. Les
234     fichiers o&ugrave; SSI est activ&eacute; doivent poss&eacute;der une extension sp&eacute;cifique, telle
235     que la conventionnelle <code>.shtml</code>. Ceci permet de limiter la charge du serveur
236     &agrave; un niveau minimum et de simplifier la gestion des risques.</p>
237
238     <p>Une autre solution consiste &agrave; interdire l'ex&eacute;cution de scripts et
239     programmes &agrave; partir de pages SSI. Pour ce faire, remplacez
240     <code>Includes</code> par <code>IncludesNOEXEC</code> dans la directive
241     <directive module="core">Options</directive>. Notez que les utilisateurs
242     pourront encore utiliser <code>&lt;--#include virtual="..." --&gt;</code> pour ex&eacute;cuter
243     des scripts CGI si ces scripts sont situ&eacute;s dans des r&eacute;pertoires sp&eacute;cifi&eacute;s
244     par une directive
245     <directive module="mod_alias">ScriptAlias</directive>.</p>
246
247   </section>
248
249   <section id="cgi">
250
251     <title>Les CGI en g&eacute;n&eacute;ral</title>
252
253     <p>Tout d'abord, vous devez toujours garder &agrave; l'esprit que vous devez
254     faire confiance aux d&eacute;veloppeurs de scripts ou programmes CGI ainsi qu'&agrave;
255     vos comp&eacute;tences pour d&eacute;celer les trous de s&eacute;curit&eacute; potentiels dans les
256     CGI, que ceux-ci soient d&eacute;lib&eacute;r&eacute;s ou accidentels. Les scripts CGI peuvent
257     essentiellement ex&eacute;cuter des commandes arbitraires sur votre syst&egrave;me avec
258     les droits de l'utilisateur du serveur web, et peuvent par cons&eacute;quent &ecirc;tre
259     extr&egrave;mement dangereux s'ils ne sont pas v&eacute;rifi&eacute;s avec soin.</p>
260
261     <p>Tous les scripts CGI s'ex&eacute;cutent sous le m&ecirc;me utilisateur, il peuvent
262     donc entrer en conflit (accidentellement ou d&eacute;lib&eacute;r&eacute;ment) avec d'autres
263     scripts. Par exemple, l'utilisateur A hait l'utilisateur B, il &eacute;crit donc
264     un script qui efface la base de donn&eacute;es CGI de l'utilisateur B. Vous pouvez
265     utiliser le programme <a href="../suexec.html">suEXEC</a> pour faire en
266     sorte que les scripts s'ex&eacute;cutent sous des utilisateurs diff&eacute;rents. Ce
267     programme est inclus dans la distribution d'Apache depuis la version 1.2
268     et est appel&eacute; &agrave; partir de certaines portions de code du serveur Apache. Une
269     autre m&eacute;thode plus connue est l'utilisation de
270     <a href="http://cgiwrap.sourceforge.net/">CGIWrap</a>.</p>
271
272   </section>
273
274   <section id="nsaliasedcgi">
275
276     <title>CGI sans alias de script</title>
277
278     <p>Vous ne devez permettre aux utilisateurs d'ex&eacute;cuter des scripts CGI
279     depuis n'importe quel r&eacute;pertoire que dans l'&eacute;ventualit&eacute; o&ugrave; :</p>
280
281     <ul>
282       <li>Vous faites confiance &agrave; vos utilisateurs pour ne pas &eacute;crire de
283       scripts qui vont d&eacute;lib&eacute;r&eacute;ment ou accidentellement exposer votre
284       syst&egrave;me &agrave; une attaque.</li>
285       <li>Vous estimez que le niveau de s&eacute;curit&eacute; dans les autres parties de
286       votre site est si faible qu'un trou de s&eacute;curit&eacute; de plus ou de moins
287       n'est pas tr&egrave;s important.</li>
288       <li>Votre syst&egrave;me ne comporte aucun utilisateur, et personne ne visite
289       jamais votre site.</li>
290     </ul>
291
292   </section>
293
294   <section id="saliasedcgi">
295
296     <title>CGI avec alias de script</title>
297
298     <p>Le confinement des CGI dans des r&eacute;pertoires sp&eacute;cifiques permet &agrave;
299     l'administrateur de contr&ocirc;ler ce que l'on met dans ces r&eacute;pertoires. Ceci
300     est bien entendu mieux s&eacute;curis&eacute; que les CGI sans alias de script, mais
301     seulement &agrave; condition que les utilisateurs avec les droits en &eacute;criture sur
302     les r&eacute;pertoires soient dignes de confiance, et que l'administrateur ait la
303     volont&eacute; de tester chaque programme ou script CGI &agrave; la recherche d'&eacute;ventuels
304     trous de s&eacute;curit&eacute;.</p>
305
306     <p>La plupart des sites choisissent cette approche au d&eacute;triment des CGI
307     sans alias de script.</p>
308
309   </section>
310
311    <section id="dynamic">
312
313   <title>Autres sources de contenu dynamique</title>
314
315   <p>
316   Les options de scripting int&eacute;gr&eacute;es qui s'ex&eacute;cutent en tant que partie du
317   serveur lui-m&ecirc;me, comme <code>mod_php</code>, <code>mod_perl</code>,
318   <code>mod_tcl</code>, et <code>mod_python</code>,
319   s'ex&eacute;cutent sous le m&ecirc;me utilisateur que le serveur (voir la directive
320   <directive module="mod_unixd">User</directive>), et par cons&eacute;quent,
321   les scripts que ces moteurs ex&eacute;cutent peuvent acc&eacute;der aux m&ecirc;mes ressources
322   que le serveur. Certains moteurs de scripting peuvent proposer des
323   restrictions, mais pour plus de s&ucirc;ret&eacute;, il vaut mieux partir du principe
324   que ce n'est pas le cas.</p>
325
326   </section>
327
328   <section id="systemsettings">
329
330     <title>Protection de la configuration du syst&egrave;me</title>
331
332     <p>Pour contr&ocirc;ler &eacute;troitement votre serveur, vous pouvez interdire
333     l'utilisation des fichiers <code>.htaccess</code> qui permettent de
334     passer outre les fonctionnalit&eacute;s de s&eacute;curit&eacute; que vous avez configur&eacute;es.
335     Voici un moyen pour y parvenir :</p>
336
337     <p>Ajoutez dans le fichier de configuration du serveur</p>
338
339     <highlight language="config">
340 &lt;Directory /&gt;
341     AllowOverride None
342 &lt;/Directory&gt;
343     </highlight>
344
345     <p>Ceci interdit l'utilisation des fichiers <code>.htaccess</code> dans
346     tous les r&eacute;pertoires, sauf ceux pour lesquels c'est explicitement
347     autoris&eacute;.</p>
348
349   </section>
350
351   <section id="protectserverfiles">
352
353     <title>Protection par d&eacute;faut des fichiers du serveur</title>
354
355     <p>Le concept d'acc&egrave;s par d&eacute;faut est un aspect d'Apache qui est parfois mal
356     compris. C'est &agrave; dire que, &agrave; moins que vous ne changiez explicitement ce
357     comportement, si le serveur trouve son chemin vers un fichier en suivant
358     les r&egrave;gles normales de correspondance URL - fichier, il peut le retourner
359     aux clients.</p>
360
361     <p>Consid&eacute;rons l'exemple suivant :</p>
362
363     <example>
364       # cd /; ln -s / public_html <br />
365       puis acc&egrave;s &agrave; <code>http://localhost/~root/</code>
366     </example>
367
368     <p>Ceci permettrait aux clients de parcourir l'ensemble du syst&egrave;me de
369     fichiers. Pour l'&eacute;viter, ajoutez le bloc suivant &agrave; la configuration
370     de votre serveur :</p>
371
372     <highlight language="config">
373 &lt;Directory /&gt;
374     Order Deny,Allow
375     Deny from all
376 &lt;/Directory&gt;
377     </highlight>
378
379     <p>ceci va interdire l'acc&egrave;s par d&eacute;faut &agrave; tous les fichiers du syst&egrave;me de
380     fichiers. Vous devrez ensuite ajouter les blocs
381     <directive module="core">Directory</directive> appropri&eacute;s correspondant
382     aux r&eacute;pertoires auxquels vous voulez autorisez l'acc&egrave;s. Par exemple,</p>
383
384     <highlight language="config">
385 &lt;Directory /usr/users/*/public_html&gt;
386     Order Deny,Allow
387     Allow from all
388 &lt;/Directory&gt;
389 &lt;Directory /usr/local/httpd&gt;
390     Order Deny,Allow
391     Allow from all
392 &lt;/Directory&gt;
393     </highlight>
394
395     <p>Portez une attention particuli&egrave;re aux interactions entre les directives
396     <directive module="core">Location</directive> et
397     <directive module="core">Directory</directive> ; par exemple, si une
398     directive <code>&lt;Directory /&gt;</code> interdit un acc&egrave;s, une
399     directive <code>&lt;Location /&gt;</code> pourra passer outre.</p>
400
401     <p>De m&ecirc;me, soyez m&eacute;fiant en jouant avec la directive
402     <directive module="mod_userdir">UserDir</directive> ; la positionner &agrave;
403     <code>"./"</code> aurait le m&ecirc;me effet, pour root, que le premier exemple plus haut.
404     Nous vous conseillons
405     fortement d'inclure la ligne suivante dans le fichier de configuration de
406     votre serveur :</p>
407
408     <highlight language="config">UserDir disabled root</highlight>
409
410   </section>
411
412   <section id="watchyourlogs">
413
414     <title>Surveillez vos journaux</title>
415
416     <p>Pour vous tenir inform&eacute; de ce qui se passe r&eacute;ellement dans votre
417     serveur, vous devez consulter vos
418     <a href="../logs.html">fichiers journaux</a>. M&ecirc;me si les fichiers journaux
419     ne consignent que des &eacute;v&egrave;nements qui se sont d&eacute;j&agrave; produits, ils vous
420     informeront sur la nature des attaques qui sont lanc&eacute;es contre le serveur
421     et vous permettront de v&eacute;rifier si le niveau de s&eacute;curit&eacute; n&eacute;cessaire est
422     atteint.</p>
423
424     <p>Quelques exemples :</p>
425
426     <example>
427       grep -c "/jsp/source.jsp?/jsp/ /jsp/source.jsp??" access_log <br />
428       grep "client denied" error_log | tail -n 10
429     </example>
430
431     <p>Le premier exemple listera les attaques essayant d'exploiter la
432     <a href="http://online.securityfocus.com/bid/4876/info/">vuln&eacute;rabilit&eacute;
433     d'Apache Tomcat pouvant provoquer la divulgation d'informations par des
434     requ&ecirc;tes Source.JSP mal form&eacute;es</a>, le second donnera la liste des dix
435     derni&egrave;res interdictions client ; par exemple :</p>
436
437     <example>
438       [Thu Jul 11 17:18:39 2002] [error] [client foo.example.com] client denied
439       by server configuration: /usr/local/apache/htdocs/.htpasswd
440     </example>
441
442     <p>Comme vous le voyez, les fichiers journaux ne consignent que ce qui
443     s'est d&eacute;j&agrave; produit ; ainsi, si le client a pu acc&eacute;der au fichier
444     <code>.htpasswd</code>, vous devriez avoir quelque chose du style :</p>
445
446     <example>
447       foo.example.com - - [12/Jul/2002:01:59:13 +0200] "GET /.htpasswd HTTP/1.1"
448     </example>
449
450     <p>dans votre <a href="../logs.html#accesslog">journal des acc&egrave;s</a> ; ce
451     qui signifie que vous avez probablement mis en commentaire ce qui suit dans
452     le fichier de configuration de votre serveur :</p>
453
454     <highlight language="config">
455 &lt;Files ".ht*"&gt;
456     Order allow,deny
457     Deny from all
458 &lt;/Files&gt;
459     </highlight>
460
461   </section>
462   <section id="merging">
463
464     <title>Fusion des sections de configuration</title>
465
466     <p>La fusion des sections de configuration est complexe et d&eacute;pend
467     souvent des directives utilis&eacute;es. Vous devez syst&eacute;matiquement tester
468     vos modifications pour v&eacute;rifier la mani&egrave;re dont les directives sont
469     fusionn&eacute;es.</p>
470
471     <p>Concernant les modules qui n'impl&eacute;mentent aucune logique de
472     fusion, comme <directive>mod_access_compat</directive>, le
473     comportement des sections suivantes est tributaire de la pr&eacute;sence
474     dans ces derni&egrave;res de directives appartenant &agrave; ces modules. La
475     configuration est h&eacute;rit&eacute;e jusqu'&agrave; ce qu'une modification soit
476     effectu&eacute;e ; &agrave; ce moment, la configuration est <em>remplac&eacute;e</em> et
477     non fusionn&eacute;e.</p>
478   </section>
479
480 </manualpage>