Configurar políticas de seguridad de perímetro de red

Las políticas de seguridad de perímetro de red te permiten configurar reglas para permitir o bloquear el tráfico en el perímetro de la red de Google. Puede configurar políticas de seguridad de perímetro de red para los siguientes tipos de frontend:

  • Balanceadores de carga de red de paso a través externos
  • Reenvío de protocolos
  • VMs con direcciones IP públicas

Puedes usar políticas de seguridad de perímetro de red para filtrar por intervalos de direcciones IP de origen y de destino de forma similar a Cloud Next Generation Firewall, pero sin consumir tus recursos. Además, una política de seguridad de perímetro de red es el único tipo de política de seguridad que admite el filtrado por desplazamiento de bytes.

Configurar reglas personalizadas para políticas de seguridad de perímetro de red

Al igual que las políticas de seguridad de backend y de Edge, puedes configurar reglas personalizadas para las políticas de seguridad de Edge de red. En el siguiente ejemplo, se crea una política de seguridad de borde de red, se configura una regla personalizada para permitir el tráfico solo desde un intervalo de direcciones IP de origen determinado y se adjunta la política al servicio de backend.

Las políticas de seguridad de perímetro de red admiten varios filtros de Cloud Armor, incluidos filtros únicos como el de desplazamiento de bytes. Para obtener más información sobre las funciones que admiten las políticas de seguridad de la red perimetral, consulta la descripción general de las políticas de seguridad. Además, puedes desplegar políticas de seguridad de perímetro de red en modo de vista previa.

Antes de continuar, debes registrarte en Google Cloud Armor Enterprise y configurar la protección avanzada contra DDoS en la red. No puedes usar reglas personalizadas para las políticas de seguridad de la periferia de la red sin una suscripción activa a Cloud Armor Enterprise y protección avanzada contra DDoS en la red.

Para configurar reglas personalizadas, sigue estos pasos:

  1. Crea una política de seguridad de perímetro de red con el nombre POLICY_NAME en la región REGION. No uses la misma política de seguridad que utilizaste cuando habilitaste la protección de red avanzada contra DDoS.

    gcloud compute security-policies create POLICY_NAME \
       --type=CLOUD_ARMOR_NETWORK \
       --region=REGION
    
  2. Cambia la regla predeterminada de tu política de allow a deny para bloquear el tráfico que no esté permitido explícitamente por otras reglas.

    gcloud compute security-policies rules update 2147483647 \
       --security-policy=POLICY_NAME \
       --action=deny \
       --region=REGION
    
  3. En la misma política de seguridad, añade una regla con la prioridad RULE_PRIORITY que permita las solicitudes en el intervalo de direcciones IP de origen RANGE.

    gcloud compute security-policies rules create RULE_PRIORITY \
       --security-policy=POLICY_NAME \
       --network-src-ip-ranges=RANGE \
       --action=allow \
       --region=REGION
    
  4. Asocia la política de seguridad a tu servicio de backend BACKEND_SERVICE_NAME.

    gcloud compute backend-services update BACKEND_SERVICE_NAME \
       --security-policy=POLICY_NAME \
       --region=REGION
    

    También puede asociar la política de seguridad a una sola instancia de VM con el siguiente comando:

    gcloud beta compute instances network-interfaces update VM_NAME \
       --security-policy=POLICY_NAME \
       --security-policy-region=REGION \
       --network-interface=NETWORK_INTERFACE \
       --zone=ZONE_NAME
    
  5. Opcional: Puedes verificar que la política de seguridad está adjunta con el siguiente comando. Si se realiza correctamente, el campo securityPolicy de la salida tiene un enlace al recurso de política de seguridad.

    gcloud compute instances describe VM_NAME --zone=ZONE_NAME
    

Después de crear el ejemplo anterior, puedes seguir añadiendo reglas a tu política de seguridad de perímetro de red con el comando security-policies rules update. Los campos admitidos para las políticas de seguridad de perímetro de red son los siguientes:

Campo Bandera Descripción
Dirección IP de origen --network-src-ip-ranges Direcciones IPv4/6 de origen o prefijos CIDR en formato de texto estándar.
Puertos de origen --network-src-ports Números de puerto de origen para TCP, UDP y SCTP. Cada elemento puede ser un número (de 16 bits) (como "80") o un intervalo (como "0-1023").
Códigos de región de origen --network-src-region-codes Código de país de dos letras (ISO 3166-1 alfa-2).
ASNs de origen --network-src-asns Número de sistema autónomo BGP de la dirección IP de origen.
Intervalos de direcciones IP de destino --network-dest-ip-ranges Direcciones IPv4/6 de destino o prefijos CIDR en formato de texto estándar.
Puertos de destino --network-dest-ports Números de puerto de destino para TCP, UDP y SCTP. Cada elemento puede ser un número (de 16 bits) (como "80") o un intervalo (como "0-1023").
Protocolos de direcciones IP --network-ip-protocols Protocolo IPv4 o encabezado siguiente de IPv6 (después de los encabezados de extensión). Cada elemento puede ser un número de 8 bits (como "6"), un intervalo (como "253-254") o uno de los siguientes nombres de protocolo:
  • tcp
  • udp
  • icmp
  • esp
  • ah
  • ipip
  • sctp
Filtrado por desplazamiento de bytes N/A Consulta la siguiente sección.

Cuando usas la marca --network-src-region-codes con una política de seguridad de la periferia de la red, puedes usar códigos de región para los siguientes territorios sujetos a sanciones integrales de EE. UU.:

Territorios Código asignado
Crimea XC
La autodenominada República Popular de Donetsk (RPD) y
la autodenominada República Popular de Luhansk (RPL)
XD

Configurar el filtrado por desplazamiento de bytes

Si usas balanceadores de carga de red de tipo pasarela externos, reenvío de protocolos o máquinas virtuales con direcciones IP públicas, Cloud Armor puede realizar una inspección profunda de paquetes en el tráfico entrante. Puede configurar una regla de política de seguridad que coincida con un valor de desplazamiento de bytes TCP/UDP específico. Puede configurar la regla para que aplique la acción de la regla cuando el valor configurado esté presente o, por el contrario, cuando no lo esté.

En el siguiente ejemplo, se permite el tráfico cuando el valor está presente y se deniega el resto:

  1. Crea una política de seguridad de perímetro de red. Puedes saltarte este paso si ya tienes una política de seguridad de perímetro de red.

    gcloud compute security-policies create POLICY_NAME \
       --type=CLOUD_ARMOR_NETWORK \
       --region=REGION_NAME
    
  2. Actualiza tu política de seguridad perimetral de red para añadir campos definidos por el usuario con los siguientes parámetros:

    • Base: el valor puede ser IPv4, IPv6, TCP o UDP
    • Desplazamiento: desplazamiento del campo desde la base en bytes.
    • Tamaño: tamaño del campo en bytes (el valor máximo es 4).
    • Máscara: la máscara de los bits del campo que se van a comparar.

    Puedes usar hasta ocho campos definidos por el usuario por política. En el siguiente ejemplo, se crean dos campos definidos por el usuario.

    gcloud compute security-policies add-user-defined-field POLICY_NAME \
       --user-defined-field-name=USER_DEFINED_FIELD_NAME_TCP \
       --base=TCP \
       --offset=OFFSET \
       --size=SIZE \
       --mask=MASK \
       --region=REGION_NAME
    
    gcloud compute security-policies add-user-defined-field POLICY_NAME \
       --user-defined-field-name=USER_DEFINED_FIELD_NAME_UDP \
       --base=UDP \
       --offset=OFFSET \
       --size=SIZE \
       --mask=MASK \
       --region=REGION_NAME
    
  3. En tu política de seguridad de edge de la red, añade una regla con el mismo nombre de campo personalizado que has usado en el ejemplo anterior. Sustituye VALUE1 y VALUE2 por valores que coincidan con el tráfico que quieras permitir.

    gcloud compute security-policies rules create RULE_PRIORITY \
       --security-policy=POLICY_NAME \
       --network-user-defined-fields="USER_DEFINED_FIELD_NAME_TCP;VALUE1:VALUE2,USER_DEFINED_FIELD_NAME_UDP;VALUE1:VALUE2,USER_DEFINED_FIELD_NAME_UDP;VALUE1,VALUE2" \
       --action=allow \
       --region=REGION_NAME
    
  4. Define la regla predeterminada de tu política de seguridad perimetral de red como una regla de denegación. Puedes saltarte este paso si la regla predeterminada de tu política de seguridad ya es una regla de denegación.

    gcloud compute security-policies rules update 2147483647 \
       --security-policy=POLICY_NAME \
       --action=deny \
       --region=REGION_NAME
    
  5. Asocia tu política de seguridad de perímetro de red con el servicio de backend de tu balanceador de carga de red de paso a través externo.

    gcloud compute backend-services update BACKEND_SERVICE_NAME \
       --security-policy=POLICY_NAME \
       --region=REGION_NAME
    

Supervisión

Cloud Armor exporta las siguientes métricas a Cloud Monitoring para cada una de las reglas de las políticas de seguridad de perímetro de red:

  • packet_count
    • Blocked: valor booleano que representa el resultado de una acción de regla allow o deny
    • Count: el valor de packet_count se incrementa una vez por cada 10.000 paquetes. Por ejemplo, un valor de packet_count de 5 significa que al menos 50.000 paquetes coinciden con tu regla.
  • preview_packet_count: es igual que packet_count y se usa para las reglas en el modo de vista previa.

Para ver las métricas de las políticas de seguridad de la red perimetral, primero debes habilitar la API Network Security (networksecurity.googleapis.com). Este permiso se incluye en el rol Administrador de seguridad de Compute (roles/compute.securityAdmin). Después de habilitar la API Network Security, puedes ver las métricas en Monitoring en la Google Cloud consola.

Ir a Monitoring