Log de l'adresse ip du visiteur dans apache2 derrière un reverse proxy varnish3
Par alex sbille le lundi 24 mars 2014, 14:18 - System Administration Linux - Lien permanent
Varnish, comme tout reverse proxy laissera naturellement son adresse ip dans les logs du backend, ici apache. Dans mon cas, dans un contexte de sécurité, il est nécessaire que le reverse proxy utilise req.http.X-Forwarded-For pour annoncer au backend l'adresse ip du client.
Avec une debian like:
Sur le serveur de backend
apt-get install libapache2-mod-rpaf nano /etc/apache2/mods-enabled/rpaf.conf
<IfModule rpaf_module> RPAFenable On # When enabled, take the incoming X-Host header and # update the virtualhost settings accordingly: RPAFsethostname On # Define which IP's are your frontend proxies that sends # the correct X-Forwarded-For headers: RPAFproxy_ips 5.39.38.60 127.0.0.1 ::1 # Change the header name to parse from the default # X-Forwarded-For to something of your choice: RPAFheader X-Forwarded-For </IfModule>
service apache2 reload
Sur le reverse proxy / varnish:
Insérer après le début de sub vcl_recv :
if (req.restarts == 0) { if (req.http.X-Forwarded-For) { set req.http.X-Forwarded-For = req.http.X-Forwarded-For + ", " + client.ip; } else { set req.http.X-Forwarded-For = client.ip; } }
Suivi d'un reload de la configuration.