Fasterize sert vos pages web et donc toutes les requêtes à votre origine proviendront des adresses IP de la plateforme Fasterize.
En utilisant un service fonctionnant de type proxy comme Fasterize, les logs des serveurs d'origine afficheront les IPs des machines de Fasterize au lieu des IP Client. Cela rend donc les IP Client anonymes, ce qui empêche la prévention d'activité abusive pour une IP en particulier.
X-Forwarded-For et True-Client-IP
Pour obtenir l'adresse IP des utilisateurs sur vos serveurs d'origine, nous avons ajouté deux entêtes HTTP aux requêtes vers votre serveur : X-Forwarded-For ou True-Client-IP.
L'entête X-Forwarded-For est une liste d'adresses IP ayant transféré la requête. La première adresse IP est l'adresse IP du navigateur.
X-Forwarded-For: client, proxy1, proxy2 True-Client-IP: client
Tester la compatibilité de votre serveur
Il est possible d'émuler le branchement de Fasterize en utilisant l'extension chrome ModHeader pour insérer l'entête X-Forwarded-For qui serait envoyé dans les entêtes des requêtes vers votre serveur.
Par exemple, vous pouvez ajouter l'entête suivant X-Forwarded-For: 109.190.109.118 via l'extension et commander un produit sur votre site. Ensuite, il vous suffit de regarder dans les logs de votre serveur et dans le backoffice si l'adresse IP 109.190.109.118 est bien récupérée.
Implémentation sur votre serveur
Voici quelques astuces pour configurer correctement votre serveur web pour récupérer la valeur de l'entête X-Forwarded-For
:
- Apache : nous vous conseillons l'utilisation du module RemoteIP.
Vous pouvez compiler et installer le module avec
apxs -i -a -c mod_remoteip.c
Ensuite, rajouter cette ligne dans votre vhost Apache
RemoteIPHeader True-Client-IP
- Nginx : nous vous conseillons l'utilisation de RealIP
- Varnish : la logique du vcl_recv doit contenir :
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;
}
- IIS : pour configurer IIS à partir des versions 8.5 : https://www.iis.net/learn/get-started/whats-new-in-iis-85/enhanced-logging-for-iis85. Pour les autres versions, le add-on Advanced Logging doit être installé. Il peut être téléchargé ici. Une fois installé sur le serveur IIS, vous aurez une option supplémentaire appelée "Advanced Logging" dans IIS.
Mise à jour des logs serveurs
Si vous ne souhaitez pas rajouter un module pour Apache ou Nginx, vous pouvez seulement rajouter l'adresse IP cliente dans les logs.
Pour Apache, ouvrez le fichier /etc/httpd/conf/httpd.conf, remplacer la ligne de CustomLog par :
LogFormat "%{True-Client-IP}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" proxy SetEnvIf True-Client-IP "^.*\..*\..*\..*" forwarded CustomLog "/usr/local/apache/domlogs/mydomain.com" combined env=!forwarded CustomLog "/usr/local/apache/domlogs/mydomain.com" proxy env=forwarded
Apache va alors choisir le bon format de logs selon la détection de l'entête True-Client-IP.
Implémentation sur votre CMS
Si vous ne pouvez pas modifier le code de votre serveur, vous pouvez modifier votre CMS pour gérer les proxys :
- WordPress: utilisez le plugin Proxy Real IP ou Real IP.
- Magento 1 et 2: Vous devez ajouter la section suivante sur votre local.xml pour correctement interpréter les entêtes True-Client-IP ou X-Forwarded-For dans la balise <global> :
<remote_addr_headers> <!-- list headers that contain real client IP if webserver is behind a reverse proxy --> <header1>HTTP_TRUE_CLIENT_IP</header1> <header2>HTTP_X_FORWARDED_FOR</header2> </remote_addr_headers>
- PHP: si votre site web ou application est écrite en PHP, la vraie adresse IP des utilisateurs peut être récupérée en utilisant la variable serveur
$_SERVER['HTTP_X_FORWARDED_FOR']
. - HA Proxy: si vous utilisez HA proxy, étant donnée que HA Proxy se positionne entre Fasterize et votre serveur web, il faudra ajouter la ligne capture request header True-Client-IP len, qui récupère l’IP du client qui correspond au champ captured_request_headers du « http log format » par défaut dans la log HA Proxy ( https://www.haproxy.com/
documentation/hapee/latest/ )onepage/#8.2.3
A noter que: « option forwardor » sert seulement à transmettre l’IP du client au serveur web (pour la récupérer dans les logs apache par exemple)
Blocage IP via .htaccess
Si vous utilisez actuellement un blocage par adresses IP pour un dossier de votre site, il vous suffit de faire la mise à jour suivante :
Order Deny,Allow Deny from all Allow from 172.135.135.234 Allow from 172.135.135.235
vers :
Order Deny,Allow Deny from all SetEnvIf X-Forwarded-For "^172\.135\.1135\.234" AllowAccess_1 SetEnvIf X-Forwarded-For "^172\.135\.1135\.235" AllowAccess_2 Allow from env=AllowAccess_1 Allow from env=AllowAccess_2
Scénarios utilisant les adresses IP
Voici quelques scénarios pour lesquels vous avez besoin d'utiliser l'adresse IP des utilisateurs sur vos serveurs:
- Servir du contenu différent en fonction de la localisation des utilisateurs, déterminée par l'adresse IP.
- Vérifier si les requêtes de session utilisateur proviennent de la même machine. Cette pratique est courante pour les sites web tels que les forums et messageries.
- Prévenir des abus en bloquant les requêtes quand elles sont nombreuses à provenir d'une même adresse IP.
- Détecter les fraudes.
- Analyser les comportements utilisateurs.
- ...
Si votre site web est concerné par une des situations ci dessus, nous vous recommandons vivement de changer votre serveur d'origine pour exploiter l'en-tête X-Forwarded-For ou True-Client-IP
.
Même si votre serveur n'utilise pas actuellement l'adresse IP des utilisateurs, il est possible que la situation change à l'avenir. Pour cette raison, nous vous recommandons de faire ces changements dans tous les cas. Vous n'encourrez aucun risque à faire ces modifications même si vous n'utilisez pas l'adresse IP des utilisateurs à ce jour.
Cet article a-t-il été utile ?
C'est super !
Merci pour votre commentaire
Désolé ! Nous n'avons pas pu vous être utile
Merci pour votre commentaire
Commentaires envoyés
Nous apprécions vos efforts et nous allons corriger l'article