Como usar a geração de registros de regras de firewall

A geração de registros de regras de firewall permite auditar, verificar e analisar os efeitos das regras de firewall. Por exemplo, é possível determinar se uma regra de firewall criada para negar tráfego está funcionando conforme o esperado. A geração de registros também é útil para determinar quantas conexões são afetadas por uma determinada regra de firewall.

Nesta página, você verá como ativar e desativar a geração de registros e como exibir os registros gerados. Para mais informações sobre o que é registrado e exemplos de criação e formatos de geração de registro, consulte a Visão geral da geração de registros de regras de firewall.

Permissões

Para modificar regras de firewall ou registros de acesso, os membros do IAM precisam de um dos papéis a seguir.

Tarefa Papel obrigatório
Criar, excluir ou atualizar regras de firewall Proprietário ou editor do projeto ou administrador de segurança
Ver registros Proprietário, editor ou visualizador do projeto ou visualizador de registros
Para mais detalhes sobre papéis e permissões do IAM do Logging, consulte o Guia de controle de acesso do Logging.

Como ativar e desativar a geração de registros de regras de firewall

Ao criar uma regra de firewall, é possível optar por ativar a geração de registros desse tipo de regra. Para mais informações, consulte Como criar regras de firewall.

Para ativar ou desativar a geração de registros para uma regra de firewall atual, siga as instruções a seguir.

Como ativar a geração de registros de regras de firewall

Console

  1. Acesse a página "Regras de firewall" no Console do Google Cloud.
    Acessar a página "Regras de firewall"
  2. Selecione a regra de firewall que você quer atualizar.
  3. Clique em Editar.
  4. Na configuração Registros, selecione Ativado.
  5. Clique em Salvar.

gcloud

    gcloud compute firewall-rules update NAME \
        --enable-logging
    

API

Ative a geração de registros de regras de firewall para uma regra de firewall existente.

    PATCH https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls/RULE_NAME
    {
      "name": "RULE_NAME,
      "logConfig": {
        "enable": true
      }
    }
    

Substitua os marcadores por valores válidos:

  • PROJECT_ID é o ID do projeto em que a regra de firewall está localizada.
  • RULE_NAME é o nome da regra de firewall.

Para mais informações, consulte o método firewalls.patch.

Como desativar a geração de registros de regras de firewall

Console

  1. Acesse a página "Regras de firewall" no Console do Google Cloud.
    Acessar a página "Regras de firewall"
  2. Selecione a regra de firewall que você quer atualizar.
  3. Clique em Editar.
  4. Na configuração Registros, selecione Desativado.
  5. Clique em Salvar.

gcloud

    gcloud compute firewall-rules update NAME \
        --no-enable-logging
    

API

Ative a geração de registros de regras de firewall para uma regra de firewall existente.

    PATCH https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls/RULE_NAME
    {
      "name": "RULE_NAME,
      "logConfig": {
        "enable": false
      }
    }
    

Substitua os marcadores por valores válidos:

  • PROJECT_ID é o ID do projeto em que a regra de firewall está localizada.
  • RULE_NAME é o nome da regra de firewall.

Para mais informações, consulte o método firewalls.patch.

Como visualizar registros

Os registros de regras de firewall são criados no projeto que hospeda a rede contendo as instâncias de VM e as regras de firewall. Com a VPC compartilhada, as instâncias de VM são criadas em projetos de serviço, mas usam uma rede VPC compartilhada localizada no projeto host. Os registros de regras de firewall são armazenados nele.

Para registros de regras de firewall, use a seção de registros do Console do Cloud.

Os seguintes filtros avançados do Logging demonstram como pesquisar eventos de firewall específicos. Em cada filtro, substitua PROJECT_ID pelo ID do projeto.

Todos os registros de firewall

    resource.type="gce_subnetwork"
    logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Ffirewall"
    

Sub-redes específicas

    resource.type="gce_subnetwork"
    logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Ffirewall"
    resource.labels.subnetwork_name="SUBNET_NAME"
    

Substitua SUBNET_NAME pelo nome da sub-rede específica.

VMs específicas

    resource.type="gce_subnetwork"
    logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Ffirewall"
    jsonPayload.instance.vm_name="INSTANCE_NAME"
    

Substitua INSTANCE_NAME pelo nome da instância de VM específica.

Conexões de um país específico

    resource.type="gce_subnetwork"
    logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Ffirewall"
    jsonPayload.remote_location.country=COUNTRY
    

em que COUNTRY é o código ISO 3166-1 alfa-3(em inglês).

Como exportar registros

Para exportar registros de regras de firewall, siga estas instruções: Como exportar com o visualizador de registros.

Use os filtros avançados de exemplo para limitar os registros exportados.

Tabela de interações

  • No caso de comunicação de VM para VM, os registros podem ser gerados pelas duas VMs, dependendo das regras de firewall de cada uma.
  • A conexão registrada inclui pacotes fluindo nos dois sentidos, caso o pacote inicial tenha obtido permissão do firewall.
  • Para uma determinada VM, as conexões de entrada são correspondidas às regras de firewall configuradas nessas VMs e as conexões de saída são correspondidas à regra de firewall de saída configurada nessa VM.
  • Uma conexão permitida que corresponde a uma regra de firewall com “permitir e gerar registros” é registrada apenas uma vez. A entrada de registro não é repetida a cada cinco segundos, mesmo se a conexão persistir.
  • Uma conexão negada que corresponde a uma regra de firewall com “negado e gerando registros” repete a entrada de registro a cada cinco segundos enquanto houver pacotes observados nessa conexão negada.

Esta tabela mostra o comportamento de geração de registros de firewall pela perspectiva de uma VM.

Em um cenário em que uma VM1 tem uma regra de entrada R1 que corresponde aos pacotes e uma regra de saída R2 que também corresponde aos pacotes, o comportamento de geração de registros de firewall é o seguinte:

A VM1 tem a regra de entrada R1 (correspondente aos pacotes) A VM1 tem a regra de saída R2 (pacotes correspondentes) Direção da conexão Ação Registro
Permitir + gerar registros Permitir Entrada Permitir One log entry:
disposition=allow, rule=R1
Negar
Permitir + gerar registros
Negar + gerar registros
Permitir Permitir Entrada Permitir Sem geração de registros
Negar
Permitir + gerar registros
Negar + gerar registros
Negar + gerar registros N/D Entrada Negar One log entry every 5 seconds:
disposition=deny, rule=R1
Negar N/D Entrada Negar Sem geração de registros
Permitir Permitir + gerar registros Saída Permitir One log entry:
disposition=allow, rule=R2
Negar
Permitir + gerar registros
Negar + gerar registros
Permitir Permitir Saída Permitir Sem geração de registros
Negar
Permitir + gerar registros
Negar + gerar registros
N/D Negar + gerar registros Saída Negar One log entry every 5 seconds:
disposition=deny, rule=R2
N/D Negar Saída Negar Sem geração de registros

Observe que a entrada e a saída são simétricas.

Esta é a descrição detalhada da semântica dos registros de firewall:

  • Permitir + registrar (a geração de registros é compatível somente com TCP e UDP)

    • A conexão iniciada na direção à qual a regra se aplica faz com que um único registro seja criado.
    • O tráfego de resposta é permitido devido ao rastreamento de conexão. O tráfego de resposta não faz com que a geração de registros ocorra, independentemente das regras de firewall nessa direção.
    • Se a conexão expirar a partir do firewall (inativa por 10 minutos ou TCP RST recebido), outro pacote em qualquer direção poderá acionar a geração de registros.
    • A geração de registros é baseada em cinco tuplas. Os sinalizadores TCP não afetam o comportamento de geração de registros.
  • Negar + gerar registros (a geração de registros é compatível somente com TCP e UDP)

    • Pacotes são descartados (nenhuma conexão é iniciada).
    • Cada pacote que corresponde a um hash de cinco tuplas único é registrado como uma tentativa de conexão com falha.
    • O mesmo hash de cinco tuplas é registrado novamente a cada cinco segundos caso continue recebendo pacotes.

Solução de problemas

Não é possível ver registros

Se não conseguir ver os registros de regras de firewall na seção de registros do Console do Cloud, verifique o seguinte:

Possível causa: permissões insuficientes

Peça que proprietário do projeto verifique se o membro do IAM tem, pelo menos, o papel de visualizador de registros. Consulte as permissões para mais informações.
Possível causa: os registros de sub-rede podem ter sido excluídos do Logging
No Console do Cloud, acesse Geração de registros > Processamento de registros e verifique se a sub-rede do GCE não foi excluída. Caso tenha sido parcialmente excluída, o filtro de exclusão não se aplicará aos registros de firewall.
Possível causa: redes legadas não são compatíveis
Não é possível usar o registro de regras de firewall em uma rede legada. Apenas as redes VPC são compatíveis.
Possível causa: verifique se está procurando no projeto correto
Como os registros de regra de firewall são armazenados com o projeto que contém a rede, é importante verificar se você está procurando registros no projeto correto. Com a VPC compartilhada, as instâncias de VM são criadas em projetos de serviço, mas usam uma rede VPC compartilhada localizada no projeto host. Para cenários com VPC compartilhada, os registros de regras de firewall são armazenados nele.

Se a VPC compartilhada estiver envolvida, permissões adequadas ao projeto host serão necessárias para exibir os registros de regras do firewall. Embora as próprias instâncias de VM estejam localizadas em projetos de serviço, os registros de regras de firewall para elas estão localizados no projeto host.

Entradas de registro ausentes

Possível causa: as conexões podem não corresponder à regra de firewall que você espera

Verifique se a regra de firewall esperada está na lista de regras de firewall aplicáveis a uma instância. Para detalhes da instância relevante, use o Console do Cloud. Depois, clique no botão Ver detalhes na seção Interfaces de rede da página Detalhes da instância de VM. Inspecione as regras de firewall aplicáveis na seção Detalhes das rotas e regras de firewall da página Detalhes da interface de rede.

Consulte a Visão geral das regras de firewall para verificar se você as criou corretamente.

Use o tcpdump (em inglês) na VM para determinar se as conexões que ele envia ou recebe têm endereços, portas e protocolos que correspondem ao firewall esperado.

Possível causa: pode-se aplicar uma regra de prioridade mais alta com a geração de registros de regras de firewall desativada

As regras de firewall são avaliadas de acordo com as prioridades delas. Na perspectiva de uma instância de VM, apenas uma regra de firewall se aplica ao tráfego.

A regra aplicável de prioridade mais alta pode não ser a que você considera como tal. Em vez disso, é possível aplicar uma regra de prioridade maior que não tenha a geração de registros ativada.

Para solucionar problemas, é possível ativar temporariamente a geração de registros para todas as possíveis regras de firewall aplicáveis a uma VM. Para detalhes da VM relevante, use o Console do Cloud. Depois, clique no botão Ver detalhes na seção Interfaces de rede da página Detalhes da instância de VM. Inspecione as regras de firewall aplicáveis na seção Detalhes das rotas e regras de firewall da página Detalhes da interface de rede e identifique suas regras personalizadas nessa lista. Ative temporariamente a geração de registros para todas essas regras de firewall personalizadas.

Com a geração de registros ativada, é possível identificar a regra aplicável. Depois de identificá-la, desative a geração de registros para todas as regras que não precisam desse recurso.

Metadados ausentes de algumas entradas de registro

Possível causa: atraso de propagação de configuração

Se você atualizar uma regra de firewall com geração de registro de firewall ativada, poderá levar alguns minutos para o Google Cloud terminar a propagação das mudanças necessárias para registrar o tráfego correspondente aos componentes atualizados da regra.

A seguir