Apache et le module log_post
Hello les amis !
Vous effectuez des analyses dans vos fichiers de logs Apache pour votre site, vous voyez beaucoup de GET et POST ( sans doute des HEAD aussi ).
C’est bien, mais savez-vous à quoi correspond exactement ce POST qui est effectué ?
Pour cela, il suffit simplement de rajouter un module pour Apache qui lui permettra de fournir des détails dans un fichier de log associé.
Cet article vous expliquera comment en faire l’installation, la configuration ainsi que l’analyse de vos nouveaux logs 🙂
Si vous une remarque à faire sur l’article, n’hésitez pas à utilisez les commentaires.
Introduction
Sachez qu’il existe plusieurs module pour Apache afin de faire des logs sur vos POST, c’est le cas par exemple pour « dumpio » et « log_post ».
L’action effectuée par le module reste toujours la même, on log les datas du POST dans un fichier de log.
Vous trouverez pas mal d’article sur la toile sur le premier module « dumpio » ( surtout si vous ne connaissez pas le nom du module en question ).
Après avoir testé les deux modules, je préfère personnellement le second. C’est donc celui-ci que nous allons voir au long de cet article.
Récupération du module
J’utilise sur mes serveurs WEB une version sous forme de package ( distribution CentOS ), l’installation du module sera plus particulièrement effectuée par le gestionnaire de packages.
Si vous souhaitez réellement compiler le module, regardez du côté de APXS ainsi que ce site pour récuperer les sources du module.
Autrement je vous conseil d’utiliser la version ( avec explication dans le README ) directement sur mon SVN.
Utilisez donc le service SVN pour récupérer les fichiers 🙂
Installation du module
Passons à l’installation de notre module ( via les packages ). L’installation s’effectue comme dans vos habitudes, rien de bien compiqué !
yum install mod_log_post
Et voici ce que cela donne en situation réelle :
Resolving Dependencies
–> Running transaction check
—> Package mod_log_post.x86_64 0:0.1.0-2.el6 will be installed
–> Finished Dependency ResolutionDependencies Resolved
========================================
Package Arch Version Repository Size
========================================
Installing:
mod_log_post x86_64 0.1.0-2.el6 epel 40 kTransaction Summary
========================================
Install 1 Package(s)Total download size: 40 k
Installed size: 89 k
Is this ok [y/N]:
Notre module est maintenant installé. Passons à l’activation.
Configuration de Apache
Maintenant que notre module est installé, nous allons dire à Apache de l’utiliser ( ce qui n’est pas le cas par défaut dans ma situation ).
Pour cela, il vous faudra modifier le fichier « httpd.conf » ( sinon c’est votre fichier qui gère les modules Apache ) afin de rajouter cette ligne :
LoadModule log_post_module modules/mod_log_post.so
Quittez et sauvegardez le fichier.
Vous devrez faire un « configtest » suivi d’un « restart » de votre service pour la bonne prise en charge du module.
Pour voir si votre module est bien chargé par Apache, vous pouvez faire un « httpd -t -D DUMP_MODULES » et vous devriez avoir « log_post_module (shared) ».
Activation sur un vhost
Notre module est maintenant activé sur Apache. Cependant il ne fonctionne pas encore puisqu’il ne possède encore aucune règles ( comme le path des logs ).
Vous pouvez effectuer cette configuration de manière global, personnellement, cette configuration sera active seulement pour un site en particulier ( je trouve cela beaucoup plus ordonné ).
Commencez par ouvrir votre fichier concernant votre site.
Repérez ensuite la ligne qui concerne les fichiers de logs « CustomLog » et « ErrorLog ».
Afin de garder une bonne organisation, nous allons rajouter au dessus ces lignes qui vous fournis les détails sur le fonctionnement du module.
Modifiez-les afin d’être correcte sur votre serveur 🙂
# Configuration module log_post
PostLogging On
PostLogFile /home/logs/httpd/www.djerfy.com/post-%Y%m%d-%H%M.log
Il est aussi possible de faire encore mieux en rajoutant la rotation des logs en changent la ligne « PostLogFile » que vous avez rajouté par :
PostLogFile ‘|/usr/sbin/rotatelogs -l /home/logs/httpd/www.djerfy.com/post-%Y%m%d-%H%M.log 86400’
Comme vous l’aurez compris, la rotation est effectué après 86400 secondes 🙂
Votre module est maintenant utilisé et configuré pour votre site 🙂
Maintenant il vous reste à faire un « tail -f » sur ce fichier de log pour admirer vos POST en détails !
Conclusion
C’est maintenant terminé, vous voyez, la mise en place et la configuration de ce genre de module ne prend pas beaucoup de temps.
Durant vos analyses ( en cas d’injection, attaque, … ) ce module vous fera gagné beaucoup de temps et vous sera alors un vrai SysAdmin 😛
Je vous souhaite donc une bonne continuation dans vos analyses et n’hésitez pas à me faire part de vos remarques en commentaires.
Je connais une multitude de techniques sur ce genre ce recherche 🙂
NOTE : Ne cherchez pas, l’image de l’article n’a rien à voir avec les logs, mouhahahaha