Apache : log de connexion interne et externe

Voici comment faire pour créer une log pour les accès interne ( réseau interne ) et une log spécifique pour les accès depuis l’extérieur ( internet ).

1/ Modules

Il faut vérifier que les modules « mod_env.so » et « mod_setenvinf.so » sont présents dans le sous répertoire « modules » de Apache.

Dans le cas contraire si tu possede les sources d’apache, alors il est trés facile de compiler ces deux modules :
- Se rendre dans le sous répertoire modules des sources et plus particulièrement dans modules/metadata.
- Executer le binaire « apxs » se trouvant dans le repertoire « bin » de ta version apache :

Exemple :


apxs -i -a -c mod_setenvif.c et apxs -i -a -c mod_env.c

ou -i pour installation , -a pour ajout et -c pour compiler.

NB :
- Le module mod_env.so : procure le mécanisme pour passer des variables d’environnement à des scripts CGI/SSI.
- Le module mod_setenvif.so : permet de définir des variables d’environnement sur la base d’attributs de la requête

S’il ne le fait pas alors copier le(s) module(s) compilé(s) dans le répertoire « modules » de ta version apache.
Dans la partie paramètrage global d’apache du fichier httpd.conf faire le rajout des deux lignes suivantes :
- LoadModule env_module modules/mod_env.so.
- LoadModule setenvif_module modules/mod_setenvif.so.

2/ Parametrer httpd.conf

- Rechercher dans le fichier httpd.conf les lignes qui commencent par : LogFormat.
- A la suite rajouter la ligne suivante :


SetEnvIf Remote_Addr ^192\.112\.12 interne

Definition de la variable d’environnement « interne » avec une regex portant sur l’attribut de requête Remote_Addr


Customlog logs/interne_log common env=interne

Pour les Adresses correspondant au sous réseau 192.112.12.


CustomLog logs/externe_log common env=!interne

Pour les Adresses en-dehors du sous réseau.

3/ fini

Après avoir fait les modifications suivantes, il reste à redémarrer Apache.