Exemplos de registro de regras de firewall da VPC

As regras de firewall da nuvem privada virtual (VPC) geram entradas de registro quando são aplicadas ao tráfego. Embora um fluxo de pacotes possa gerar várias entradas de registro, uma regra de firewall da VPC gera no máximo uma entrada de registro por conexão de uma instância de máquina virtual (VM). Os exemplos a seguir mostram como a geração de registros de regras de firewall da VPC funciona em diferentes cenários.

Exemplo de negação de saída

Este exemplo mostra a geração de registros para uma regra de firewall da VPC de negação de saída que bloqueia o tráfego entre duas instâncias de VM na mesma rede VPC.

Neste exemplo, o tráfego flui entre instâncias de VM na rede VPC example-net no projeto example-proj.

  • As duas instâncias de VM são:

    • VM1 na zona us-west1-a com endereço IP 10.10.0.99 na west-subnet (região us-west1).
    • VM2 na zona us-east1-b com endereço IP 10.20.0.99 na east-subnet (região us-east1).
  • Regra A: uma regra de negação de saída de firewall tem como destino todas as instâncias na rede, destino em 10.20.0.99 (VM2) e se aplica à porta TCP 80. A geração de registros está ativada para essa regra.

  • Regra B: uma regra de permissão de entrada de firewall tem como destino todas as instâncias na rede, origem em 10.10.0.99 (VM1) e se aplica à porta TCP 80. A geração de registros também está ativada para essa regra.

Para criar as regras de firewall da VPC, use os seguintes comandos gcloud:

  • Regra A: regra de negação de saída para a porta TCP 80, aplicável a todas as instâncias, destino 10.20.0.99:

    gcloud compute firewall-rules create rule-a \
        --network example-net \
        --action deny \
        --direction EGRESS \
        --rules tcp:80 \
        --destination-ranges 10.20.0.99/32 \
        --priority 10 \
        --enable-logging
    
  • Regra B: regra de permissão de entrada para a porta TCP 80, aplicável a todas as instâncias, origem 10.10.0.99:

    gcloud compute firewall-rules create rule-b \
        --network example-net \
        --action allow \
        --direction INGRESS \
        --rules tcp:80 \
        --source-ranges 10.10.0.99/32 \
        --priority 10 \
        --enable-logging
    
A regra de negação de saída bloqueia a conexão da VM1 com a VM2.
A regra de negação de saída bloqueia a conexão da VM1 à VM2 (clique para ampliar).

Em um cenário em que a VM1 tenta se conectar à VM2 na porta TCP 80, o seguinte acontece:

  • Uma entrada de registro para a regra A segundo a perspectiva da VM1 é gerada enquanto a VM1 tenta se conectar a 10.20.0.99 (VM2).
  • Como a regra A bloqueia o tráfego, a regra B não é considerada. Portanto, não há entrada de registro para a regra B segundo a perspectiva da VM2.

A VM1 informa o seguinte registro de firewall da VPC:

Campo Valores
connection src_ip=10.10.0.99
src_port=[EPHEMERAL_PORT]
dest_ip=10.20.0.99
dest_port=80
protocol=6
disposition NEGADO
rule_details reference = "network:example-net/firewall:rule-a"
priority = 10
action = DENY
destination_range = 10.20.0.99/32
ip_port_info = tcp:80
direction = egress
instance project_id="example-proj"
instance_name=VM1
region=us-west1
zone=us-west1-a
vpc project_id="example-proj"
vpc_name=example-net
subnetwork_name=west-subnet
remote_instance project_id="example-proj"
instance_name=VM2
region=us-east1
zone=us-east1-b
remote_vpc project_id="example-proj"
vpc_name=example-net
subnetwork_name=east-subnet
remote_location Sem informações. Este campo só será usado se o destino estiver fora da rede VPC.

Exemplo de permissão de saída e permissão de entrada

Este exemplo mostra a geração de registros para uma regra de firewall da VPC de permissão de saída e uma regra de firewall da VPC de permissão de entrada que, juntas, permitem o tráfego entre duas instâncias de VM na mesma rede VPC.

Neste exemplo, o tráfego flui entre instâncias de VM na rede VPC example-net no projeto example-proj.

  • As duas instâncias de VM são:

    • VM1 na zona us-west1-a com endereço IP 10.10.0.99 na west-subnet (região us-west1).
    • VM2 na zona us-east1-b com endereço IP 10.20.0.99 na east-subnet (região us-east1).
  • Regra A: uma regra de permissão de saída de firewall tem como destino todas as instâncias na rede, destino em 10.20.0.99 (VM2) e se aplica à porta TCP 80. A geração de registros está ativada para essa regra.

  • Regra B: uma regra de permissão de entrada de firewall tem como destino todas as instâncias na rede, origem em 10.10.0.99 (VM1) e se aplica à porta TCP 80. A geração de registros também está ativada para essa regra.

Para criar as regras de firewall da VPC, use os seguintes comandos gcloud:

  • Regra A: regra de permissão de saída para a porta TCP 80, aplicável a todas as instâncias, destino 10.20.0.99 (VM2):

    gcloud compute firewall-rules create rule-a \
        --network example-net \
        --action allow \
        --direction EGRESS \
        --rules tcp:80 \
        --destination-ranges 10.20.0.99/32 \
        --priority 10 \
        --enable-logging
    
  • Regra B: regra de permissão de entrada para a porta TCP 80, aplicável a todas as instâncias, origem 10.10.0.99 (VM1):

    gcloud compute firewall-rules create rule-b \
        --network example-net \
        --action allow \
        --direction INGRESS \
        --rules tcp:80 \
        --source-ranges 10.10.0.99/32 \
        --priority 10 \
        --enable-logging
    
As regras de permissão de saída e entrada permitem a conexão da VM1 com a VM2.
As regras de permissão de saída e permissão de entrada permitem a conexão da VM1 à VM2 (clique para ampliar).

Em um cenário em que a VM1 tenta se conectar à VM2 na porta TCP 80, o seguinte acontece:

  • Uma entrada de registro para a regra A segundo a perspectiva da VM1 é gerada enquanto a VM1 se conecta a 10.20.0.99 (VM2).
  • Uma entrada de registro para a regra B segundo a perspectiva da VM2 é gerada enquanto a VM2 permite conexões de entrada de 10.10.0.99 (VM1).

A VM1 informa o seguinte registro de firewall da VPC:

Campo Valores
connection src_ip=10.10.0.99
src_port=[EPHEMERAL_PORT]
dest_ip=10.20.0.99
dest_port=80
protocol=6
disposition PERMITIDO
rule_details reference = "network:example-net/firewall:rule-a"
priority = 10
action = ALLOW
destination_range = 10.20.0.99/32
ip_port_info = tcp:80
direction = egress
instance project_id="example-proj"
instance_name=VM1
region=us-west1
zone=us-west1-a
vpc project_id="example-proj"
vpc_name=example-net
subnetwork_name=west-subnet
remote_instance project_id="example-proj"
instance_name=VM2
region=us-east1
zone=us-east1-b
remote_vpc project_id="example-proj"
vpc_name=example-net
subnetwork_name=east-subnet
remote_location Sem informações. Este campo só será usado se o destino estiver fora da rede VPC.

A VM2 informa o seguinte registro de firewall da VPC:

Campo Valores
connection src_ip=10.10.0.99
src_port=[EPHEMERAL_PORT]
dest_ip=10.20.0.99
dest_port=80
protocol=6
disposition PERMITIDO
rule_details reference = "network:example-net/firewall:rule-b"
priority = 10
action = ALLOW
source_range = 10.10.0.99/32
ip_port_info = tcp:80
direction = ingress
instance project_id="example-proj"
instance_name=VM2
region=us-east1
zone=us-east1-b
vpc project_id="example-proj"
vpc_name=example-net
subnetwork_name=east-subnet
remote_instance project_id="example-proj"
instance_name=VM1
region=us-west1
zone=us-west1-a
remote_vpc project_id="example-proj"
vpc_name=example-net
subnetwork_name=west-subnet
remote_location Sem informações. Este campo só será usado se o destino estiver fora da rede VPC.

Exemplo de entrada de Internet

Este exemplo mostra a geração de registros para uma regra de firewall de permissão de entrada que permite o tráfego da Internet para uma instância de VM. Ele também mostra como o comportamento de firewall com estado afeta uma regra de negação de saída.

Neste exemplo, o tráfego flui de um recurso externo para uma instância de VM na rede VPC example-net. A rede está no projeto example-proj.

  • O sistema na Internet tem endereço IP 203.0.113.114.
  • A VM1 na zona us-west1-a tem endereço IP 10.10.0.99 na west-subnet (região us-west1).
  • Regra C: uma regra de permissão de entrada de firewall tem como destino todas as instâncias na rede, origem em qualquer endereço IP (0.0.0.0/0) e se aplica à porta TCP 80. A geração de registros está ativada para essa regra.
  • Regra D: uma regra de firewall de negação de saída tem como destino todas as instâncias na rede, destino em qualquer endereço IP (0.0.0.0/0) e se aplica a todos os protocolos. A geração de registros está ativada para essa regra.

Para criar as regras de firewall da VPC, use os seguintes comandos gcloud:

  • Regra C: regra de permissão de entrada para a porta TCP 80, aplicável a todas as instâncias, qualquer origem:

    gcloud compute firewall-rules create rule-c \
        --network example-net \
        --action allow \
        --direction INGRESS \
        --rules tcp:80 \
        --source-ranges 0.0.0.0/0 \
        --priority 10 \
        --enable-logging
    
  • Regra D: regra de negação de saída para todos os protocolos, aplicável a todas as instâncias, a qualquer destino:

    gcloud compute firewall-rules create rule-d \
        --network example-net \
        --action deny \
        --direction EGRESS \
        --rules all \
        --destination-ranges 0.0.0.0/0 \
        --priority 10 \
        --enable-logging
    
A regra de permissão de entrada permite a conexão da Internet com a VM1.
Conexão da Internet a VM (clique para ampliar).

Em um cenário em que o sistema com endereço IP 203.0.113.114 tenta se conectar à VM1 na porta TCP 80, o seguinte acontece:

  • A VM1 gera uma entrada de registro para a regra C enquanto aceita tráfego de 203.0.113.114.
  • Desconsiderando a regra D, a VM1 pode responder à solicitação de entrada porque Google Cloud as regras de firewall são com estado. Se a solicitação de entrada for permitida, nenhuma regra de saída poderá bloquear respostas estabelecidas.
  • Como a regra D não se aplica, o sistema não a considera. Portanto, não há entrada de registro para a regra D.

A VM1 informa o seguinte registro de firewall da VPC:

Campo Valores
connection src_ip=203.0.113.114
src_port=[EPHEMERAL_PORT]
dest_ip=10.10.0.99
dest_port=80
protocol=6
disposition PERMITIDO
rule_details reference = "network:my-vpc/firewall:rule-c"
priority = 10
action = ALLOW
source_range = 0.0.0.0/0
ip_port_info = tcp:80
direction = ingress
instance project_id="example-proj"
instance_name=VM1
region=us-west1
zone=us-west1-a
vpc project_id="example-proj"
vpc_name=example-net
subnetwork_name=west-subnet
remote_location continente
país
região
cidade

A seguir