summaryrefslogtreecommitdiffstats
path: root/docs/manual/mod/mod_firehose.xml.fr
blob: d0b7f54d62aec8c6b93cc42df7f97e878606d2b9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
<!-- English Revision : 1673947 -->
<!-- French translation : Lucien GENTIS -->
<!-- $LastChangedRevision: 2015042601 $ -->

<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
 The ASF licenses this file to You under the Apache License, Version 2.0
 (the "License"); you may not use this file except in compliance with
 the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-->

<modulesynopsis metafile="mod_firehose.xml.meta">

<name>mod_firehose</name>
<description>Multiplexage des entr&eacute;es/sorties vers un fichier ou un pipe.</description>
<status>Extension</status>
<sourcefile>mod_firehose.c</sourcefile>
<identifier>firehose_module</identifier>

<summary>
    <p><code>mod_firehose</code> fournit un m&eacute;canisme permettant
    d'enregistrer les donn&eacute;es transmises entre le serveur httpd et le
    client au niveau &eacute;l&eacute;mentaire de la connexion dans un fichier ou un
    pipe, de fa&ccedil;on &agrave; ce que les donn&eacute;es puissent &ecirc;tre analys&eacute;es ou
    rejou&eacute;es ult&eacute;rieurement par le serveur. Il s'apparente &agrave; un "tcpdump
    pour httpd".</p>

    <p>Les connexions sont enregistr&eacute;es apr&egrave;s d&eacute;codage de la couche SSL,
    et peuvent ainsi &ecirc;tre utilis&eacute;es dans le cadre d'une r&eacute;quisition
    l&eacute;gale.</p>

    <p>L'utilitaire <program>firehose</program> permet en retour de
    d&eacute;multiplexer le flux enregistr&eacute; dans des fichiers individuels pour
    analyse ou rejeu via des outils tels que <code>netcat</code>.</p>

    <note><title>AVERTISSEMENT</title>Ce module ignore tout m&eacute;canisme
    invoqu&eacute; au niveau de la requ&ecirc;te pour rendre les donn&eacute;es priv&eacute;es. Il
    est donc de la responsabilit&eacute; de l'administrateur de s'assurer que
    les donn&eacute;es priv&eacute;es ne seront pas compromises par son utilisation.
    </note>

</summary>
<seealso><program>firehose</program></seealso>

<section id="enable">
    <title>Activation de la "Lance &agrave; incendie" (Firehose)</title>

    <p>Pour activer ce module, il doit &ecirc;tre compil&eacute; et charg&eacute; via la
    configuration de votre instance httpd courante, et les directives
    ci-dessous permettent de s&eacute;lectionner les donn&eacute;es que vous souhaitez
    enregistrer.</p>
    
    <p>Il est possible d'enregistrer les donn&eacute;es entrantes et sortantes
    dans le m&ecirc;me fichier, car la direction du flux est indiqu&eacute;e dans
    chaque fragment.</p>

    <p>Il est possible d'&eacute;crire vers des fichiers normaux ou des listes
    fifos (pipes). Dans le cas des listes fifos, mod_firehose fait en
    sorte que la taille des paquets ne d&eacute;passe pas la valeur de PIPE_BUF
    afin de s'assurer que l'&eacute;criture de ces derniers s'effectue en une
    seule fois.</p>

    <p>Si une liste fifo sous forme de pipe doit &ecirc;tre utilis&eacute;e, pour que
    cette derni&egrave;re soit ouverte en &eacute;criture, certaines donn&eacute;es doivent
    en &ecirc;tre extraites avant le d&eacute;marrage de httpd. Si l'ouverture du
    pipe &eacute;choue, mod_firehose ne sera pas activ&eacute;, et le serveur sera
    lanc&eacute; normalement.</p>

    <p>Par d&eacute;faut, toute tentative d'&eacute;criture bloque le serveur. Si le
    serveur a &eacute;t&eacute; compil&eacute; avec APR version 2.0 ou sup&eacute;rieure, et si le
    param&egrave;tre "nonblock" a &eacute;t&eacute; sp&eacute;cifi&eacute;, les &eacute;critures dans les fichiers
    seront non blocantes, et tout d&eacute;passement de tampon entra&icirc;nera la
    perte des donn&eacute;es de d&eacute;bogage. Dans ce cas, il est possible donner
    la priorit&eacute; &agrave; l'ex&eacute;cution du serveur sur l'enregistrement des
    donn&eacute;es firehose.</p>

</section>

<section id="format">
    <title>Format du flux</title>

    <p>En g&eacute;n&eacute;ral, le serveur g&egrave;re plusieurs connexions simultan&eacute;ment,
    et de ce fait, les requ&ecirc;tes et les r&eacute;ponses doivent &ecirc;tre
    multiplex&eacute;es avant d'&ecirc;tre &eacute;crites dans le firehose.</p>
    
    <p>Chaque fragment se pr&eacute;sente sous la forme d'un texte en clair
    de fa&ccedil;on &agrave; ce qu'un firehose puisse &ecirc;tre ouvert et inspect&eacute; par un
    &eacute;diteur de texte standard. Il est aussi possible d'utiliser
    l'utilitaire <program>firehose</program> pour d&eacute;multiplexer le
    firehose en requ&ecirc;tes ou connexions individuelles.</p>

    <p>La taille maximale des fragments multiplex&eacute;s est d&eacute;finie par la
    variable PIPE_BUF. Elle correspond &agrave; la taille maximale d'un
    &eacute;l&eacute;ment que le syst&egrave;me peut &eacute;crire. Si la taille des fragments
    multiplex&eacute;s reste en dessous de PIPE_BUF, le module garantit que les
    contenus des diff&eacute;rents fragments ne se recouperont pas. La valeur
    de PIPE_BUF varie en fonction du syst&egrave;me d'exploitation.</p>

    <p>La BNF du format du fragment est la suivante :</p>

    <pre>
 stream = 0*(fragment)

 fragment = header CRLF body CRLF

 header = length SPC timestamp SPC ( request | response ) SPC uuid SPC count

 length = &lt;longueur de fragment sur 16 octets hexad&eacute;cimaux>
 timestamp = &lt;temps depuis 1970 en microsecondes sur 16 octets hexad&eacute;cimaux>
 request = "&lt;"
 response = ">"
 uuid = &lt;uuid format&eacute; de la connexion>
 count = &lt;num&eacute;ro hexad&eacute;cimal du fragment dans la connexion>

 body = &lt;contenu binaire du fragment>

 SPC = &lt;un espace>
 CRLF = &lt;un retour chariot suivi d'une nouvelle ligne>
    </pre>

    <p>Tous les fragments d'une connexion ou d'une requ&ecirc;te partagent le
    m&ecirc;me UUID, selon que les connexions ou les requ&ecirc;tes sont
    enregistr&eacute;es ou non. Si les connexions sont enregistr&eacute;es, plusieurs
    requ&ecirc;tes peuvent appara&icirc;tre dans la m&ecirc;me connexion. Un fragment de
    longueur nulle indique la fin de la connexion.</p>

    <p>Certains fragments peuvent manquer ou &ecirc;tre supprim&eacute;s si le
    processus qui les lit est trop lent. Si cela se produit, il y aura
    des trous dans le comptage des connections. Un avertissement
    indiquant l'UUID et le num&eacute;ro du fragment supprim&eacute; sera enregistr&eacute;
    dans le journal des erreurs.</p>

    <p>En cas de crash ou d'arr&ecirc;t forc&eacute; du processus httpd, il est
    possible que le fragment vide de terminaison n'apparaisse pas. Cela
    peut aussi se produire si le processus qui lit les fragments n'est
    pas assez rapide.</p>

</section>

<directivesynopsis>

<name>FirehoseConnectionInput</name>
<description>Capture le trafic entrant dans le serveur &agrave; chaque
connexion.</description>
<syntax>FirehoseConnectionInput <var>[ block | nonblock ]</var> <var>filename</var></syntax>
<default>none</default>
<contextlist><context>server config</context></contextlist>
<compatibility>Disponible &agrave; partir de la version 2.5.0 du serveur HTTP
Apache.</compatibility>

<usage>
    <p>Capture le trafic entrant dans le serveur &agrave; chaque connexion.
    Plusieurs requ&ecirc;tes seront captur&eacute;es pour la m&ecirc;me connexion si les
    connexions persistantes sont activ&eacute;es.</p>

    <example><title>Exemple</title>
    <highlight language="config">
      FirehoseConnectionInput connection-input.firehose
      </highlight>
    </example>
</usage>

</directivesynopsis>

<directivesynopsis>

<name>FirehoseConnectionOutput</name>
<description>Capture le trafic sortant du serveur &agrave; chaque connexion</description>
<syntax>FirehoseConnectionOutput <var>[ block | nonblock ]</var> <var>filename</var></syntax>
<default>none</default>
<contextlist><context>server config</context></contextlist>
<compatibility>Disponible &agrave; partir de la version 2.5.0 du serveur HTTP
Apache.</compatibility>

<usage>
    <p>Capture le trafic sortant du serveur &agrave; chaque connexion.
    Plusieurs requ&ecirc;tes seront captur&eacute;es pour la m&ecirc;me connexion si les
    connexions persistantes sont activ&eacute;es.
    </p>

    <example><title>Exemple</title>
    <highlight language="config">
      FirehoseConnectionOutput connection-output.firehose
      </highlight>
    </example>
</usage>

</directivesynopsis>

<directivesynopsis>

<name>FirehoseRequestInput</name>
<description>Capture le trafic entrant dans le serveur &agrave; chaque requ&ecirc;te</description>
<syntax>FirehoseRequestInput <var>[ block | nonblock ]</var> <var>filename</var></syntax>
<default>none</default>
<contextlist><context>server config</context></contextlist>
<compatibility>Disponible &agrave; partir de la version 2.5.0 du serveur HTTP
Apache.</compatibility>

<usage>
    <p>Capture le trafic entrant dans le serveur &agrave; chaque requ&ecirc;te. Les
    requ&ecirc;tes sont captur&eacute;es s&eacute;par&eacute;ment, que les connexions persistantes
    soient activ&eacute;es ou non.</p>

    <example><title>Exemple</title>
    <highlight language="config">
      FirehoseRequestInput request-input.firehose
      </highlight>
    </example>
</usage>

</directivesynopsis>

<directivesynopsis>

<name>FirehoseRequestOutput</name>
<description>Capture le trafic sortant du serveur &agrave; chaque requ&ecirc;te</description>
<syntax>FirehoseRequestOutput <var>[ block | nonblock ]</var> <var>filename</var></syntax>
<default>none</default>
<contextlist><context>server config</context></contextlist>
<compatibility>Disponible &agrave; partir de la version 2.5.0 du serveur HTTP
Apache.</compatibility>

<usage>
    <p>Capture le trafic sortant du serveur &agrave; chaque requ&ecirc;te. Les
    requ&ecirc;tes sont captur&eacute;es s&eacute;par&eacute;ment, que les connexions persistantes
    soient activ&eacute;es ou non.</p>

    <example><title>Exemple</title>
    <highlight language="config">
      FirehoseRequestOutput request-output.firehose
      </highlight>
    </example>
</usage>

</directivesynopsis>

<directivesynopsis>

<name>FirehoseProxyConnectionInput</name>
<description>Capture le trafic entrant dans mod_proxy</description>
<syntax>FirehoseProxyConnectionInput <var>[ block | nonblock ]</var> <var>filename</var></syntax>
<default>none</default>
<contextlist><context>server config</context></contextlist>
<compatibility></compatibility>

<usage>
    <p>Capture le trafic re&ccedil;u par mod_proxy.</p>

    <example><title>Exemple</title>
    <highlight language="config">
      FirehoseProxyConnectionInput proxy-input.firehose
      </highlight>
    </example>
</usage>

</directivesynopsis>

<directivesynopsis>

<name>FirehoseProxyConnectionOutput</name>
<description>Capture le trafic envoy&eacute; par mod_proxy</description>
<syntax>FirehoseProxyConnectionOutput <var>[ block | nonblock ]</var> <var>filename</var></syntax>
<default>none</default>
<contextlist><context>server config</context></contextlist>
<compatibility>Disponible &agrave; partir de la version 2.5.0 du serveur HTTP
Apache.</compatibility>

<usage>
    <p>Capture le trafic envoy&eacute; par mod_proxy.</p>

    <example><title>Exemple</title>
    <highlight language="config">
      FirehoseProxyConnectionOutput proxy-output.firehose
      </highlight>
    </example>
</usage>

</directivesynopsis>

</modulesynopsis>