Table des matières

reverse proxy add forward module for Apache (mod_rpaf)

http://httpd.apache.orghttp://wiki.nginx.org/Main

Source : http://stderr.net/apache/rpaf/

Ce Document a pour but d'expliquer comment faire remonter dans les logs Apache, les IP Clients lorsque Apache est derrière un Proxy Cache.

Notre Proxy Cache est NGINX

Configuration de NGINX

Dans chaque VHost de déclarés, il faut ajouter la ligne suivante :

proxy_set_header X-Real-IP  $remote_addr;

Exemple :

location / {
        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://192.168.1.42;
}

Puis il faut que vous redémarriez le proxy cache

# /etc/init.d/nginx restart

Configuration d'Apache

Compilation du module RPAF

Prérequis :

apache2-prefork-dev

Il faut que vous installiez sur le serveur qui servira à compiler, le package contenant les outils de Dev d'Apache

# apt-get install apache2-prefork-dev
rpaf

Téléchargez le dernier module disponible sur l'URL suivante : http://stderr.net/apache/rpaf/download/

Compilation :

# apxs2 -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c

Cela va compiler le module sur votre configuration et va ensuite le copier dans le répertoire contenant tous les modules d'Apache.

Installation dans Apache

Ajoutez les 2 fichiers suivants dans votre configuration Apache :

rpaf.conf
RPAFenable On
# Enable reverse proxy add forward
RPAFproxy_ips 127.0.0.1 <IP de votre Proxy Cache>
# which ips are forwarding requests to us
RPAFsethostname On
# let rpaf update vhost settings
# allows to have the same hostnames as in the "real"
# configuration for the forwarding Apache
RPAFheader X-Forwarded-For
# Allows you to change which header mod_rpaf looks
# for when trying to find the ip the that is forwarding
# our requests
rpaf.load
LoadModule rpaf_module /usr/lib/apache2/modules/mod_rpaf-2.0.so

Ensuite, il faut que vous activiez les 2 fichiers afin que Apache les prenne en compte.

# cd /etc/apache2/mods-enabled
# ln -s ../mods-available/rpaf.load
# ln -s ../mods-available/rpaf.conf

Puis il faut redémarrer Apache

# /etc/init.d/apache2 restart

Maintenant, dans vos logs Apache, vous voyez les IP Client en lieu et place de l'IP du Proxy Cache.