Dirección IP reenviada - AWS WAF, AWS Firewall Manager, y AWS Shield Advanced

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Dirección IP reenviada

Esta sección se aplica a las instrucciones de reglas que utilizan la dirección IP de una solicitud web. De forma predeterminada, AWS WAF utiliza la dirección IP del origen de la solicitud web. Si el tráfico pasa por uno o más proxies o equilibradores de carga, el origen de la solicitud web contiende la dirección del último proxy y no la dirección de origen del cliente. En este caso, la dirección del cliente originario normalmente se reenvía en otro encabezado HTTP. Este encabezado suele ser X-Forwarded-For (XFF), pero puede ser diferente.

Instrucciones de reglas que usan direcciones IP

Las instrucciones de reglas que utilizan direcciones IP son las siguientes:

  • Coincidencia de conjuntos de IP: inspecciona la dirección IP para ver si coincide con las direcciones definidas en un conjunto de IP.

  • Coincidencia geográfica: utiliza la dirección IP para determinar el país y la región de origen, y compara el país de origen con una lista de países.

  • Instrucción de regla basada en frecuencia: puede agregar las solicitudes por sus direcciones IP para garantizar que ninguna dirección IP individual envíe solicitudes a una tasa demasiado alta. Puede utilizar la agregación de direcciones IP por sí sola o en combinación con otras claves de agregación.

Puedes AWS WAF indicarle que utilices una dirección IP reenviada para cualquiera de estas instrucciones de regla, ya sea desde el X-Forwarded-For encabezado o desde otro encabezado HTTP, en lugar de utilizar el origen de la solicitud web. Para obtener más información sobre cómo proporcionar las especificaciones, consulte la guía para cada tipo de instrucción de regla individual.

nota

Si el encabezado que especificas no está presente en la solicitud, AWS WAF no se aplica en absoluto la regla a la solicitud web.

Comportamiento alternativo

Cuando utilizas la dirección IP reenviada, indicas el estado de coincidencia AWS WAF que deseas asignar a la solicitud web si la solicitud no tiene una dirección IP válida en la posición especificada:

  • COINCIDIR: considera que la solicitud web coincide con el enunciado de la regla. AWS WAF aplica la acción de la regla a la solicitud.

  • SIN COINCIDENCIA: trate la solicitud web como no coincidente con la instrucción de regla.

Direcciones IP utilizadas en AWS WAF Bot Control

El grupo de reglas gestionado por Bot Control verifica los bots mediante las direcciones IP de AWS WAF. Si utiliza el control de bots y ha verificado bots enrutados a través de un proxy o un equilibrador de carga, debe permitirlos de forma explícita mediante una regla personalizada. Por ejemplo, puede configurar una regla de coincidencia de conjuntos de IP personalizada que utilice las direcciones IP reenviadas para detectar y admitir sus bots verificados. Puede usar la regla para personalizar la administración de los bots de varias maneras. Para obtener más información y ejemplos, consulte AWS WAF Control de bots.

Consideraciones generales sobre el uso de direcciones IP reenviadas

Antes de utilizar una dirección IP reenviada, tenga en cuenta las siguientes advertencias generales:

  • Los proxies pueden modificar un encabezado a lo largo del proceso y los proxies pueden gestionar el encabezado de diferentes maneras.

  • Los atacantes pueden alterar el contenido del encabezado en un intento de eludir las inspecciones de AWS WAF .

  • La dirección IP incluida en el encabezado puede tener un formato incorrecto o no ser válida.

  • Es posible que el encabezado que especifique no esté presente en absoluto en una solicitud.

Consideraciones sobre el uso de direcciones IP reenviadas con AWS WAF

En la siguiente lista se describen los requisitos y las advertencias para el uso de direcciones IP reenviadas en AWS WAF:

  • Para cualquier regla individual, puede especificar un encabezado para la dirección IP reenviada. La especificación del encabezado no distingue entre mayúsculas y minúsculas.

  • En el caso de las instrucciones de reglas basadas en tasas, las instrucciones de alcance anidadas no heredan la configuración de IP reenviada. Especifique la configuración de cada instrucción que utilice una dirección IP reenviada.

  • Para las reglas de concordancia geográfica y basadas en tasas, AWS WAF usa la primera dirección del encabezado. Por ejemplo, si un encabezado contiene usos 10.1.1.1, 127.0.0.0, 10.10.10.10 AWS WAF 10.1.1.1

  • En el caso de la coincidencia de conjuntos de IP, debe indicar si debe coincidir con la primera, la última o con cualquier otra dirección del encabezado. Si especifica alguno, AWS WAF inspecciona todas las direcciones del encabezado para ver si coinciden, hasta un máximo de 10 direcciones. Si el encabezado contiene más de 10 direcciones, AWS WAF inspecciona las 10 últimas.

  • Los encabezados que contienen varias direcciones deben usar una coma de separación entre las direcciones. Si una solicitud utiliza un separador que no sea una coma, AWS WAF considera que las direcciones IP del encabezado tienen un formato incorrecto.

  • Si las direcciones IP incluidas en el encabezado tienen un formato incorrecto o no son válidas, AWS WAF indica que la solicitud web coincide con la regla o no coincide, de acuerdo con el comportamiento alternativo que especifique en la configuración de IP reenviada.

  • Si el encabezado que especificas no está presente en una solicitud, AWS WAF no se aplica en absoluto la regla a la solicitud. Esto significa que AWS WAF no aplica la acción de la regla ni el comportamiento alternativo.

  • Una instrucción de regla que utilice un encabezado IP reenviado como dirección IP no utilizará la dirección IP indicada por el origen de la solicitud web.

Prácticas recomendadas para usar direcciones IP reenviadas con AWS WAF

Al utilizar direcciones IP reenviadas, siga las siguientes prácticas recomendadas:

  • Considera detenidamente todos los estados posibles de los encabezados de sus solicitudes antes de habilitar la configuración de IP reenviada. Es posible que tenga que usar más de una regla para obtener el comportamiento que desea.

  • Para inspeccionar varios encabezados IP reenviados o para inspeccionar el origen de una solicitud web y un encabezado IP reenviado, use una regla para cada origen de direcciones IP.

  • Para bloquear las solicitudes web que tengan un encabezado no válido, defina la acción de regla para bloquear y establezca el comportamiento alternativo para que coincida con la configuración de IP reenviada.

Ejemplo de JSON para direcciones IP reenviadas

La siguiente instrucción de coincidencia geográfica solo coincide si el encabezado X-Forwarded-For contiene una IP cuyo país de origen es US:

{ "Name": "XFFTestGeo", "Priority": 0, "Action": { "Block": {} }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "XFFTestGeo" }, "Statement": { "GeoMatchStatement": { "CountryCodes": [ "US" ], "ForwardedIPConfig": { "HeaderName": "x-forwarded-for", "FallbackBehavior": "MATCH" } } } }

La siguiente regla basada en tasas agrega las solicitudes en función de la primera IP del encabezado X-Forwarded-For. La regla solo cuenta las solicitudes que coinciden con la instrucción de coincidencia geográfica anidada y solo bloquea las solicitudes que coinciden con la instrucción de coincidencia geográfica. La instrucción de coincidencia geográfica anidada también utiliza el encabezado X-Forwarded-For para determinar si la dirección IP indica un país de origen de US. Si es así, o si el encabezado está presente pero tiene un formato incorrecto, la instrucción de coincidencia geográfica devuelve una coincidencia.

{ "Name": "XFFTestRateGeo", "Priority": 0, "Action": { "Block": {} }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "XFFTestRateGeo" }, "Statement": { "RateBasedStatement": { "Limit": "100", "AggregateKeyType": "FORWARDED_IP", "ScopeDownStatement": { "GeoMatchStatement": { "CountryCodes": [ "US" ], "ForwardedIPConfig": { "HeaderName": "x-forwarded-for", "FallbackBehavior": "MATCH" } } }, "ForwardedIPConfig": { "HeaderName": "x-forwarded-for", "FallbackBehavior": "MATCH" } } } }