Logguer l’IP/hôte distant quand on utilise mod_proxy

Par défaut, en passant par un proxy http, Apache loggue l’adresse IP du proxy et non celle à l’origine de la connexion dans les fichiers access.
Pour résoudre ce problème, on va utiliser le module apache mod_remoteip.
On active ce module en créant le fichier /etc/httpd/conf.modules.d/00-remoteip.conf

LoadModule remoteip_module modules/mod_remoteip.so

et on le configure dans le fichier /etc/httpd/conf.d/remoteip.conf

<IfModule mod_remoteip.c>
RemoteIPHeader X-Forwarded-For
RemoteIPInternalProxy 127.0.0.1
LogFormat "%a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
</IfModule>

On redémarre Apache et le tour est joué

systemctl restart httpd

On ne peut pas déclarer notre proxy de manière générique avec la directive

RemoteIPProxiesHeader X-Forwarded-By

car notre proxy fait partie d’un block IP privé: dixit la page de documentation officielle du module

Tous les blocs d’adresses internes 10/8, 172.16/12, 192.168/16, 169.254/16 and 127/8 (ainsi que les adresses IPv6 en dehors du bloc public 2000::/3 block) ne sont évaluées par mod_remoteip que lorsque des mandataires internes (intranet) RemoteIPInternalProxy sont enregistrés.

Leave a Reply

Your email address will not be published. Required fields are marked *

+ eighty four = 91