Serveur Apache HTTP Version 2.5
Description: | Journalisation légale des requêtes envoyées au serveur |
---|---|
Statut: | Extension |
Identificateur de Module: | log_forensic_module |
Fichier Source: | mod_log_forensic.c |
Ce module permet la journalisation légale des requêtes client.
La création du fichier journal correspondant s'effectue via la
directive ForensicLog
comme suit :
ForensicLog logs/forensic_log
La journalisation s'effectuant avant et après le traitement de la requête, le journal légal contient deux lignes pour chaque requête. Le processus de journalisation légale est très strict, à savoir :
CoreDumpDirectory
).Pour interpréter les données du journal
légal afin d'identifier les requêtes dont le traitement n'a
pas été mené à bien, vous pouvez vous
aider du script check_forensic
qui se trouve dans le
répertoire support de la distribution.
check-forensic forensic_log
Chaque requête fait l'objet d'une double journalisation. La requête est journalisée une première fois avant son traitement (c'est à dire après la réception des en-têtes). La deuxième entrée du journal est écrite après le traitement de la requête, en fait au moment de la journalisation habituelle.
Un identifiant unique est attribué à chaque requête afin de
pouvoir l'identifier. Cette identifiant légal peut faire l'objet
d'un enregistrement dans le journal standard en utilisant l'élément
de chaîne de format %{forensic-id}n
. Si vous utilisez
mod_unique_id
, c'est l'identifiant qu'il génère qui
sera utilisé.
La première partie de la journalisation de la requête enregistre
l'identifiant légal, la ligne de la requête et tous les en-têtes
reçus séparés par des caractères pipe (|
). Voici à
titre d'exemple à quoi pourrait ressembler une telle entrée (tout
étant rassemblé sur une seule ligne) :
+yQtJf8CoAB4AAFNXBIEAAAAA|GET /manual/de/images/down.gif
HTTP/1.1|Host:localhost%3a8080|User-Agent:Mozilla/5.0 (X11;
U; Linux i686; en-US; rv%3a1.6) Gecko/20040216
Firefox/0.8|Accept:image/png, etc...
Le caractère plus ('+') de début indique qu'il s'agit de la première entrée de journal pour cette requête. La seconde entrée ne contiendra qu'un caractère moins ('-') suivi de l'identifiant :
-yQtJf8CoAB4AAFNXBIEAAAAA
Le script check_forensic
prend comme argument le nom
du fichier journal. Il recherche ces paires d'identifiants
+
/-
et affiche un message d'erreur si la
journalisation d'une requête n'est pas complète.
Voir le document conseils en matière de sécurité pour des détails sur les raisons pour lesquelles votre sécurité pourrait être compromise si le répertoire dans lequel les fichiers journaux sont stockés sont inscriptibles par tout autre utilisateur que celui qui démarre le serveur.
Les fichiers journaux peuvent contenir des données sensibles
comme le contenu des en-têtes Authorization:
(qui
peuvent contenir des mots de passe) ; ils ne doivent donc être
lisibles que par l'utilisateur qui démarre le serveur.
Description: | Définit le nom de fichier du journal légal |
---|---|
Syntaxe: | ForensicLog nom-fichier|pipe |
Contexte: | configuration du serveur, serveur virtuel |
Statut: | Extension |
Module: | mod_log_forensic |
La directive ForensicLog
permet de
contrôler la journalisation des requêtes à des fins d'analyse
légale. Chaque entrée du journal se voit assigner un identifiant
unique qui peut être associé à la requête en utilisant la directive
CustomLog
habituelle.
mod_log_forensic
crée un élément nommé
forensic-id
, qui peut être ajouté au journal standard
en utilisant l'élément de format %{forensic-id}n
.
L'argument, qui permet de spécifier l'emplacement vers lequel le journal légal sera écrit, peut contenir les deux types de valeurs suivants :
ServerRoot
.|
", suivi du chemin vers un
programme qui recevra les informations de la journalisation sur
son entrée standard. Le nom du programme peut être relatif au
répertoire défini par la directive ServerRoot
.
Si les journaux sont redirigés vers un programme, ce dernier
s'exécutera sous l'utilisateur qui a démarré
httpd
. Ce sera l'utilisateur root si le serveur
a été démarré par root ; vérifiez que le programme est
sécurisé ou passe sous le contrôle d'un utilisateur possédant des
droits restreints.
Lors de la spécification d'un chemin de fichier sur les plate-formes non-Unix, il faut prendre soin de ne pas oublier que seuls les slashes directs doivent être utilisés, même si la plate-forme autorise l'emploi d'anti-slashes. D'une manière générale, c'est une bonne idée que de n'utiliser que des slashes directs dans les fichiers de configuration.