Outils pour utilisateurs

Outils du site


webadmin:apache2:journaliser-ip-derriere-proxy

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:

remoteip.conf
# 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
 
# Définition d'un format de log spécifique "combined_proxy"
LogFormat "%a %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined_proxy

Modifier la chaine de génération des logs dans apache2.conf ou l'hote virtuel Apache :

# Utilise le module remoteip pour journaliser l'IP originelle du client
<IfModule remoteip_module>
  CustomLog /srv/nextcloud/log/access.log combined_proxy
</IfModule>

Activer la configuration et relancer le service :

a2enconf remoteip
systemctl reload apache2.service

Références

webadmin/apache2/journaliser-ip-derriere-proxy.txt · Dernière modification : 2026/03/30 14:00 de yoann