Récupération de la vrai IP dans WordPress

hello

Il arrive souvent que derrière un proxy  ou une installation spécifique les logs WordPress ne voit pas la vrai IP

Il existe bien entendu des headers spécifiques que les reverses ajoutent (ou peuvent ajouter) pour indiquer l’ip source de la requête.

Il faut cependant indiquer à Apache2 de le prendre en compte. Voyons comment faire cela.

Deux en-tête HTTP sont utilisées pour transmettre cette information. Il s’agit de X-Real-IP et de X-Forwarded-For.

X-Forwarded-For peut contenir plusieurs ip si la requête est forwardé plusieurs fois, tandis que X-Real-IP a plutôt vocation à contenir l’ip d’origine

Quoi qu’il en soit, les deux sont souvent renseignés et, dans le cas où l’on a la maîtrise du reverse, on le configure bien comme on l’entend.

Voici une solution qui fonctionne :

Apache peut donc lire l’ip d’origine depuis n’importe laquelle des deux deux en-tête.

Pour se faire, à partir d’Apache 2.4 nous utiliserons le mod_remoteip.

Ce module permet simplement d’indiquer à Apache de prendre en compte l’une des en-têtes précitées comme ip d’origine.

On commence par activer le module, puis on spécifie sa configuration car il n’en possède pas d’office. Enfin, on fini par charger la configuration et on redémarre le serveur.

# active le mode remoteip

a2enmod remoteip

# dans /etc/apache2/conf-available/remoteip.conf

# on utilise ici X-Forwarded-For

# libre à vous de remplacer par X-Real-IP

RemoteIPHeader X-Forwarded-For

# ici les adresse distantes auxquelles on fait confiance pour présenter une valeur, ajustez en fonction de votre installation bien sur

RemoteIPHeader RemoteIPTrustedProxy 127.0.0.1 172.27.0.1 ::1

# on charge la conf nouvellement créée

a2enconf remoteip

# on redémarre apache pour que tout soit pris en compte

service apache2 restart

 

Et voilà, sans plus d’effort, Apache prend maintenant automatiquement en compte la vraie source des requêtes au lieu de celle de votre proxy !

Add a Comment

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *