2 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
4 <!-- English Revision: 1693828 -->
5 <!-- French translation : Lucien GENTIS -->
6 <!-- Reviewed by : Vincent Deffontaines -->
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
16 http://www.apache.org/licenses/LICENSE-2.0
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.
25 <modulesynopsis metafile="mod_log_forensic.xml.meta">
27 <name>mod_log_forensic</name>
28 <description>Journalisation légale des requêtes envoyées au
30 <status>Extension</status>
31 <sourcefile>mod_log_forensic.c</sourcefile>
32 <identifier>log_forensic_module</identifier>
35 <p>Ce module permet la journalisation légale des requêtes client.</p>
37 <p>La création du fichier journal correspondant s'effectue via la
38 directive <directive>ForensicLog</directive> comme suit :</p>
40 <highlight language="config">
41 ForensicLog logs/forensic_log
44 <p>La journalisation s'effectuant avant et après le traitement de la
45 requête, le journal légal contient deux lignes pour chaque requête.
46 Le processus de journalisation légale est très strict, à savoir
50 <li>Le format est figé. Vous ne pouvez pas modifier le format du
51 journal à l'exécution.</li>
52 <li>S'il ne peut pas enregistrer ses données, le processus enfant se
53 termine aussitôt, et peut éventuellement enregistrer un vidage
54 mémoire (selon la définition de la directive <directive
55 module="mpm_common">CoreDumpDirectory</directive>).</li>
58 <p>Pour interpréter les données du journal
59 légal afin d'identifier les requêtes dont le traitement n'a
60 pas été mené à bien, vous pouvez vous
61 aider du script <code>check_forensic</code> qui se trouve dans le
62 répertoire support de la distribution.</p>
65 check-forensic forensic_log
68 <note>Note de traduction : le terme "légal" utilisé dans le présent document ne suggère aucunement que
69 ce module apporte une valeur juridique aux journaux. Il est à comprendre dans le contexte
70 similaire à ce que l'on trouve en analyse medico-légale. En d'autres termes, la finalité de ce module
71 est de simplifier les opérations d'investigation autour du traitement des requêtes par le serveur.</note>
73 <seealso><a href="../logs.html">Les fichiers journaux
74 d'Apache</a></seealso>
75 <seealso><module>mod_log_config</module></seealso>
77 <section id="formats"><title>Format du journal Forensic</title>
78 <p>Chaque requête fait l'objet d'une double journalisation. La
79 requête est journalisée une première fois avant son traitement
80 (c'est à dire après la réception des en-têtes). La deuxième entrée
81 du journal est écrite <em>après</em> le traitement de la requête, en
82 fait au moment de la journalisation habituelle.</p>
84 <p>Un identifiant unique est attribué à chaque requête afin de
85 pouvoir l'identifier. Cette identifiant légal peut faire l'objet
86 d'un enregistrement dans le journal standard en utilisant l'élément
87 de chaîne de format <code>%{forensic-id}n</code>. Si vous utilisez
88 <module>mod_unique_id</module>, c'est l'identifiant qu'il génère qui
89 sera utilisé.</p>
91 <p>La première partie de la journalisation de la requête enregistre
92 l'identifiant légal, la ligne de la requête et tous les en-têtes
93 reçus séparés par des caractères pipe (<code>|</code>). Voici à
94 titre d'exemple à quoi pourrait ressembler une telle entrée (tout
95 étant rassemblé sur une seule ligne) :</p>
98 +yQtJf8CoAB4AAFNXBIEAAAAA|GET /manual/de/images/down.gif
99 HTTP/1.1|Host:localhost%3a8080|User-Agent:Mozilla/5.0 (X11;
100 U; Linux i686; en-US; rv%3a1.6) Gecko/20040216
101 Firefox/0.8|Accept:image/png, <var>etc...</var>
104 <p>Le caractère plus ('+') de début indique qu'il s'agit de la
105 première entrée de journal pour cette requête. La seconde entrée ne
106 contiendra qu'un caractère moins ('-') suivi de l'identifiant :</p>
109 -yQtJf8CoAB4AAFNXBIEAAAAA
112 <p>Le script <code>check_forensic</code> prend comme argument le nom
113 du fichier journal. Il recherche ces paires d'identifiants
114 <code>+</code>/<code>-</code> et affiche un message d'erreur si la
115 journalisation d'une requête n'est pas complète.</p>
118 <section id="security"><title>Considérations à propos de
119 sécurité</title>
120 <p>Voir le document <a
121 href="../misc/security_tips.html#serverroot">conseils en matière de
122 sécurité</a> pour des détails sur les raisons pour lesquelles votre
123 sécurité pourrait être compromise si le répertoire dans lequel les
124 fichiers journaux sont stockés sont inscriptibles par tout autre
125 utilisateur que celui qui démarre le serveur.</p>
126 <p>Les fichiers journaux peuvent contenir des données sensibles
127 comme le contenu des en-têtes <code>Authorization:</code> (qui
128 peuvent contenir des mots de passe) ; ils ne doivent donc être
129 lisibles que par l'utilisateur qui démarre le serveur.</p>
133 <name>ForensicLog</name>
134 <description>Définit le nom de fichier du journal légal</description>
135 <syntax>ForensicLog <var>nom-fichier</var>|<var>pipe</var></syntax>
136 <contextlist><context>server config</context><context>virtual host</context>
140 <p>La directive <directive>ForensicLog</directive> permet de
141 contrôler la journalisation des requêtes à des fins d'analyse
142 légale. Chaque entrée du journal se voit assigner un identifiant
143 unique qui peut être associé à la requête en utilisant la directive
144 <directive module="mod_log_config">CustomLog</directive> habituelle.
145 <module>mod_log_forensic</module> crée un élément nommé
146 <code>forensic-id</code>, qui peut être ajouté au journal standard
147 en utilisant l'élément de format <code>%{forensic-id}n</code>.</p>
149 <p>L'argument, qui permet de spécifier l'emplacement vers lequel le
150 journal légal sera écrit, peut contenir les deux types de valeurs
154 <dt><var>nom-fichier</var></dt>
155 <dd>Un nom de fichier relatif au répertoire défini par la
156 directive <directive module="core">ServerRoot</directive>.</dd>
158 <dt><var>pipe</var></dt>
159 <dd>Le caractère pipe "<code>|</code>", suivi du chemin vers un
160 programme qui recevra les informations de la journalisation sur
161 son entrée standard. Le nom du programme peut être relatif au
162 répertoire défini par la directive <directive
163 module="core">ServerRoot</directive>.
165 <note type="warning"><title>Sécurité :</title>
166 <p>Si les journaux sont redirigés vers un programme, ce dernier
167 s'exécutera sous l'utilisateur qui a démarré
168 <program>httpd</program>. Ce sera l'utilisateur root si le serveur
169 a été démarré par root ; vérifiez que le programme est
170 sécurisé ou passe sous le contrôle d'un utilisateur possédant des
171 droits restreints.</p>
174 <note><title>Note</title>
175 <p>Lors de la spécification d'un chemin de fichier sur les
176 plate-formes non-Unix, il faut prendre soin de ne pas oublier
177 que seuls les slashes directs doivent être utilisés, même si la
178 plate-forme autorise l'emploi d'anti-slashes. D'une manière
179 générale, c'est une bonne idée que de n'utiliser que des slashes
180 directs dans les fichiers de configuration.</p>