{{tag>webadmin apache apache2.4 repoteip ip log}}
====== Journaliser l'IP du client derrière un proxy ======
Lorsque le serveur Apache se trouve derrière un serveur mandataire, les IP journalisées dans les logs sont toutes identiques: elles correspondent à l'IP du serveur mandataire. Pour enregistrer l'IP du client à l'origine de la requête, il faut modifier la configuration du serveur Apache.
Le serveur mandataire ne doit pas être en mode transparent et doit fournir le champ XFORWARDED-FOR
Coté serveur Apache, activer le mode **remoteip**
La documentation spécifie que le module ne doit être activé que pour des serveurs mandataires identifiés et de confiance (définir la directive **RemoteIPTrustedProxy** car il est trivial pour un client distant de générer un header et d'usurper l'identité d'un autre client.
a2enmod remoteip
Ajouter la configuration
vim /etc/apache2/conf-available/remoteip.conf
Le fichier remoteip.conf contient les directives suivantes:
# Variable du header désignant le client d'origine.
# Elle peut différer selon le service (répartiteur ou mandataire)
# Exemple de variable utilisée par le répartiteur de charge
# RemoteIPHeader X-Client-IP
RemoteIPHeader X-Forwarded-For
# Spécifier dans quel header le module relève les adresses IP
# RemoteIPProxiesHeader X-Forwarded-By
# Les mandataires autorisés pour lesquels le module remoteip
# prendra en compte le header et les variables RemoteIPHeader
RemoteIPTrustedProxy 172.16.2.1
# Les serveurs mandataires de confiance peuvent également être
# listés dans un fichier
# RemoteIPTrustedProxyList
Modifier la chaine de génération des logs dans apache2.conf
#LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%a %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
Activer la configuration et relancer le service
a2enconf remoteip
service apache2 restart
===== Références =====
* https://trick77.com/apache2-2-4-logging-remote-ip-address-using-mod_remoteip/
* http://httpd.apache.org/docs/trunk/fr/mod/mod_remoteip.html