Protección del tráfico a los orígenes de Azure Front Door
Artículo
Las características de Front Door funcionan mejor cuando el tráfico solo fluye a través de Front Door. Debe configurar el origen para bloquear el tráfico que no se ha enviado a través de Front Door. De lo contrario, el tráfico podría omitir el firewall de aplicaciones web de Front Door, la protección contra DDoS y otras características de seguridad.
Nota
En este artículo, los términos origen y grupo de orígenes hacen referencia, respectivamente, al back-end y al grupo de back-end de la configuración de Azure Front Door (clásico).
Front Door proporciona varios enfoques que puede usar para restringir el tráfico de origen.
Debe configurar el origen para no permitir el tráfico que no pasa por Private Link. La forma en que restringe el tráfico depende del tipo de origen de Private Link que use:
Los equilibradores de carga internos con el servicio Azure Private Link no se pueden enrutar públicamente. También puede configurar grupos de seguridad de red para asegurarse de no permitir el acceso a la red virtual desde Internet.
Orígenes basados en direcciones IP públicas
Al usar orígenes basados en direcciones IP públicas, hay dos enfoques que debe usar juntos para asegurarse de que el tráfico fluye a través de la instancia de Front Door:
Configure el filtrado de direcciones IP para asegurarse de que las solicitudes al origen solo se aceptan desde los intervalos de direcciones IP de Front Door.
Configure la aplicación para comprobar el valor de encabezado X-Azure-FDID, que Front Door adjunta a todas las solicitudes al origen y asegúrese de que su valor coincida con el identificador de Front Door.
Filtrado de dirección IP
Configure el filtrado de dirección IP de los orígenes para que acepten tráfico únicamente del espacio de direcciones IP de back-end de Azure Front Door y de los servicios de infraestructura de Azure.
La etiqueta de servicio AzureFrontDoor.Backend proporciona una lista de las direcciones IP que Usa Front Door para conectarse a sus orígenes. Puede usar esta etiqueta de servicio dentro de las reglas del grupo de seguridad de red. También puede descargar el conjunto de datos de intervalos IP y etiquetas de servicio de Azure , que se actualiza periódicamente con las direcciones IP más recientes.
También debe permitir el tráfico desde los servicios básicos de infraestructura de Azure a través de las direcciones IP de host virtualizadas 168.63.129.16 y 169.254.169.254.
Advertencia
El espacio de direcciones IP de Front Door cambia periódicamente. Asegúrese de usar la etiqueta de servicio AzureFrontDoor.Backend en lugar de las direcciones IP de codificación rígida.
Identificador de Front Door
El filtrado de direcciones IP por sí solo no es suficiente para proteger el tráfico a su origen, ya que otros clientes de Azure usan las mismas direcciones IP. También debe configurar el origen para asegurarse de que el tráfico se ha originado en su perfil de Front Door.
Azure genera un identificador único para cada perfil de Front Door. Para encontrar el identificador en Azure Portal, busque el valor del identificador de Front Door en la página Información general del perfil.
Cuando Front Door realiza una solicitud al origen, agrega el encabezado de solicitud X-Azure-FDID. El origen debe inspeccionar el encabezado en las solicitudes entrantes y rechazar las solicitudes en las que el valor no coincide con el identificador del perfil de Front Door.
Ejemplo de configuración
En los ejemplos siguientes se muestra cómo proteger diferentes tipos de orígenes.
Puede usar las restricciones de acceso de App Service para realizar el filtrado de direcciones IP, así como el filtrado de encabezados. La plataforma proporciona la funcionalidad y no es necesario cambiar la aplicación ni el host.
Application Gateway se implementa en la red virtual. Configure una regla de grupo de seguridad de red para permitir el acceso entrante en los puertos 80 y 443 desde la etiqueta de servicio AzureFrontDoor.Backend y no permitir el tráfico entrante en los puertos 80 y 443 desde la etiqueta de servicio Internet.
Para configurar el enrutamiento de tráfico en Azure Kubernetes Service (AKS) con Puerta de enlace de aplicaciones para contenedores, configure una regla HTTPRoute para que coincida con el tráfico entrante de Azure Front Door mediante el encabezado X-Azure-FDID.
Al ejecutar Microsoft Internet Information Services (IIS) en una máquina virtual hospedada en Azure, debe crear un grupo de seguridad de red en la red virtual que hospeda la máquina virtual. Configure una regla de grupo de seguridad de red para permitir el acceso entrante en los puertos 80 y 443 desde la etiqueta de servicio AzureFrontDoor.Backend y no permitir el tráfico entrante en los puertos 80 y 443 desde la etiqueta de servicio Internet.
Use un archivo de configuración de IIS como en el ejemplo siguiente para inspeccionar el encabezado X-Azure-FDID en las solicitudes entrantes:
Al ejecutar AKS con un controlador de entrada NGINX, debe crear un grupo de seguridad de red en la red virtual que hospeda el clúster de AKS. Configure una regla de grupo de seguridad de red para permitir el acceso entrante en los puertos 80 y 443 desde la etiqueta de servicio AzureFrontDoor.Backend y no permitir el tráfico entrante en los puertos 80 y 443 desde la etiqueta de servicio Internet.
Use un archivo de configuración de entrada de Kubernetes como en el ejemplo siguiente para inspeccionar el encabezado X-Azure-FDID en las solicitudes entrantes:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: frontdoor-ingress
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/enable-modsecurity: "true"
nginx.ingress.kubernetes.io/modsecurity-snippet: |
SecRuleEngine On
SecRule &REQUEST_HEADERS:X-Azure-FDID \"@eq 0\" \"log,deny,id:106,status:403,msg:\'Front Door ID not present\'\"
SecRule REQUEST_HEADERS:X-Azure-FDID \"@rx ^(?!xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).*$\" \"log,deny,id:107,status:403,msg:\'Wrong Front Door ID\'\"
spec:
#section omitted on purpose
Demuestra las aptitudes necesarias para implementar controles de seguridad, mantener una posición de seguridad de la organización e identificar y corregir los puntos vulnerables de seguridad.