Varnish et les adresses IP

 dans Linux, Outils, Sécurité, Serveur

Hello les geek's,

Etant actuellement en train de faire une bonne optimisation sur la plateforme, je me suis aperçue que les IP ( vue dans le CMS par exemple ) n'était pas réel et provenait directement du DJERFY-RPC. En sommes la vrai IP du visiteur n'était donc pas affichée.

Mais dans les logs tout était correcte. Je me suis alors penché rapidement sur la question !

Installation des packages supplémentaires

Afin de poursuivre, j'ai installé un package supplémentaire afin d'avoir accès au binaire APXS de Httpd ( pas installé par défaut ).

yum install httpd-devel

Une fois que c'est effectué, il faut télécharger le module qui va bien "mod_remoteip.c"

wget https://archive.djerfy.com/docs/mod_remoteip.c -O /tmp/mod_remoteip.c

Compilation du module

Maintenant que nous avons le module, on le compile avec APXS

cd /tmp && apxs -i -a -c mod_remoteip.c

Maintenant le module est compilé et bien installé. Il est possible de le vérifié, le chemin est à modifié selon votre configuration.

ls -lrht /etc/httpd/modules/mod_remoteip.so
-rwxr-xr-x 1 root root 37K 23 oct.  12:26 /etc/httpd/modules/mod_remoteip.so

Configuration du Httpd

Notre module étant bien installé, on va à présent le charger dans la configuration. Pour cela chargez le module avec cette ligne ( souvent dans le fichier httpd.conf )

LoadModule remoteip_module modules/mod_remoteip.so

Et rajoutez de même cette ligne à la fin de votre fichier httpd.conf :

RemoteIPHeader X-Forwarded-For

On check la bonne configuration puis on fait un graceful du service Httpd comme ceci :

/etc/init.d/httpd configtest
Syntax ok
/etc/init.d/httpd graceful

A partir d'ici, nous aurons à présent la bonne adresse quand on regarde dans notre CMS ( commentaire par exemple )….

Vérification

Bon si vous souhaitez vérifier le bon fonctionnement des IP, créez une page php à la racine de votre site, n'oubliez pas de changer le code le la première balise PHP 🙂

cat check_ip.php

>?php
    $ip = $_SERVER['REMOTE_ADDR'];
    echo " Mon ip est : $ip "; 
?>

 

Si vous avez des questions, je reste à l'écoute 🙂

Articles recommandés