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 VPC. Para instruções sobre como lidar com a geração de registros de regras de política de firewall, consulte esta documentação.

Esta página também mostra como visualizar registros gerados. Para mais informações sobre o que está registrado, exemplos de registro e formatos de registro, consulte a Visão geral da 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 destacados 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

Quando você cria uma regra de firewall, é possível optar por ativar a geração de registros das regras. Consulte Como criar regras de firewall para ver mais informações.

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.

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

Console

  1. Acesse a página "Firewall" no Console do Google Cloud.
    Acessar a página "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 para uma ou mais regras de firewall, marque a caixa de seleção ao lado de cada uma.
  4. Na barra de ações Regras de firewall, clique em Configurar registros.
  5. Na caixa de diálogo Configurar registros, selecione Ativado.
  6. Para omitir os campos de metadados, expanda Detalhes dos registros e limpe Incluir metadados.
  7. Clique em Save configuration.

gcloud

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

Substitua os marcadores por valores válidos:

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

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.

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

Console

  1. Acesse a página "Firewall" no Console do Google Cloud.
    Acessar a página "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 para uma ou mais regras de firewall, marque a caixa de seleção ao lado de cada uma.
  4. Na barra de ações Regras de firewall, 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 NAME \
    --no-enable-logging

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

Use a seção de registros do Console do Cloud para ver registros de regras de firewall.

Os filtros a seguir demonstram como pesquisar eventos de firewall específicos.

Todos os registros de firewall

  1. Acesse a página "Registros" no Console do Google Cloud.
    Acessar a página "Registros"
  2. Selecione Sub-redes no primeiro menu suspenso.
  3. Selecione compute.googleapis.com/firewall no segundo menu suspenso.
  4. Clique em OK.

Como alternativa:

  1. Acesse a página "Registros" no Console do Google Cloud.
    Acessar a página "Registros"
  2. No lado direito do campo Filtrar por rótulo ou pesquisa de texto, clique na seta para baixo e selecione Converter para filtro avançado.
  3. Cole o seguinte no campo. Substitua PROJECT_ID pelo código do projeto:
    resource.type="gce_subnetwork"
    logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Ffirewall"
    

Sub-redes específicas

  1. Acesse a página "Registros" no Console do Google Cloud.
    Acessar a página "Registros"
  2. No primeiro menu suspenso, mova o cursor para Sub-rede e mova-o para a direita para abrir o menu de seleção de sub-rede individual.
  3. No segundo menu suspenso, selecione compute.googleapis.com/firewall.
  4. Clique em OK.

Como alternativa:

  1. Acesse a página "Registros" no Console do Google Cloud.
    Acessar a página "Registros"
  2. No lado direito do campo Filtrar por rótulo ou pesquisa de texto, clique na seta para baixo e selecione Converter para filtro avançado.
  3. Cole o seguinte no campo. 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"
    

VMs específicas

  1. Acesse a página "Registros" no Console do Google Cloud.
    Acessar a página "Registros"
  2. No lado direito do campo Filtrar por rótulo ou pesquisa de texto, clique na seta para baixo e selecione Converter para filtro avançado.
  3. Cole o seguinte no campo. Substitua PROJECT_ID pelo ID do projeto e INSTANCE_NAME pela VM.
    resource.type="gce_subnetwork"
    logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Ffirewall"
    jsonPayload.instance.vm_name="INSTANCE_NAME"
    

Conexões de um país específico

  1. Acesse a página "Registros" no Console do Google Cloud.
    Acessar a página "Registros"
  2. No lado direito do campo Filtrar por rótulo ou pesquisa de texto, clique na seta para baixo e selecione Converter para filtro avançado.
  3. Cole o seguinte no campo. Substitua PROJECT_ID pelo ID do projeto e COUNTRY pelo código ISO 3166-1 alfa-3 (em inglês).
    resource.type="gce_subnetwork"
    logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Ffirewall"
    jsonPayload.remote_location.country=COUNTRY
    

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 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 de registros do Console do Cloud, verifique o seguinte:

Possível causa: permissões insuficientes

Peça ao proprietário do projeto verificar se o membro do IAM tem pelo menos o papel visualizador de registros no projeto. 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 a geração de registros 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 nesse projeto host.

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

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

Use 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 Cloud para ver os detalhes da VM relevante. Depois, clique no botão Ver detalhes na seção Interfaces de rede da página detalhes da instância da VM. Inspecione as regras de firewall aplicáveis na seção Regras de firewall e detalhes das rotas 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, 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