Vous êtes ici : Accueil / Debian GNU/Linux / Serveurs / Apache 2 / Obtenir l'adresse IP réelle d'un visiteur accédant à un serveur Apache 2 à travers un reverse proxy

Obtenir l'adresse IP réelle d'un visiteur accédant à un serveur Apache 2 à travers un reverse proxy

Par Pierre-Yves Landuré Dernière modification 02/03/2018 20:35

Utiliser un reverse proxy peut répondre à plusieurs problématiques: cacher les pages servies (Varnish), mettre en place une répartition de charge (HAProxy) ou présenter le contenu de plusieurs serveurs sur une seule et même adresse IP (Apache 2). Le Reverse Proxy fournit l'IP réelle du visiteur dans l'entête HTTP X-Forwarded-For. Ce guide propose une méthode pour récupérer l'IP présente dans cette entête et la présenter comme l'adresse IP du client en lieu et place de l'adresse IP du reverse proxy.

Ce guide est testé sur:

  • Debian 6.0 Squeeze
  • Debian 7.0 Wheezy

Paramètres

Renseignez les adresses IP du ou des reverse proxy vues depuis l'hôte local, séparées par des espaces:

REVERSE_PROXY_IPS="127.0.0.1"

Installation

Détectez le proxy de commande (command ou sudo):

cmdProxy='command'
command type -f 'sudo' &>'/dev/null' && cmdProxy='sudo'

Installez le module RPAF:

${cmdProxy} apt-get install libapache2-mod-rpaf

Activez le module:

${cmdProxy} a2enmod rpaf

Configurez les adresses IP des reverse proxy:

${cmdProxy} sed -i \
    -e "s/^[ \t]*RPAFproxy_ips.*$/& ${REVERSE_PROXY_IPS}/" \
  '/etc/apache2/mods-available/rpaf.conf'

Rechargez la configuration:

${cmdProxy} service apache2 force-reload

Remerciements