Habilitar el encabezado XFF
Un problema común que encuentran nuestros clientes de Firewall de aplicaciones web (WAF) es que los registros del servidor de hosting muestran la misma dirección IP para todos los usuarios.
El WAF está en el medio de la comunicación entre los visitantes y el servidor de hosting para que pueda filtrar las solicitudes maliciosas. Debido a eso, la conexión se modifica y la IP de origen a nivel de red se muestra como la dirección IP del Firewall del sitio web y no como la del visitante.
Si tu aplicación necesita la dirección IP real del visitante, tienes opciones para que funcione. Con la ayuda del encabezado X-Forward-For (XFF), tu aplicación o servidor web se puede configurar para obtener la dirección IP del visitante correctamente.
- WordPress
- Aplicaciones PHP regulares
- Magento
- Tablero de IP
- vBulletin 4.2+
- PrestaShop
- Drupal
- WHMCS
- CodeIgniter
- Apache
- NGINX
- IIS usando registro avanzado
- LiteSpeed
WordPress
Instala y activa el complemento oficial de Sucuri .
Aplicaciones PHP regulares
Agrega el siguiente código al archivo de configuración de tu aplicación:
if (isset ($ _ SERVER ['HTTP_X_SUCURI_CLIENTIP'])) {$ _SERVER ["REMOTE_ADDR"] = $ _SERVER ['HTTP_X_SUCURI_CLIENTIP']; }
Magento
- 1.x
Coloca el siguiente código en tu archivo /app/etc/local.xml dentro del global > /global > alcance:
remote_addr_headers > !- enumera los encabezados que contienen la IP real del cliente si el servidor web está detrás de un proxy inverso- > encabezado1 > HTTP_X_SUCURI_CLIENTIP /header1 > /remote_addr_headers >
Recomendamos traducir la IP del visitante utilizando los métodos de nivel de servidor web que se enumeran a continuación para Apache, NGINX, LiteSpeed e IIS
Si no puedes hacer esto, el siguiente artículo (úsalo bajo tu propio riesgo) podría ayudarte:
https://dev98.de/2017/01/02/how-to-add-alternative-http-headers-to-magento-2/Tablero de IP
Configuración: Seguridad y privacidad - > "Habilitar la coincidencia de IP X_FORWARDED_FOR" establecido en 'sí'.
vBulletin 4.2+
Si está utilizando vBulletin 4.2 o una versión posterior, se ha agregado una función para permitir su uso detrás de un proxy como Firewall. Mira dentro de tu archivo /includes/config.php para el siguiente código:
/* #### IP de proxy inverso #### Si usas un sistema donde la dirección IP principal pasada a vBulletin es la dirección de un servidor proxy y la dirección IP 'real' real se pasa en otro encabezado http, ingresa los detalles aquí * / / * Ingresa tus servidores proxy conocidos [confiables] aquí. Puedes listar múltiples IP confiables separadas por comas.*/// $ config ['Misc'] ['proxyiplist'] = '127.0.0.1, 192.168.1.6'; /* Si la IP real se pasa en una variable de encabezado http diferente a HTTP_X_FORWARDED_FOR, entonces puedes establecer el nombre aquí; */// $ config ['Misc'] ['proxyipheader'] = 'HTTP_X_FORWARDED_FOR';
Y modificarlo a lo siguiente para que funcione con nuestro firewall:
/* #### IP de proxy inverso #### Si usas un sistema donde la dirección IP principal pasada a vBulletin es la dirección de un servidor proxy y la dirección IP 'real' real se pasa en otro encabezado http, ingresa los detalles aquí * / / * Ingresa tus servidores proxy conocidos [confiables] aquí. Puedes listar múltiples IP confiables separadas por comas.*/ $ 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 la IP real se pasa en una variable de encabezado http diferente a HTTP_X_FORWARDED_FOR, entonces puedes establecer el nombre aquí; */ $ config ['Misc'] ['proxyipheader'] = 'HTTP_X_SUCURI_CLIENTIP';
Si no puedes encontrar ese código dentro de tu archivo /includes/config.php , puedes agregarlo al final del archivo. Asegúrate de eliminar el // al principio de las 2 líneas que contienen las direcciones IP y la línea del encabezado.
PrestaShop
Crea el archivo /override/classes/Tools.php con el contenido:
? php class Tools amplía ToolsCore { / ** * Obtiene la variable de servidor REMOTE_ADDR, o la primera ip de HTTP_X_FORWARDED_FOR (cuando se usa proxy) * * @return string $ remote_addr ip of client * / public static function getRemoteAddr () {// This La condición es necesaria al usar CDN, no la elimines. if (isset ($ _ SERVER ['HTTP_X_SUCURI_CLIENTIP']) AND $ _SERVER ['HTTP_X_SUCURI_CLIENTIP']) {if (strpos ($ _ SERVER ['HTTP_X_SUCURI_CLIENTIP'], ',')) {$ ips = explotar (',', _SERVER ['HTTP_X_SUCURI_CLIENTIP']); return $ ips [0]; } si no, devuelve $ _SERVER ['HTTP_X_SUCURI_CLIENTIP']; } return $ _SERVER ['REMOTE_ADDR']; }}
y elimina el archivo /cache/class_index.php .
Drupal
Agrega el código PHP en el archivo settings.php :
if (isset ($ _ SERVER ['HTTP_X_SUCURI_CLIENTIP'])) {$ _SERVER ["REMOTE_ADDR"] = $ _SERVER ['HTTP_X_SUCURI_CLIENTIP']; }
WHMCS
-
Agrega el código PHP en el archivo configuration.php :
if (isset ($ _ SERVER ['HTTP_X_SUCURI_CLIENTIP'])) {$ _SERVER ["REMOTE_ADDR"] = $ _SERVER ['HTTP_X_SUCURI_CLIENTIP']; }
-
En el administrador de WHMCS, ve a Configuración - > Seguridad - > Proxies de confianza y agrega cada uno de los siguientes rangos de IP:
192.88.134.0/23 185.93.228.0/22 66.248.200.0/22 208.109.0.0/22 2a02: fe80 ::/29 _ (en caso de compatibilidad con IPv6) _
- En el campo "Encabezado de IP de proxy", inserta HTTP_X_SUCURI_CLIENTIP y guarda los cambios.
CodeIgniter
Agrega el código PHP en el archivo 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 y versiones posteriores generalmente vienen con mod_remoteip instalado, solo necesitas habilitarlo. Si mod_remoteip no se ha incluido en tu instalación de Apache, puedes descargarlo aquí: mod_remoteip .
Si estás usando cPanel/WHM, puedes instalar mod_remoteip con " yum -y install ea-apache24-mod_remoteip ".
Una vez instalado mod_remoteip, debes agregar las siguientes líneas en su archivo de configuración. Normalmente el archivo de configuración sería /etc/apache/conf-available/remoteip.conf , pero si estás usando cPanel/WHM, sería /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 # esta línea se puede eliminar si IPv6 está deshabilitado
Si funciona, intenta cambiar RemoteIPHeader X-FORWARDED-FOR a RemoteIPHeader X_FORWARDED_FOR .
También puedes agregar la siguiente línea en tu archivo /usr/local/apache/conf/includes/post_virtualhost_global.conf y reiniciar Apache, si quieres ver la dirección IP del visitante en los registros de Apache:
LogFormat "%{X-Forwarded-For} i %h %l %u %t \ " %r \" % > s %b \ "%{Referer} yo \ "\"%{User-Agent} i \ "" combinado
NGINX
Después de habilitar ngx_http_realip_module, agrega lo siguiente a tu configuración de nginx:
# Definir el encabezado con la IP del cliente original real_ip_header X-Fordered-For; # Definir IP de firewall confiables 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; # esta línea se puede eliminar si IPv6 está deshabilitado
IIS usando registro avanzado
Detalles aquí .
LiteSpeed
En el Panel de administración web de LiteSpeed, ve a Configuración - > Servidor - > Configuración general y establece Usar IP del cliente en el encabezado en 'Sí'.
Para evitar conflictos con la limitación de velocidad de LiteSpeed, agrega también los rangos de IP de Sucuri Firewall en la Lista de permitidos . Ve a Configuración - > Servidor - > Seguridad - > Lista de permitidos y agrega las siguientes direcciones IP:
192.88.134.0/23T, 185.93.228.0/22T, 66.248.200.0/22T, 208.109.0.0/22T, 2a02: fe80 ::/29T
Nota: Si tienes problemas con las direcciones IPv6 (2a02: fe80 ::/29), y no tienes ninguna dirección IPv6 asignada a tu hosting, debes eliminar esas líneas de cualquier directiva.
Más información
- Modos SSL para el Firewall de aplicaciones web (WAF)
- Si tienes problemas, te recomendamos que consultes con el desarrollador de tu sitio web para obtener más ayuda con la implementación del encabezado XFF.