Ejemplos de políticas jerárquicas de firewall

En esta página, se muestran ejemplos de implementaciones de políticas de firewall jerárquicas. Se da por sentado que estás familiarizado con los conceptos descritos en las políticas de firewall jerárquicas.

Ejemplo 1: Permitir que el sistema de sondeo acceda a todas las VM

En este caso de uso, todas las instancias de máquina virtual (VM) en una organización deben analizarse y se les debe realizar un inventario a través de sondeos de una dirección IP específica (10.100.0.1) en un puerto de destino específico (123). El administrador de seguridad de la organización garantiza que ningún administrador de red o de seguridad pueda bloquear ese puerto en ninguna instancia de VM de la organización.

En este ejemplo, se supone que no hay políticas de firewall a nivel de la carpeta implementadas.

La configuración de este caso de uso se describe en el siguiente diagrama.

Permitir que el sistema de sondeo acceda a todas las VM
Permitir que el sistema de sondeo acceda a todas las VM

Política vigente aplicada en las VM

En este ejemplo, la política de firewall de VM vigente después de la evaluación de las reglas en la jerarquía se realiza de la siguiente manera.

Conexiones de entrada

  • Se permiten conexiones de entrada con la IP de origen 10.100.0.1 y el puerto de destino 123, como se define en la política. Si se encuentra una coincidencia en la política de la organización, se permiten las conexiones de sondeo y no se evalúan más reglas en la jerarquía.

  • Para cualquier conexión de entrada distinta de la IP de origen 10.100.0.1 y el puerto de destino 123, no hay coincidencia. Por lo tanto, se aplica la regla de entrada predeterminada de las reglas de firewall de VPC, lo que rechaza la conexión.

Conexión de salida

  • No hay coincidencias entre las reglas definidas por jerarquía. Por lo tanto, se aplica la regla de salida predeterminada en las reglas de firewall de VPC, lo que permite las conexiones de salida.

Cómo configurar

  1. Crea una política de firewall que contenga la regla:

    gcloud compute firewall-policies create \
         --organization=123456789012 \
         --short-name="example-firewall-policy" \
         --description="rules that apply to all VMs in the organization"
    
  2. Agrega la regla a la política de firewall:

    gcloud compute firewall-policies rules create 1000 \
        --action=allow \
        --description="allow-scan-probe" \
        --layer4-configs=tcp:123 \
        --firewall-policy=example-firewall-policy \
        --organization=123456789012 \
        --src-ip-ranges=10.100.0.1/32
  3. Asocia la política de firewall a la organización:

    gcloud compute firewall-policies associations create \
        --firewall-policy=example-firewall-policy \
        --organization=123456789012

Ejemplo 2: Rechazar todas las conexiones externas, excepto ciertos puertos

En este caso de uso, una política de firewall bloquea todas las conexiones desde fuentes externas de Internet, excepto las conexiones en los puertos de destino 80, 443 y 22. Se bloquea una conexión de Internet de entrada en cualquier puerto que no sea 80, 443 y 22, sin importar cuáles sean las reglas de firewall a nivel de la red de VPC. Para cualquier conexión en el puerto 80, 443 o 22, la política delega al administrador de seguridad de VPC el comportamiento que desea aplicar en su red de VPC respectiva para esos puertos.

La configuración de este caso de uso se describe en el siguiente diagrama.




  
    
      Rechaza todas las conexiones externas, excepto ciertos puertos de destino
Rechaza todas las conexiones externas, excepto ciertos puertos de destino

Política vigente aplicada en las VM

En este ejemplo, la política de firewall de VM vigente después de la evaluación de las reglas en la jerarquía se realiza de la siguiente manera.

Conexiones de entrada

  • Todas las conexiones de entrada de 10.0.0.0/8 coinciden con la regla de nivel de organización de prioridad más alta delegate-internal-traffic y omiten el resto de las reglas en la política de la organización para evaluarse en función de las reglas de firewall configuradas en el nivel de red de VPC. En la regla de firewall de VPC, se permiten las conexiones de 10.2.0.0/16, y el resto de las conexiones se evalúan con la regla de entrada implícita, que es deny.

  • Conexiones de entrada con un rango de IP de origen que no sea 10.0.0.0/8 para los puertos de destino 22, 80 y 443 sean delegadas al siguiente nivel, en el que los puertos 80 y 443 están permitidos, pero 22 no.

  • Se bloquean todo el resto de las conexiones.

Conexiones de salida

  • No hay coincidencias entre las reglas definidas por jerarquía. Por lo tanto, se aplica la regla de salida predeterminada en las reglas de firewall de VPC, lo que permite las conexiones de salida.

Cómo configurar

  1. Crea una política de firewall que contenga la regla:

    gcloud compute firewall-policies create \
        --organization=123456789012 \
        --short-name="example-firewall-policy" \
        --description="rules that apply to all VMs in the organization"
    
  2. Agrega una regla para delegar conexiones internas al propietario del proyecto:

    gcloud compute firewall-policies rules create 1000 \
        --action=goto_next \
        --description="delegate-internal-traffic" \
        --organization=123456789012 \
        --firewall-policy="example-firewall-policy" \
        --src-ip-ranges=10.0.0.0/8
    
  3. Agrega una regla para delegar reglas de conexiones externas a los puertos 80/443/22 al propietario del proyecto:

    gcloud compute firewall-policies rules create 2000 \
        --action=goto_next \
        --description="delegate-external-traffic-spec-ports" \
        --layer4-configs=tcp:80,tcp:443,tcp:22 \
        --organization=123456789012 \
        --firewall-policy="example-firewall-policy"
  4. Agrega una regla para rechazar todas las demás conexiones externas:

    gcloud compute firewall-policies rules create 3000 \
        --action=deny \
        --description="block-other-external-traffic-spec-ports" \
        --organization=123456789012 \
        --firewall-policy="example-firewall-policy" \
        --src-ip-ranges=0.0.0.0/0
    
  5. Asocia la política de firewall a la organización:

    gcloud compute firewall-policies associations create \
        --organization=123456789012 \
        --firewall-policy="example-firewall-policy"
  6. En el proyecto, agrega una regla de firewall para permitir conexiones internas desde la subred designada:

    gcloud compute firewall-rules create allow-internal-traffic \
        --action=allow \
        --priority=1000 \
        --source-ranges=10.2.0.0/16
    
  7. En el proyecto, agrega una regla de firewall para permitir conexiones externas 80/443 de TCP:

    gcloud compute firewall-rules create allow-external-traffic \
        --action=allow \
        --priority=2000 \
        --rules=tcp:80,tcp:443
    

Ejemplo 3: Rechazar conexiones de salida, excepto de una red de VPC específica

En este caso de uso, el administrador de seguridad de la organización no permite conexiones de salida en ninguna red de VPC, excepto las conexiones que se originan en la red de VPC myvpc. El administrador delega la decisión de abrir la salida al servidor público 203.0.113.1 al administrador de seguridad myvpc.

En este ejemplo, se supone que no hay políticas de firewall a nivel de la carpeta implementadas. La configuración de este caso de uso se describe en el siguiente diagrama.

Rechazar las conexiones de salida, excepto desde una red específica
Rechazar las conexiones de salida excepto desde una red específica

Política vigente aplicada en las VM

En este ejemplo, la política de firewall de VM vigente después de la evaluación de las reglas en la jerarquía se realiza de la siguiente manera.

Conexiones de entrada

  • No hay coincidencias entre las reglas definidas por jerarquía. Por lo tanto, se aplica la regla de entrada predeterminada en las reglas de firewall de VPC, lo que rechaza las conexiones de entrada.

Conexiones de salida

  • Se permiten todas las conexiones de salida dirigidas a 203.0.113.1 y se rechaza el resto de las conexiones. Todas las conexiones de salida dirigidas a 203.0.113.1 coinciden con la regla delegate-egress-my-vpc y omiten el resto de las reglas en la política de la organización.

  • Luego, las conexiones de salida se evalúan en función de las reglas de firewall configuradas en myvpc. La regla predeterminada permite las conexiones de salida. La regla block-egress-traffic-sepc-ports en la política a nivel de la organización rechaza el resto de las conexiones.

Cómo configurar

  1. Crea una política de firewall que contenga la regla:

    gcloud compute firewall-policies create \
        --organization=123456789012 \
        --short-name="example-firewall-policy" \
        --description="rules that apply to all VMs in the organization"
    
  2. Agrega una regla para delegar ciertas conexiones de salida:

    gcloud compute firewall-policies rules create 1000 \
        --action=goto_next \
        --description="delegate-egress-myvpc" \
        --dest-ip-ranges=203.0.113.1/32
        --direction=egress
        --organization=123456789012 \
        --short-name="example-firewall-policy" \
        --target-resources=projects/PROJECT_ID/networks/myvpc
    
  3. Agrega una regla para rechazar todas las demás conexiones de salida:

    gcloud compute firewall-policies rules create 2000 \
        --action=deny \
        --description="block-egress-external-traffic-spec-ports" \
        --direction=egress \
        --dest-ip-ranges=0.0.0.0/0 \
        --organization=123456789012 \
        --short-name="example-firewall-policy"
  4. Asocia la política de firewall a la organización:

    gcloud compute firewall-policies associations create \
        --organization=123456789012 \
        --short-name="example-firewall-policy"

Ejemplo 4: Configurar reglas específicas de la organización y de carpetas

En este caso de uso, un administrador de seguridad no permite conexiones de entrada a ninguna VM de la organización, excepto las del rango que se agrega a una lista de entidades permitidas: 203.0.113.0/24. El administrador delega las siguientes decisiones sobre qué hacer con conexiones de 203.0.113.0/24 a los administradores de seguridad a nivel de carpeta.

Hay dos carpetas diferentes:

  • Folder1, en la que la política solo permite conexiones a los puertos 80 y 443 en las VM de backend, y el resto de los puertos están bloqueados.
  • Folder2, en la que la política establece que ninguna VM de Folder2 puede bloquear cualquier puerto de destino para el tráfico de la dirección IP 203.0.113.1. El administrador de seguridad de Folder2 delega otras decisiones al administrador de seguridad de VPC, que decide abrir los puertos 80, 443 y 22, y rechazar el resto de los puertos.

La configuración de este caso de uso se describe en el siguiente diagrama.

Reglas específicas de la carpeta o de toda la organización
Reglas específicas de la organización y de la carpeta

Política vigente aplicada en las VM

En este ejemplo, la política de firewall de VM vigente después de la evaluación de las reglas en la jerarquía se realiza de la siguiente manera.

Para las VM que pertenecen a my-vpc

  • Se permiten todas las conexiones de entrada de 203.0.113.0/24 con los puertos de destino TCP 80 y 443. Se rechazará cualquier otra conexión de entrada.

  • Se aceptan todas las conexiones de salida según la regla de firewall de VPC aplicada debido a que no hay ninguna coincidencia en las reglas de la política de firewall de nivel superior.

Para las VM que pertenecen a vpc2

  • Se permiten todas las conexiones de entrada de 203.0.113.1. Las conexiones de entrada de otras fuentes 203.0.113.0/24 que no sean 203.0.113.1 solo se permiten para los puertos 80, 443 y 22. Todas las demás conexiones de entrada se rechazan.

  • Se aceptan todas las conexiones de salida según la regla de firewall de VPC aplicada debido a que no hay ninguna coincidencia en las reglas de la política de firewall de nivel superior.

Cómo configurar

  1. Crea una política de firewall que contenga las reglas para Org_A:

    gcloud compute firewall-policies create \
        --organization=100000000000 \
        --short-name="example-firewall-policy-org-a" \
        --description="rules that apply to all VMs in the organization"
    
  2. Agrega una regla para delegar la entrada desde 203.0.113.0/24 al propietario del proyecto:

    gcloud compute firewall-policies rules create 1000 \
        --action=goto_next \
        --description="delegate-ingress" \
        --organization=100000000000 \
        --short-name="example-firewall-policy-org-a" \
        --src-ip-ranges=203.0.113.0/24
    
  3. Agrega una regla para rechazar todas las demás conexiones externas:

    gcloud compute firewall-policies rules create 2000 \
        --action=deny
        --description="block-ingress-external-traffic"
        --organization=100000000000 \
        --short-name="example-firewall-policy-org-a" \
        --src-ip-ranges=0.0.0.0/0
    
  4. Asocia la política de firewall a la organización:

    gcloud compute firewall-policies associations create \
        --organization=100000000000 \
        --short-name="example-firewall-policy-org-a"
  5. Crea una política de firewall que contenga las reglas para Folder1:

    gcloud compute firewall-policies create \
        --organization=100000000000 \
        --short-name="example-firewall-policy-folder1" \
        --description="rules that apply to all VMs under Folder1"
    
  6. Agrega una regla para permitir todas las entradas HTTP(S):

    gcloud compute firewall-policies rules create 1000 \
        --action=allow \
        --description="allow-http-s-ingress" \
        --layer4-configs=tcp:80,tcp:443 \
        --organization=100000000000 \
        --short-name="example-firewall-policy-folder1"
  7. Agrega una regla para rechazar la entrada a todos los demás puertos o protocolos:

    gcloud compute firewall-policies rules create 2000 \
        --action=deny \
        --description="block-ingress-external-traffic" \
        --organization=100000000000 \
        --short-name="example-firewall-policy-folder1" \
        --src-ip-ranges=0.0.0.0/0
  8. Asocia la política de firewall con Folder1:

    gcloud compute firewall-policies associations create \
        --organization=100000000000 \
        --short-name="example-firewall-policy-folder1" \
        --folder=200000000000
  9. Crea una política de firewall que contenga las reglas para Folder2:

    gcloud compute firewall-policies create \
        --organization=100000000000 \
        --short-name="example-firewall-policy-folder2" \
        --description="rules that apply to all VMs under Folder2"
  10. Agrega una regla para permitir la entrada desde 203.0.113.1:

    gcloud compute firewall-policies rules create 1000 \
        --action=allow \
        --description="allow-vul-scan-ingress" \
        --organization=100000000000 \
        --short-name="example-firewall-policy-folder2" \
        --src-ip-ranges=203.0.113.1/32
  11. Asocia la política de firewall con Folder2:

    gcloud compute firewall-policies associations create \
        --organization=100000000000 \
        --short-name="example-firewall-policy-folder2" \
        --folder=300000000000
  12. Agrega una regla de firewall para permitir la entrada de conexión HTTP(S):

    gcloud compute firewall-rules create allow-internal-traffic \
        --action=allow \
        --rules=tcp:80,tcp:443,tcp:22
    

¿Qué sigue?