Uso da 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 suas regras de firewall. Por exemplo, você pode determinar se uma regra de firewall criada para negar tráfego está funcionando conforme o esperado. A geração de registros também é útil quando é preciso determinar quantas conexões são afetadas por uma determinada regra de firewall.

Nesta página, mostramos como ativar e desativar a geração de registros para regras de firewall da nuvem privada virtual. Veja instruções sobre a geração de registros de regras de política de firewall em Usar políticas e regras de firewall hierárquicas.

Esta página também mostra como visualizar registros gerados. Para mais informações sobre o que é registrado, exemplos de geração de registros e formatos de registro, consulte Geração de registros de regras de firewall.

Se a geração de registros for ativada em uma regra de firewall, será possível ter acesso a insights e recomendações relacionadas no Firewall Insights. Para mais informações, consulte Firewall Insights na documentação do Network Intelligence Center.

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.

Ativar e desativar a geração de registros de regras de firewall

Quando você cria uma regra de firewall, pode optar por ativar a geração de registros das regras. Para mais informações, consulte Criar regras de firewall.

Para ativar ou desativar a geração de registros de regras de firewall para uma regra de firewall existente, siga as instruções a seguir. Ao ativar a geração de registros, é possível controlar se os campos de metadados serão incluídos. Se omiti-los, você economiza custos de armazenamento.

Ativar a geração de registros de regras de firewall

Console

  1. No Console do Google Cloud, acesse a página políticas de Firewall.

    Acessar as políticas de firewall

  2. Na coluna Registros, determine se a geração de registros de firewall está ativada ou desativada para cada regra de firewall.

  3. Para ativar a geração de registros de uma ou mais regras de firewall, marque a caixa de seleção ao lado de cada regra que você quer atualizar.

  4. Na barra de ações Regras de firewall da VPC, clique em Configurar registros.

  5. Na caixa de diálogo Configurar registros, selecione Ativado.

  6. Para omitir os campos de metadados, expanda Mostrar detalhes de registros e desmarque a caixa de seleção Incluir metadados.

  7. Clique em Save configuration.

gcloud

gcloud compute firewall-rules update RULE_NAME \
    --enable-logging \
    --logging-metadata=LOGGING_METADATA

Substitua:

  • RULE_NAME: o nome da regra de firewall.
  • LOGGING_METADATA: especifica se o registro de regras de firewall inclui campos de metadados nos registros de regra de firewall. Só é possível configurar esse campo se a geração de registros estiver ativada. O valor precisa ser exclude-all ou include-all. Por padrão, os campos de metadados são incluídos.

Para mais informações, consulte a documentação de referência do SDK.

Terraform

Use o recurso Terraform para criar uma regra de firewall com a geração de registros ativada.

resource "google_compute_firewall" "rules" {
  project     = var.project_id # Replace this with your project ID in quotes
  name        = "my-firewall-rule"
  network     = "default"
  description = "Creates firewall rule targeting tagged instances"

  log_config {
    metadata = "INCLUDE_ALL_METADATA"
  }

  allow {
    protocol = "tcp"
    ports    = ["80", "8080", "1000-2000"]
  }
  target_tags = ["web"]
}

Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.

API

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

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

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.
  • LOGGING_METADATA: especifica se o registro de regras de firewall inclui campos de metadados nos registros de regra de firewall. Só é possível configurar esse campo se a geração de registros estiver ativada. O valor precisa ser exclude-all ou include-all. Por padrão, os campos de metadados são incluídos.

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

Desativar a geração de registros de regras de firewall

Console

  1. No Console do Google Cloud, acesse a página políticas de Firewall.

    Acessar as políticas de firewall

  2. Na coluna Registros, determine se a geração de registros de firewall está ativada ou desativada para cada regra de firewall.

  3. Para desativar a geração de registros de uma ou mais regras de firewall, marque a caixa de seleção ao lado de cada regra que você quer atualizar.

  4. Na barra de ações Regras de firewall da VPC, clique em Configurar registros.

  5. Na caixa de diálogo Configurar registros, selecione Desativado e clique em Salvar configuração.

gcloud

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

Substitua RULE_NAME pelo nome da regra de firewall.

API

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

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

Substitua:

  • 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.

Ver 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 nesse projeto host.

Para ver os registros de regras de firewall, use a seção "Explorador de registros" do Console do Google Cloud.

As consultas a seguir demonstram como pesquisar eventos de firewall específicos.

Ver todos os registros de firewall

  1. No console do Google Cloud, acesse a página do Explorador de registros.

    Acessar o Explorador de registros

  2. Clique em Recurso.

  3. Na lista Selecionar recurso, clique em Sub-rede e em Aplicar.

  4. Clique em Nome do registro e selecione firewall na lista.

  5. Clique em Aplicar.

Como alternativa:

  1. No console do Google Cloud, acesse a página do Explorador de registros.

    Acessar o Explorador de registros

  2. Clique em Consulta.

  3. Se você não vir o campo do editor de consultas no painel Consulta, clique no botão de alternância Mostrar consulta.

  4. Cole o seguinte no campo do editor de consultas no painel Query. Substitua PROJECT_ID pelo ID do projeto.

    resource.type="gce_subnetwork"
    logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Ffirewall"
    
  5. Clique em Executar consulta.

Ver registros de sub-redes específicas

  1. No console do Google Cloud, acesse a página do Explorador de registros.

    Acessar o Explorador de registros

  2. Clique em Recurso.

  3. Na lista Selecionar recurso, clique em Sub-rede.

  4. Selecione a sub-rede em que você quer ver os registros e clique em Aplicar.

  5. Clique em Nome do registro e selecione firewall na lista.

  6. Clique em Aplicar.

Como alternativa:

  1. No console do Google Cloud, acesse a página do Explorador de registros.

    Acessar o Explorador de registros

  2. Clique em Consulta.

  3. Se você não vir o campo do editor de consultas no painel Consulta, clique no botão de alternância Mostrar consulta.

  4. Cole o seguinte no campo do editor de consultas no painel Query. Substitua PROJECT_ID pelo ID do projeto e SUBNET_NAME pela sub-rede.

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

Ver registros em VMs específicas

  1. No console do Google Cloud, acesse a página do Explorador de registros.

    Acessar o Explorador de registros

  2. Clique em Recurso.

  3. Na lista Selecionar recurso, clique em Instância de VM.

  4. Selecione a instância em que você quer ver os registros e clique em Aplicar.

  5. Clique em Nome do registro e selecione firewall na lista.

  6. Clique em Aplicar.

Como alternativa:

  1. No console do Google Cloud, acesse a página do Explorador de registros.

    Acessar o Explorador de registros

  2. Clique em Consulta.

  3. Se você não vir o campo do editor de consultas no painel Consulta, clique no botão de alternância Mostrar consulta.

  4. Cole o seguinte no campo do editor de consultas no painel Query. Substitua PROJECT_ID pelo ID do projeto e INSTANCE_ID pelo ID da VM com os registros que você quer ver.

    resource.type="gce_subnetwork"
    logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Ffirewall"
    jsonPayload.instance.vm_name="INSTANCE_ID"
    
  5. Clique em Executar consulta.

Ver registros de conexões de um país específico

  1. No console do Google Cloud, acesse a página do Explorador de registros.

    Acessar o Explorador de registros

  2. Clique em Consulta.

  3. Se você não vir o campo do editor de consultas no painel Consulta, clique no botão de alternância Mostrar consulta.

  4. Cole o seguinte no campo do editor de consultas no painel Query. Substitua PROJECT_ID pelo ID do projeto e COUNTRY pelo código ISO 3166-1alpha-3.

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

Exportar registros

Para exportar os registros de regras de firewall, consulte Configurar e gerenciar coletores.

Use as consultas de exemplo para restringir 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 que a conexão persista.
  • 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 única 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 (pacotes correspondentes) 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 Uma entrada de registro:
disposição=permitir, regra=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 Uma entrada de registro a cada 5 segundos:
disposição=negar, regra=R1
Negar N/D Entrada Negar Sem geração de registros
Permitir Permitir + gerar registros Saída Permitir Uma entrada de registro:
disposição=permitir, regra=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 Uma entrada de registro a cada 5 segundos:
disposição=negar, regra=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 + gerar registros (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)

    • Os pacotes são descartados (não é iniciada nenhuma conexão).
    • 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 do Explorador de registros do Console do Google Cloud, verifique o seguinte:

Possível causa: permissões insuficientes

Peça ao proprietário do projeto para verificar se seu membro do IAM tem pelo menos o papel visualizador de registros no projeto. Consulte as permissões para mais informações.
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 regra de firewall são armazenados nesse projeto host.

Se a VPC compartilhada estiver envolvida, você precisará das permissões apropriadas ao projeto host para exibir os registros de regra do firewall. Embora as próprias instâncias de VM estejam localizadas em projetos de serviço, os registros de regra 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 que você espera está na lista de regras de firewall aplicáveis a uma instância. Use o Console do Google Cloud para ver os detalhes da instância relevante e clique no botão Ver detalhes na seção Interfaces de rede na página Detalhes da instância de VM. Inspecione as regras de firewall aplicáveis na seção Detalhes do firewall e das rotas da página Detalhes da interface de rede da VM.

Para criar regras de firewall corretamente, consulte Regras de firewall da VPC.

Você pode usar o tcpdump na VM para determinar se as conexões que ele envia ou recebe têm endereços, portas e protocolos que correspondem ao firewall que você espera.

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

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.

Uma regra que você acha que seria a regra aplicável de prioridade mais alta pode não ser a regra aplicável de prioridade mais alta. Uma regra de prioridade maior que não tenha a geração de registros ativada pode ser aplicada em vez disso.

Para solucionar problemas, é possível ativar temporariamente a geração de registros para todas as regras de firewall possíveis aplicáveis a uma VM. Use o Console do Google Cloud para ver os detalhes da VM relevante e clique no botão Ver detalhes na seção Interfaces de rede na página Detalhes da instância de VM. Inspecione as regras de firewall aplicáveis na seção Detalhes do firewall e das rotas da página Detalhes da interface de rede da VM 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, você pode identificar a regra aplicável. Depois de identificada, 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 registro de firewall ativado, 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