Tutorial: Registrar em log o tráfego de rede bidirecionalmente em uma máquina virtual usando o portal do Azure

Um NSG (grupo de segurança de rede) permite filtrar o tráfego de entrada e o tráfego de saída bidirecionalmente em uma VM (máquina virtual). Você pode registrar em log o tráfego de rede que flui por um NSG com a funcionalidade de log de fluxo do NSG do Observador de Rede.

Neste tutorial, você aprenderá como:

  • Criar uma VM com um grupo de segurança de rede
  • Habilitar o Observador de Rede e registrar o provedor Microsoft.Insights
  • Habilitar um log de fluxo de tráfego para um NSG, usando a funcionalidade de log de fluxo do NSG do Observador de Rede
  • Baixar os dados registrados em log
  • Exibir os dados registrados em log

Pré-requisitos

Criar uma máquina virtual

  1. Entre no portal do Azure.

  2. Na caixa de pesquisa na parte superior do portal insira Máquina virtual. Selecione Máquinas virtuais.

  3. Em Máquinas virtuais, selecione + Criar e, em seguida, + Máquina virtual.

  4. Insira ou selecione as informações a seguir em Criar uma máquina virtual.

    Setting Valor
    Detalhes do projeto
    Subscription Selecione sua assinatura.
    Resource group Selecione Criar novo.
    Insira
    em Nome.
    Selecione
    .
    Detalhes da instância
    Nome da máquina virtual Insira a opção myVM.
    Região Selecione (EUA) Leste dos EUA.
    Opções de disponibilidade Selecione Nenhuma redundância de infraestrutura necessária.
    Tipo de segurança Deixe o padrão de Standard.
    Image Selecione Windows Server 2022 Datacenter: edição do Azure – Gen2.
    Instância do Azure Spot Deixar o padrão.
    Tamanho Selecione um tamanho.
    Conta de administrador
    Tipo de autenticação Selecione Chave pública SSH.
    Nome de Usuário Digite um nome de usuário.
    Senha Digite uma senha.
    Confirmar senha Confirme a senha.
    Regras de porta de entrada
    Porta de entrada públicas Mantenha o padrão de Permitir portas selecionadas.
    Selecione as portas de entrada Mantenha o padrão de RDP (3389) .
  5. Selecione Examinar + criar.

  6. Selecione Criar.

A criação da máquina virtual demora alguns minutos. Não continue com as etapas restantes até que a VM seja criada. Enquanto o portal cria a máquina virtual, ele também cria um grupo de segurança de rede com o nome myVM-NSG e associa-o ao adaptador de rede da VM.

Habilitar o Observador de Rede

Se você já tiver um observador de rede habilitado na região Leste dos EUA, vá para Registrar provedor Insights.

  1. Na caixa de pesquisa na parte superior do portal, insira Observador de Rede. Selecione Observador de Rede nos resultados da pesquisa.

  2. Na página Visão geral do Observador de Rede, selecione + Adicionar.

    Screenshot of enable network watcher in portal.

  3. Selecione sua assinatura em Adicionar Observador de Rede. Selecione (EUA) Leste dos EUA em Região.

  4. Selecione Adicionar.

Registrar o provedor Insights

O log de fluxo do NSG exige o provedor Microsoft.Insights. Para registrar o provedor, conclua as seguintes etapas:

  1. Na caixa de pesquisa na parte superior do portal, insira Assinaturas. Selecione Assinaturas nos resultados da pesquisa.

  2. Selecione a assinatura para a qual você deseja habilitar o provedor em Assinaturas.

  3. Selecione Provedores de recursos em Configurações da assinatura.

  4. Insira Microsoft.Insights na caixa de filtro.

  5. Confirme se o status do provedor exibido é Registrado. Se o status for Não registrado, escolha o provedor e selecione Registrar.

Habilitar o log de fluxo do NSG

Os dados do log de fluxo do NSG são gravados em uma conta do Armazenamento do Azure. Conclua as etapas a seguir para criar uma conta de armazenamento para os dados de log.

  1. Na caixa de pesquisa na parte superior do portal, insira Conta de armazenamento. Selecione Contas de Armazenamento nos resultados da pesquisa.

  2. Em Contas do Armazenamento, selecione + Criar.

  3. Insira ou selecione as informações a seguir em Criar uma conta de armazenamento.

    Setting Valor
    Detalhes do projeto
    Subscription Selecione sua assinatura.
    Resource group Selecione myResourceGroup.
    Detalhes da instância
    Nome da conta de armazenamento Insira um nome para a conta de armazenamento.
    Precisa ter de 3 a 24 caracteres, pode conter apenas letras minúsculas e números e precisa ser exclusivo em todo o Armazenamento do Azure.
    Região Selecione (EUA) Leste dos EUA.
    Desempenho Deixe o padrão de Standard.
    Redundância Deixe o padrão GRS (armazenamento com redundância geográfica).
  4. Selecione Examinar + criar.

  5. Selecione Criar.

A conta de armazenamento pode levar cerca de um minuto para ser criada. Não continue com as etapas restantes até que a conta de armazenamento seja criada. Em todos os incidentes, a conta de armazenamento deve estar na mesma região do NSG.

  1. Na caixa de pesquisa na parte superior do portal, insira Observador de Rede. Selecione Observador de Rede nos resultados da pesquisa.

  2. Selecione Logs de fluxo do NSG em Logs.

  3. Em Observador de Rede | Logs de fluxo do NSG, selecione + Criar.

    Screenshot of create Network Security Group flow log.

  4. Insira ou selecione as informações a seguir em Criar um log de fluxo.

    Setting Valor
    Detalhes do projeto
    Subscription Selecione sua assinatura.
    Grupo de Segurança de Rede Selecione myVM-nsg.
    Nome do Log de fluxo Deixe o padrão myVM-nsg-myResourceGroup-flowlog.
    Detalhes da instância
    Escolher conta de armazenamento
    Subscription Selecione sua assinatura.
    Contas de Armazenamento Escolha a conta de armazenamento criada nas etapas anteriores.
    Retenção (dias) Insira um tempo de retenção para os logs.
  5. Selecione Examinar + criar.

  6. Selecione Criar.

Baixar log de fluxo

  1. Na caixa de pesquisa na parte superior do portal, insira Conta de armazenamento. Selecione Contas de Armazenamento nos resultados da pesquisa.

  2. Escolha a conta de armazenamento criada nas etapas anteriores.

  3. Em Armazenamento de dados, selecione Contêineres.

  4. Selecione o contêiner insights-logs-networksecuritygroupflowevent.

  5. No contêiner, navegue até a hierarquia de pastas até chegar a um arquivo PT1H.json. Os arquivos de log são gravados em uma hierarquia de pastas que segue a seguinte convenção de nomenclatura:

    https://{storageAccountName}.blob.core.windows.net/insights-logs-networksecuritygroupflowevent/resourceId=/SUBSCRIPTIONS/{subscriptionID}/RESOURCEGROUPS/{resourceGroupName}/PROVIDERS/MICROSOFT.NETWORK/NETWORKSECURITYGROUPS/{nsgName}/y={year}/m={month}/d={day}/h={hour}/m=00/macAddress={macAddress}/PT1H.json

  6. Selecione ... à direita do arquivo PT1H.json e clique em Baixar.

    Screenshot of download Network Security Group flow log.

Exibir log de fluxo

O JSON de exemplo a seguir exibe os dados que você verá no arquivo PT1H.json para cada fluxo registrado:

Evento de log de fluxo versão 1

{
    "time": "2018-05-01T15:00:02.1713710Z",
    "systemId": "<Id>",
    "category": "NetworkSecurityGroupFlowEvent",
    "resourceId": "/SUBSCRIPTIONS/<Id>/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.NETWORK/NETWORKSECURITYGROUPS/MYVM-NSG",
    "operationName": "NetworkSecurityGroupFlowEvents",
    "properties": {
        "Version": 1,
        "flows": [
            {
                "rule": "UserRule_default-allow-rdp",
                "flows": [
                    {
                        "mac": "000D3A170C69",
                        "flowTuples": [
                            "1525186745,192.168.1.4,10.0.0.4,55960,3389,T,I,A"
                        ]
                    }
                ]
            }
        ]
    }
}

Evento de log de fluxo versão 2

{
    "time": "2018-11-13T12:00:35.3899262Z",
    "systemId": "a0fca5ce-022c-47b1-9735-89943b42f2fa",
    "category": "NetworkSecurityGroupFlowEvent",
    "resourceId": "/SUBSCRIPTIONS/00000000-0000-0000-0000-000000000000/RESOURCEGROUPS/FABRIKAMRG/PROVIDERS/MICROSOFT.NETWORK/NETWORKSECURITYGROUPS/FABRIAKMVM1-NSG",
    "operationName": "NetworkSecurityGroupFlowEvents",
    "properties": {
        "Version": 2,
        "flows": [
            {
                "rule": "DefaultRule_DenyAllInBound",
                "flows": [
                    {
                        "mac": "000D3AF87856",
                        "flowTuples": [
                            "1542110402,94.102.49.190,10.5.16.4,28746,443,U,I,D,B,,,,",
                            "1542110424,176.119.4.10,10.5.16.4,56509,59336,T,I,D,B,,,,",
                            "1542110432,167.99.86.8,10.5.16.4,48495,8088,T,I,D,B,,,,"
                        ]
                    }
                ]
            },
            {
                "rule": "DefaultRule_AllowInternetOutBound",
                "flows": [
                    {
                        "mac": "000D3AF87856",
                        "flowTuples": [
                            "1542110377,10.5.16.4,13.67.143.118,59831,443,T,O,A,B,,,,",
                            "1542110379,10.5.16.4,13.67.143.117,59932,443,T,O,A,E,1,66,1,66",
                            "1542110379,10.5.16.4,13.67.143.115,44931,443,T,O,A,C,30,16978,24,14008",
                            "1542110406,10.5.16.4,40.71.12.225,59929,443,T,O,A,E,15,8489,12,7054"
                        ]
                    }
                ]
            }
        ]
    }
}

O valor de mac na saída anterior é o endereço MAC do adaptador de rede que foi criado no momento da criação da VM. As informações separadas por vírgula de flowTuples são as seguintes:

Dados de exemplo O que os dados representam Explicação
1542110377 Carimbo de data/hora O carimbo de data/hora de quando ocorreu o fluxo, no formato UNIX EPOCH. No exemplo anterior, a data é convertida em 1º de maio de 2018 14h59min05s GMT.
10.0.0.4 Endereço IP de origem O endereço IP de origem do qual se originou o fluxo. 10.0.0.4 é o endereço IP privado da VM que você criou em Criar uma máquina virtual.
13.67.143.118 Endereço IP de destino O endereço IP de destino ao qual o fluxo foi destinado.
44931 Porta de origem A porta de origem da qual se originou o fluxo.
443 Porta de destino A porta de destino à qual o fluxo foi destinado. Como o tráfego era destinado à porta 443, a regra nomeada UserRule_default-allow-rdp no arquivo de log processou o fluxo.
T Protocolo Indica se o protocolo do fluxo era TCP (T) ou UDP (U).
O Direção Indica se o tráfego era de entrada (I) ou de saída (O).
Um Ação Indica se o tráfego foi permitido (A) ou negado (D).
C Estado de fluxo da Versão 2 somente Captura o estado do fluxo. Os possíveis estados são B: Iniciar, quando um fluxo é criado. As estatísticas não são fornecidas. C: Continuando um fluxo contínuo. As estatísticas são fornecidas em intervalos de 5 minutos. E: terminar, quando um fluxo for finalizado. Estatísticas são fornecidas.
30 Pacotes enviados – Origem ao destino Versão 2 somente A quantidade total de pacotes TCP ou UDP enviados da origem ao destino desde a última atualização.
16978 Bytes enviados – Origem ao destino Versão 2 somente A quantidade total de bytes de pacote TCP ou UDP enviados da origem para o destino desde a última atualização. O número total de bytes de pacote TCP e UDP enviados da origem para o destino desde os últimos bytes updatePacket inclui o cabeçalho e a carga útil do pacote.
24 Pacotes enviados – Destino para origem Versão 2 somente A quantidade total de pacotes TCP ou UDP enviados do destino para a origem desde a última atualização.
14008 Bytes enviados – Destino para origem Versão 2 somente Os bytes de pacote incluem cabeçalho de pacote e carga útil. Os bytes de pacote incluem cabeçalho de pacote e carga útil.

Próximas etapas

Neste tutorial, você aprendeu a:

  • Habilitar o log de fluxo do NSG para um NSG
  • Baixe e veja os dados registrados em um arquivo.

Os dados brutos no arquivo json podem ser difíceis de serem interpretados. Para visualizar dados de logs de fluxo, você pode usar a Análise de Tráfego do Azure e o Microsoft Power BI.

Para métodos alternativos de habilitar logs de fluxo do NSG, confira PowerShell, CLI do Azure, API REST e modelos do Resource Manager.

Avance para o próximo artigo e saiba como monitorar a comunicação de rede entre duas máquinas virtuais: