Activation de l'en-tête XFF
Un problème courant que rencontrent nos clients WAF (Web Application Firewall) est que les journaux de leur serveur d’hébergement affichent la même adresse IP pour tous les utilisateurs.
Le WAF est au milieu de la communication entre les visiteurs et le serveur d'hébergement afin de filtrer les demandes malveillantes. Pour cette raison, la connexion est modifiée et l'IP source au niveau du réseau est affichée comme adresse IP du pare-feu de site Web et non comme adresse IP du visiteur.
Si votre application a besoin de la véritable adresse IP du visiteur, vous disposez de plusieurs options pour la faire fonctionner. À l'aide de l'en-tête X-Forwarded-For (XFF), votre application ou serveur Web peut être configuré pour obtenir l'adresse IP du visiteur correctement.
- WordPress
- Applications PHP standard
- Magento
- Conseil IP
- vBulletin 4.2+
- PrestaShop
- Drupal
- WHMCS
- CodeIgniter
- Apache
- NGINX
- IIS utilisant la journalisation avancée
- LiteSpeed
WordPress
Installez et activez le plug- in Sucuri officiel.
Applications PHP standard
Ajoutez le code suivant dans le fichier de configuration de votre application:
if (isset ($ _ SERVER ['HTTP_X_SUCURI_CLIENTIP'])) {$ _SERVER ["REMOTE_ADDR"] = $ _SERVER ['HTTP_X_SUCURI_CLIENTIP']; }
Magento
- 1.x
Placez le code suivant dans votre fichier /app/etc/local.xml à l'intérieur du global > / global > portée:
remote_addr_headers > ! - Liste des en-têtes qui contiennent une adresse IP client réelle si le serveur Web est derrière un proxy inverse - > en-tête1 > HTTP_X_SUCURI_CLIENTIP / en-tête1 > / remote_addr_headers >
Nous recommandons de traduire l'adresse IP du visiteur à l'aide des méthodes au niveau du serveur Web répertoriées ci-dessous pour Apache, NGINX, LiteSpeed et IIS.
Si vous ne pouvez pas le faire, l'article suivant (utilisez-le à vos risques et périls) pourrait vous aider:
https://dev98.de/2017/01/02/how-to-add-alternative-http-headers-to-magento-2/Conseil IP
Paramètres: Sécurité et confidentialité - > «Activer la correspondance IP X_FORWARDED_FOR» défini sur «oui».
vBulletin 4.2+
Si vous utilisez vBulletin 4.2 ou plus récent, ils ont ajouté une fonctionnalité pour permettre une utilisation derrière un proxy comme le pare-feu. Recherchez le code suivant dans votre fichier /includes/config.php :
/ * #### Reverse Proxy IP #### Si vous utilisez un système dans lequel l'adresse IP principale transmise à vBulletin est l'adresse d'un serveur proxy et que la véritable adresse IP est transmise dans un autre en-tête http, alors vous entrez les détails ici * / / * Entrez vos serveurs proxy connus [de confiance] ici. Vous pouvez lister plusieurs adresses IP de confiance séparées par une virgule. * / // $ config ['Misc'] ['proxyiplist'] = '127.0.0.1, 192.168.1.6'; / * Si l'adresse IP réelle est passée dans une variable d'en-tête http autre que HTTP_X_FORWARDED_FOR, vous pouvez définir le nom ici; * / // $ config ['Misc'] ['proxyipheader'] = 'HTTP_X_FORWARDED_FOR';
Et modifiez-le comme suit pour qu'il fonctionne avec notre pare-feu:
/ * #### Reverse Proxy IP #### Si vous utilisez un système dans lequel l'adresse IP principale transmise à vBulletin est l'adresse d'un serveur proxy et que la véritable adresse IP est transmise dans un autre en-tête http, alors vous entrez les détails ici * / / * Entrez vos serveurs proxy connus [de confiance] ici. Vous pouvez lister plusieurs adresses IP de confiance séparées par une virgule. * / $ Config ['Misc'] ['proxyiplist'] = '192.88.134.2, 192.88.134.3, 192.88.134.4, 192.88.134.5, 192.88.134.6, 192.88.134.7 , 192.88.134.8, 192.88.134.9, 192.88.134.10, 192.88.134.11, 192.88.134.12, 192.88.134.13, 192.88.134.14, 192.88.134.15, 192.88.134.16, 192.88.134.17, 192.88.134.18, 192.88.134.19, 192.88 .134.20, 192.88.134.21, 192.88.135.2, 192.88.135.3, 192.88.135.4, 192.88.135.5, 192.88.135.6, 192.88.135.7, 192.88.135.8, 192.88.135.9, 192.88.135.10, 192.88.135.11, 192.88.135.12 , 192.88.135.13, 192.88.135.14, 192.88.135.15, 192.88.135.16, 192.88.135.17, 192.88.135.18, 192.88.135.19, 192.88.135.20, 192.88.135.21, 185.93.228.2, 185.93.228.3, 185.93.228.4, 185.93 .228.5, 185.93.228.6, 185.93.228.7, 185.93.228.8, 185.93.228.9, 185.93.228.10, 185.93.228.11, 185.93.228.12, 185.93.228.13, 185.93.228.14, 185.93.228.15, 185.93.228.16, 185.93. 228.17, 185.93.228.18, 185.93.228.19, 185.93.228.20, 185.93.228.21, 185.93.229.2, 185.93.229.3, 185 .93.229.4, 185.93.229.5, 185.93.229.6, 185.93.229.7, 185.93.229.8, 185.93.229.9, 185.93.229.10, 185.93.229.11, 185.93.229.12, 185.93.229.13, 185.93.229.14, 185.93.229.15, 185.93 .229.16, 185.93.229.17, 185.93.229.18, 185.93.229.19, 185.93.229.20, 185.93.229.21, 185.93.230.2, 185.93.230.3, 185.93.230.4, 185.93.230.5, 185.93.230.6, 185.93.230.7, 185.93.230.8 , 185.93.230.9, 185.93.230.10, 185.93.230.11, 185.93.230.12, 185.93.230.13, 185.93.230.14, 185.93.230.15, 185.93.230.16, 185.93.230.17, 185.93.230.18, 185.93.230.19, 185.93.230.20, 185.93 .230.21, 185.93.231.2, 185.93.231.3, 185.93.231.4, 185.93.231.5, 185.93.231.6, 185.93.231.7, 185.93.231.8, 185.93.231.9, 185.93.231.10, 185.93.231.11, 185.93.231.12, 185.93.231.13 , 185.93.231.14, 185.93.231.15, 185.93.231.16, 185.93.231.17, 185.93.231.18, 185.93.231.19, 185.93.231.20, 185.93.231.21, 66.248.201.2, 66.248.201.3, 66.248.201.4, 66.248.201.5, 66.248 .201.6, 66.248.201.7, 66.248.201.8, 66.248.201.9, 66.248.201.10, 66.248.201.11, 66.248.201.12 , 66.248.201.13, 66.248.201.14, 66.248.201.15, 66.248.201.16, 66.248.201.17, 66.248.201.18, 66.248.201.19, 66.248.201.20, 66.248.201.21, 66.248.202.2, 66.248.202.3, 66.248.202.4, 66.248 .202.5, 66.248.202.6, 66.248.202.7, 66.248.202.8, 66.248.202.9, 66.248.202.10, 66.248.202.11, 66.248.202.12, 66.248.202.13, 66.248.202.14, 66.248.202.15, 66.248.202.16, 66.248.202.17 , 66.248.202.18, 66.248.202.19, 66.248.202.20, 66.248.202.21, 66.248.203.2, 66.248.203.3, 66.248.203.4, 66.248.203.5, 66.248.203.6, 66.248.203.7, 66.248.203.8, 66.248.203.9, 66.248 .203.10, 66.248.203.11, 66.248.203.12, 66.248.203.13, 66.248.203.14, 66.248.203.15, 66.248.203.16, 66.248.203.17, 66.248.203.18, 66.248.203.19, 66.248.203.20, 66.248.203.21, 66.248.200.2 , 66.248.200.3, 66.248.200.4, 66.248.200.5, 66.248.200.6, 66.248.200.7, 66.248.200.8, 66.248.200.9, 66.248.200.10, 66.248.200.11, 66.248.200.12, 66.248.200.13, 66.248.200.14, 66.248 .200.15, 66.248.200.16, 66.248.200.17, 66.248.200.18, 66.248.200.19, 66.248.200.20, 66 .248.200.21 »; / * Si l'adresse IP réelle est passée dans une variable d'en-tête http autre que HTTP_X_FORWARDED_FOR, vous pouvez définir le nom ici; * / $ config ['Misc'] ['proxyipheader'] = 'HTTP_X_SUCURI_CLIENTIP';
Si vous ne trouvez pas ce code dans votre fichier /includes/config.php , vous pouvez simplement l'ajouter au bas du fichier. Veillez à supprimer le // au début des 2 lignes contenant les adresses IP et la ligne d'en-tête.
PrestaShop
Créez le fichier /override/classes/Tools.php avec le contenu:
? php class Tools étend ToolsCore {/ ** * Récupère la variable serveur REMOTE_ADDR, ou la première adresse IP de HTTP_X_FORWARDED_FOR (lors de l'utilisation du proxy) * * @return string $ remote_addr ip of client * / public static function getRemoteAddr () {// This condition est nécessaire lors de l'utilisation de CDN, ne le supprimez pas. if (isset ($ _ SERVER ['HTTP_X_SUCURI_CLIENTIP']) AND $ _SERVER ['HTTP_X_SUCURI_CLIENTIP']) {if (strpos ($ _ SERVER ['HTTP_X_SUCURI_CLIENTIP'], ',')) {$ ips = exploser (',') _SERVER ['HTTP_X_SUCURI_CLIENTIP']); retourne $ ips [0]; } else return $ _SERVER ['HTTP_X_SUCURI_CLIENTIP']; } return $ _SERVER ['REMOTE_ADDR']; }}
et supprimez le fichier /cache/class_index.php .
Drupal
Ajoutez le code PHP dans le fichier settings.php :
if (isset ($ _ SERVER ['HTTP_X_SUCURI_CLIENTIP'])) {$ _SERVER ["REMOTE_ADDR"] = $ _SERVER ['HTTP_X_SUCURI_CLIENTIP']; }
WHMCS
-
Ajoutez le code PHP dans le fichier configuration.php :
if (isset ($ _ SERVER ['HTTP_X_SUCURI_CLIENTIP'])) {$ _SERVER ["REMOTE_ADDR"] = $ _SERVER ['HTTP_X_SUCURI_CLIENTIP']; }
-
Sur l'administrateur WHMCS, accédez à Paramètres - > Sécurité - > Proxy de confiance et ajoutez chacune des plages d'adresses IP suivantes:
192.88.134.0/23 185.93.228.0/22 66.248.200.0/22 208.109.0.0/22 2a02: fe80 :: / 29 _ (en cas de support IPv6) _
- Dans le champ «En-tête IP du proxy», insérez HTTP_X_SUCURI_CLIENTIP et enregistrez les modifications.
CodeIgniter
Ajoutez le code PHP dans le fichier index.php :
if (isset ($ _ SERVER ['HTTP_X_SUCURI_CLIENTIP'])) {$ _SERVER ["REMOTE_ADDR"] = $ _SERVER ['HTTP_X_SUCURI_CLIENTIP']; }
Apache
- 2.2
- 2.4+
Apache 2.4 et supérieur est généralement livré avec mod_remoteip installé, il vous suffit de l'activer. Si mod_remoteip n'a pas été inclus dans votre installation Apache, vous pouvez le télécharger ici: mod_remoteip .
Si vous utilisez cPanel / WHM, mod_remoteip peut être installé avec « yum -y install ea-apache24-mod_remoteip ».
Une fois mod_remoteip installé, vous devez ajouter les lignes suivantes dans son fichier de configuration. En général, le fichier de configuration est /etc/apache/conf-available/remoteip.conf , mais si vous utilisez cPanel / WHM, ce sera /etc/apache2/conf.modules.d/370_mod_remoteip.conf .
RemoteIPHeader X-FORWARDED-FOR RemoteIPTrustedProxy 192.88.134.0/23 RemoteIPTrustedProxy 185.93.228.0/22 RemoteIPTrustedProxy 66.248.200.0/22 RemoteIPTrustedProxy 208.109.0.0/22 RemoteIPTrustedProxy 2a02: fe80 :: / 29 # cette ligne peut être supprimée si IPv6
Si cela fonctionne, essayez de remplacer RemoteIPHeader X-FORWARDED-FOR par RemoteIPHeader X_FORWARDED_FOR .
Vous pouvez également ajouter la ligne suivante dans votre fichier /usr/local/apache/conf/includes/post_virtualhost_global.conf et redémarrer Apache, si vous souhaitez voir l'adresse IP du visiteur dans les journaux Apache:
LogFormat "%{X-Forwarded-For} i% h% l% u% t \ "% r \"% > s% b \ "%{Referer} i \ "\"%{User-Agent} i \ "" combiné
NGINX
Après avoir activé ngx_http_realip_module, ajoutez ce qui suit à votre configuration nginx:
# Définir l'en-tête avec l'IP du client original real_ip_header X-Forwarded-For; # Définir les adresses IP de confiance du pare-feu set_real_ip_from 192.88.134.0/23; set_real_ip_from 185.93.228.0/22; set_real_ip_from 66.248.200.0/22; set_real_ip_from 208.109.0.0/22; set_real_ip_from 2a02: fe80 :: / 29; # cette ligne peut être supprimée si IPv6 est désactivé
IIS utilisant la journalisation avancée
Détails ici .
LiteSpeed
Dans le panneau d'administration Web LiteSpeed, accédez à Configuration - > Serveur - > Paramètres généraux et définissez Utiliser l'adresse IP du client dans l'en-tête sur Oui.
Pour éviter les conflits avec la limitation de débit LiteSpeed, ajoutez également les plages d'adresses IP du pare-feu Sucuri dans la liste Autorisée . Accédez à Configuration - > Serveur - > Sécurité - > Liste autorisée et ajoutez les adresses IP suivantes:
192.88.134.0/23T, 185.93.228.0/22T, 66.248.200.0/22T, 208.109.0.0/22T, 2a02: fe80 :: / 29T
Remarque: si vous rencontrez des problèmes avec les adresses IPv6 (2a02: fe80 :: / 29) et qu'aucune adresse IPv6 n'est affectée à votre hébergement, vous devez supprimer ces lignes de toute directive.
En savoir plus
- Modes SSL pour le pare-feu d’application Web (WAF)
- Si vous êtes bloqué, nous vous recommandons de consulter le développeur de votre site Web pour obtenir de l'aide sur la mise en œuvre de l'en-tête XFF.