Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Importante
Em 30 de setembro de 2027, os registos de fluxo do grupo de segurança de rede (NSG) serão retirados. Como parte desta desativação, deixará de ser possível criar novos registos de fluxo do NSG a partir de 30 de junho de 2025. Recomendamos a migração para registos de fluxo de rede virtual, que superam as limitações dos registos de fluxo NSG. Após a data de retirada, a análise de tráfego habilitada com registos de fluxo NSG não será mais suportada e os recursos existentes de registos de fluxo NSG nas suas assinaturas serão excluídos. No entanto, os registos de fluxos do NSG não serão eliminados e continuarão a seguir as suas respetivas políticas de retenção. Para obter mais informações, veja o anúncio oficial.
Os logs de fluxo do grupo de segurança de rede fornecem informações que podem ser usadas para entender o tráfego IP de entrada e saída em grupos de segurança de rede. Esses logs de fluxo mostram os fluxos de entrada e saída por regra, a NIC (Placa de Interface de Rede) à qual o fluxo se aplica, informações detalhadas em cinco campos sobre o fluxo (IP de origem/destino, porta de origem/destino, protocolo) e se o tráfego foi permitido ou negado.
Esses logs de fluxo podem ser difíceis de analisar manualmente e extrair informações. No entanto, existem várias ferramentas de código aberto que podem ajudar a visualizar esses dados. Este artigo fornece uma solução para visualizar esses logs usando o Elastic Stack, que permite indexar e visualizar rapidamente seus logs de fluxo em um painel do Kibana.
Cenário
Neste artigo, configuramos uma solução que permite visualizar logs de fluxo do grupo de segurança de rede usando o Elastic Stack. Um plugin de entrada Logstash obtém os logs de fluxo diretamente do blob de armazenamento destinado a conter os logs de fluxo. Em seguida, usando o Elastic Stack, os logs de fluxo são indexados e usados para criar um painel do Kibana para visualizar as informações.
Passos
Ativar o registo de fluxo do grupo de segurança de rede
Para este cenário, deve ter o log de fluxo do grupo de segurança de rede habilitado em pelo menos um grupo de segurança de rede na sua conta. Para obter instruções sobre como habilitar registos de fluxo de segurança de rede, consulte o seguinte artigo Introdução ao registo de fluxo de segurança de rede para grupos.
Configurar o Elastic Stack
Ao conectar os logs de fluxo do NSG com o Elastic Stack, podemos criar um painel do Kibana que nos permite pesquisar, representar graficamente, analisar e obter insights de nossos logs.
Instalar o Elasticsearch
As instruções a seguir são usadas para instalar o Elasticsearch em VMs do Ubuntu Azure. Para obter instruções sobre como instalar a pesquisa elástica no Red Hat Enterprise Linux, consulte Instalar o Elasticsearch com RPM.
O Elastic Stack da versão 5.0 e superior requer Java 8. Execute o comando
java -versionpara verificar sua versão. Se você não tiver o Java instalado, consulte a documentação sobre os JDKs suportados pelo Azure.Faça o download do pacote binário correto para o seu sistema:
curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.2.0.deb sudo dpkg -i elasticsearch-5.2.0.deb sudo /etc/init.d/elasticsearch startOutros métodos de instalação podem ser encontrados em Instalação do Elasticsearch
Verifique se o Elasticsearch está sendo executado com o comando:
curl http://127.0.0.1:9200Você verá uma resposta semelhante à seguinte:
{ "name" : "Angela Del Toro", "cluster_name" : "elasticsearch", "version" : { "number" : "5.2.0", "build_hash" : "8ff36d139e16f8720f2947ef62c8167a888992fe", "build_timestamp" : "2016-01-27T13:32:39Z", "build_snapshot" : false, "lucene_version" : "6.1.0" }, "tagline" : "You Know, for Search" }
Para obter mais instruções sobre como instalar a pesquisa elástica, consulte Instruções de instalação.
Instalar o Logstash
As instruções a seguir são usadas para instalar o Logstash no Ubuntu. Para obter instruções sobre como instalar este pacote no Red Hat Enterprise Linux, consulte o artigo Instalando a partir de repositórios de pacotes - yum .
Para instalar o Logstash, execute os seguintes comandos:
curl -L -O https://artifacts.elastic.co/downloads/logstash/logstash-5.2.0.deb sudo dpkg -i logstash-5.2.0.debEm seguida, precisamos configurar o Logstash para acessar e analisar os logs de fluxo. Crie um arquivo logstash.conf usando:
sudo touch /etc/logstash/conf.d/logstash.confAdicione o seguinte conteúdo ao ficheiro:
input { azureblob { storage_account_name => "mystorageaccount" storage_access_key => "VGhpcyBpcyBhIGZha2Uga2V5Lg==" container => "insights-logs-networksecuritygroupflowevent" codec => "json" # Refer https://learn.microsoft.com/azure/network-watcher/network-watcher-read-nsg-flow-logs # Typical numbers could be 21/9 or 12/2 depends on the nsg log file types file_head_bytes => 12 file_tail_bytes => 2 # Enable / tweak these settings when event is too big for codec to handle. # break_json_down_policy => "with_head_tail" # break_json_batch_count => 2 } } filter { split { field => "[records]" } split { field => "[records][properties][flows]"} split { field => "[records][properties][flows][flows]"} split { field => "[records][properties][flows][flows][flowTuples]"} mutate{ split => { "[records][resourceId]" => "/"} add_field => {"Subscription" => "%{[records][resourceId][2]}" "ResourceGroup" => "%{[records][resourceId][4]}" "NetworkSecurityGroup" => "%{[records][resourceId][8]}"} convert => {"Subscription" => "string"} convert => {"ResourceGroup" => "string"} convert => {"NetworkSecurityGroup" => "string"} split => { "[records][properties][flows][flows][flowTuples]" => ","} add_field => { "unixtimestamp" => "%{[records][properties][flows][flows][flowTuples][0]}" "srcIp" => "%{[records][properties][flows][flows][flowTuples][1]}" "destIp" => "%{[records][properties][flows][flows][flowTuples][2]}" "srcPort" => "%{[records][properties][flows][flows][flowTuples][3]}" "destPort" => "%{[records][properties][flows][flows][flowTuples][4]}" "protocol" => "%{[records][properties][flows][flows][flowTuples][5]}" "trafficflow" => "%{[records][properties][flows][flows][flowTuples][6]}" "traffic" => "%{[records][properties][flows][flows][flowTuples][7]}" "flowstate" => "%{[records][properties][flows][flows][flowTuples][8]}" "packetsSourceToDest" => "%{[records][properties][flows][flows][flowTuples][9]}" "bytesSentSourceToDest" => "%{[records][properties][flows][flows][flowTuples][10]}" "packetsDestToSource" => "%{[records][properties][flows][flows][flowTuples][11]}" "bytesSentDestToSource" => "%{[records][properties][flows][flows][flowTuples][12]}" } convert => {"unixtimestamp" => "integer"} convert => {"srcPort" => "integer"} convert => {"destPort" => "integer"} } date{ match => ["unixtimestamp" , "UNIX"] } } output { stdout { codec => rubydebug } elasticsearch { hosts => "localhost" index => "nsg-flow-logs" } }
Para obter mais instruções sobre como instalar o Logstash, consulte a documentação oficial.
Instalar o plug-in de entrada Logstash para armazenamento de blobs do Azure
Este plugin do Logstash permite que o/a utilizador(a) aceda diretamente aos logs de fluxo da sua conta de armazenamento designada. Para instalar este plugin, a partir do diretório de instalação padrão do Logstash, execute o comando:
sudo /usr/share/logstash/bin/logstash-plugin install logstash-input-azureblob
Para iniciar o Logstash, execute o comando:
sudo /etc/init.d/logstash start
Para obter mais informações sobre este plugin, consulte a documentação.
Instalar o Kibana
Para obter instruções sobre como instalar o Kibana no Red Hat Enterprise Linux, consulte Instalar o Kibana com RPM. Para obter instruções sobre como instalar o Kibana em sistemas Ubuntu/Debian usando um pacote de repositório, consulte Instalar o Kibana a partir do repositório APT.
Em seguida, as instruções seguintes foram testadas no Ubuntu e podem ser usadas em diferentes distribuições Linux, pois não são específicas do Ubuntu.
Execute os seguintes comandos para instalar o Kibana:
curl -L -O https://artifacts.elastic.co/downloads/kibana/kibana-5.2.0-linux-x86_64.tar.gz tar xzvf kibana-5.2.0-linux-x86_64.tar.gzPara executar o Kibana use os comandos:
cd kibana-5.2.0-linux-x86_64/ ./bin/kibanaPara ver a sua interface web do Kibana, navegue até
http://localhost:5601Para esse cenário, o padrão de índice usado para os logs de fluxo é "nsg-flow-logs". Você pode alterar o padrão de índice na seção "saída" do seu arquivo logstash.conf.
Se você quiser visualizar o painel do Kibana remotamente, crie uma regra NSG de entrada que permita o acesso à porta 5601.
Criar um painel do Kibana
Um painel de exemplo para exibir tendências e detalhes em seus alertas é mostrado na imagem a seguir:
Baixe o arquivo do painel, o arquivo de visualização e o arquivo de pesquisa salvo.
Na guia Gerenciamento do Kibana, navegue até Objetos Salvos e importe os três arquivos. Em seguida, na guia Painel de Controlo, é possível abrir e carregar o painel de exemplo.
Você também pode criar suas próprias visualizações e painéis adaptados para métricas de seu próprio interesse. Leia mais sobre como criar visualizações do Kibana a partir da documentação oficial do Kibana.
Visualizar os registos de fluxos do NSG
O painel de exemplo fornece várias visualizações dos logs de fluxo:
Fluxos por Decisão/Direção ao longo do tempo - gráficos de séries temporais que mostram o número de fluxos ao longo do período. Você pode editar a unidade de tempo e a extensão de ambas as visualizações. Fluxos por Decisão mostra a proporção de decisões de permissão ou negação tomadas, enquanto Fluxos por Direção mostra a proporção de tráfego de entrada e saída. Com esses elementos visuais, você pode examinar as tendências de tráfego ao longo do tempo e procurar por picos ou padrões incomuns.
Fluxos por Destino/Porta de Origem – gráficos circulares que mostram a desagregação dos fluxos para as respetivas portas. Com essa visualização, você pode ver suas portas mais usadas. Se clicar numa porta específica dentro do gráfico circular, o resto do painel de controlo é filtrado para mostrar os fluxos dessa porta.
Número de fluxos e data do primeiro registo – métricas que mostram o número de fluxos registados e a data do primeiro log capturado.
Fluxos por NSG e Regra – um gráfico de barras mostrando a distribuição de fluxos dentro de cada NSG e a distribuição de regras dentro de cada NSG. , você pode ver qual NSG e quais regras geraram mais tráfego.
Top 10 IPs de origem/destino – gráficos de barras mostrando os 10 principais IPs de origem e destino. Você pode ajustar esses gráficos para mostrar mais ou menos os principais IPs. A partir daqui, você pode ver os IPs mais comuns e a decisão de tráfego (permitir ou negar) que está sendo tomada em relação a cada IP.
Tuplas de fluxo – uma tabela que exibe as informações contidas em cada tupla de fluxo, juntamente com o seu NGS e a regra correspondente.
Usando a barra de consulta na parte superior do painel, você pode filtrar o painel com base em qualquer parâmetro dos fluxos, como ID de assinatura, grupos de recursos, regra ou qualquer outra variável de interesse. Para mais informações sobre as consultas e filtros do Kibana, consulte a documentação oficial
Conclusão
Ao combinar os logs de fluxo do grupo de segurança de rede com o Elastic Stack, criamos uma maneira poderosa e personalizável de visualizar nosso tráfego de rede. Esses painéis permitem que você obtenha e compartilhe rapidamente informações sobre seu tráfego de rede, além de filtrar e investigar possíveis anomalias. Usando o Kibana, você pode personalizar esses painéis e criar visualizações específicas para atender a quaisquer necessidades de segurança, auditoria e conformidade.
Próximo passo
Saiba como visualizar seus logs de fluxo do NSG com o Power BI visitando Visualizar logs de fluxos do NSG com o Power BI