Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это важно
30 сентября 2027 г. журналы потоков группы безопасности сети (NSG) будут сняты с использования. В рамках этого вывода из эксплуатации вы больше не сможете создавать новые журналы потоков NSG начиная с 30 июня 2025 года. Мы рекомендуем перейти на использованиежурналов потоков виртуальной сети, которые устраняют ограничения журналов потоков NSG. После даты прекращения поддержки аналитика трафика, использующая журналы потоков NSG, больше не будет поддерживаться, а существующие ресурсы журналов потоков NSG в подписках будут удалены. Однако записи журналов потоков NSG не будут удалены и будут продолжать следовать соответствующим политикам хранения. Дополнительные сведения см. в официальном объявлении.
Журналы потоков группы безопасности сети предоставляют сведения, которые можно использовать для понимания входящего трафика и исходящего IP-трафика в группах безопасности сети. Эти журналы потоков показывают входящие и исходящие потоки по каждому правилу, сетевой интерфейс, к которому относится поток, информацию о 5-элементном кортеже потока (исходный/конечный IP-адрес, исходный/конечный порт, протокол), а также указывают, был ли трафик разрешён или запрещён.
Данные журналы потоков могут быть трудны для анализа вручную и получения информации. Однако существует несколько инструментов с открытым кодом, которые могут помочь визуализировать эти данные. В этой статье представлено решение для визуализации этих журналов с помощью Elastic Stack, которое позволяет быстро индексировать и визуализировать журналы потоков на панели мониторинга Kibana.
Сценарий
В этой статье мы настроим решение, позволяющее визуализировать журналы потоков группы безопасности сети с помощью Elastic Stack. Подключаемый модуль ввода Logstash получает журналы потоков непосредственно из объекта хранилища, настроенного на хранение журналов потоков. Затем с помощью Эластичного стека журналы потоков индексируются и используются для создания панели мониторинга Kibana для визуализации информации.
Этапы
Включение журналирования потоков для группы безопасности сети
Для этого сценария в учетной записи должна быть включена функция ведения журнала потоков безопасности сети по крайней мере в одной группе безопасности сети. Инструкции по включению журналов потока безопасности сети см. в следующей статье : введение в ведение журнала потоков для групп безопасности сети.
Настройка Elastic Stack
Подключив журналы потоков NSG к Elastic Stack, мы сможем создать панель мониторинга Kibana, которая позволяет использовать журналы для поиска информации, создания диаграмм, анализа и изучения.
Установка Elasticsearch
Следующие инструкции используются для установки Elasticsearch на виртуальных машинах Ubuntu Azure. Инструкции по установке эластичного поиска в Red Hat Enterprise Linux см. в статье Install Elasticsearch with RPM.
Для Elastic Stack версии 5.0 и более поздних версий требуется Java 8. Выполните команду
java -version
, чтобы проверить установленную версию. Если у вас нет java, ознакомьтесь с документацией по поддерживаемым Azure пакетам JDKs.Скачайте правильный двоичный пакет для своей системы.
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 start
Другие методы установки можно найти в документации по установке Elasticsearch.
Убедитесь, что Elasticsearch выполняется, выполнив следующую команду.
curl http://127.0.0.1:9200
Вы увидите ответ, аналогичный следующему:
{ "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" }
Для получения дополнительных инструкций по установке Elasticsearch см. Инструкции по установке.
Установка Logstash
Следующие инструкции используются для установки Logstash в Ubuntu. Для получения инструкций по установке этого пакета в Red Hat Enterprise Linux смотрите статью Установка из репозиториев пакетов — yum.
Введите следующие команды, чтобы установить Logstash.
curl -L -O https://artifacts.elastic.co/downloads/logstash/logstash-5.2.0.deb sudo dpkg -i logstash-5.2.0.deb
Далее необходимо настроить Logstash для получения и анализа журналов потоков. Создайте файл logstash.conf следующим образом.
sudo touch /etc/logstash/conf.d/logstash.conf
Добавьте в файл следующее содержимое:
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" } }
Дополнительные инструкции по установке Logstash см. в официальной документации.
Установка подключаемого модуля ввода Logstash для Azure Blob Storage
Этот плагин Logstash позволяет напрямую обращаться к журналам потоков из указанной учетной записи для хранения. Чтобы установить этот плагин, в каталоге установки Logstash по умолчанию выполните команду:
sudo /usr/share/logstash/bin/logstash-plugin install logstash-input-azureblob
Чтобы запустить Logstash, выполните приведенную ниже команду.
sudo /etc/init.d/logstash start
Дополнительные сведения об этом подключаемом модуле см. в документации.
Установка Kibana
Инструкции по установке Kibana в Red Hat Enterprise Linux см. в разделе "Установка Kibana с помощью RPM". Инструкции по установке Kibana в системах Ubuntu/Debian с помощью пакета репозитория см. в разделе "Установка Kibana" из репозитория APT.
Затем следующие инструкции были протестированы в Ubuntu и могут использоваться в разных дистрибутивах Linux, так как они не относятся к Ubuntu.
Введите следующие команды для установки 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.gz
Запустите Kibana, выполнив следующие команды.
cd kibana-5.2.0-linux-x86_64/ ./bin/kibana
Чтобы открыть веб-интерфейс Kibana, перейдите по адресу
http://localhost:5601
.В нашем сценарии для журналов потоков используется шаблон индексирования nsg-flow-logs. В разделе "output" файла logstash.conf можно изменить шаблон индекса.
Чтобы получить возможность просматривать панель мониторинга Kibana удаленно, создайте правило NSG для доступа к порту 5601.
Создание панели мониторинга Kibana
На следующем рисунке показан пример панели мониторинга, используемой для просмотра сведений и трендов в оповещениях.
Загрузка файла панели мониторинга, файла визуализации и сохраненного файла поиска.
На вкладке Management (Управление) в Kibana перейдите к элементу Saved Objects (Сохраненные объекты) и импортируйте все три файла. Затем откройте вкладку Dashboard (Панель мониторинга) и загрузите пример панели мониторинга.
Вы можете также создать собственные визуализации и панели мониторинга, адаптированные к интересующим вас метрикам. Дополнительные сведения о визуализациях Kibana можно получить в официальной документации по Kibana.
Визуализация журналов потоков NSG
Пример панели мониторинга содержит несколько визуализаций для журналов потоков.
"Flows by Decision Over Time" (Потоки по решению с течением времени) и "Flows by Direction Over Time" (Потоки по направлению с течением времени) — диаграммы распределения во времени, показывающие число потоков за указанный период времени. Вы можете изменить единицу измерения времени и временно́й диапазон обеих этих визуализаций. Диаграмма "Flows by Decision" (Потоки по решению) показывает соотношение решений разрешить или запретить, а диаграмма "Flows by Direction" (Потоки по направлению) — соотношение входящего и исходящего трафика. С помощью этих визуальных элементов можно изучать тенденции трафика с течением времени и искать любые пики или необычные шаблоны.
"Flows by Destination" (Потоки по назначению) и "Flows by Source Port" (Потоки по сходному порту) — круговые диаграммы, показывающие распределение потоков по соответствующим портам. В этом представлении можно увидеть наиболее часто используемые порты. Если щелкнуть определенный порт в круговой диаграмме, остальная часть панели мониторинга отфильтровывается до потоков этого порта.
"Number of Flows" (Число потоков) и "Earliest Log Time" (Время записи самого раннего журнала) — метрики, показывающие количество записанных потоков и дату записи самого раннего журнала.
Потоки по NSG и правилу — линейчатая диаграмма, показывающая распределение потоков в каждой группе безопасности сети и распределение правил в каждой группе безопасности сети. , вы можете увидеть, какие группы безопасности сети (NSG) и правила сгенерировали наибольший трафик.
"Top 10 Source IPs" (10 наиболее используемых исходных IP-адресов) и "Top 10 Destination IPs" (10 наиболее используемых конечных IP-адресов) — гистограммы, показывающие 10 наиболее используемых исходных и конечных IP-адресов. Эти гистограммы можно настроить для отображения большего ли меньшего числа наиболее используемых IP-адресов. Здесь вы можете увидеть наиболее распространенные IP-адреса и решение о трафике (разрешить или запретить) в отношении каждого IP-адреса.
Кортежи потоков — таблица, показывающая сведения, содержащиеся в каждом кортеже потока, и соответствующее NGS и правило.
С помощью строки запроса в верхней части панели мониторинга можно отфильтровать ее содержимое по любому параметру потоков, включая идентификатор подписки, группы ресурсов, правило или любую другую интересующую вас переменную. Дополнительные сведения о запросах и фильтрах Kibana см. в официальной документации
Заключение
Объединяя журналы потоков группы безопасности сети с Elastic Stack, мы создали мощный и настраиваемый способ визуализации сетевого трафика. Эти панели мониторинга позволяют быстро получать и обмениваться аналитическими сведениями о сетевом трафике, а также отфильтровывать и анализировать возможные аномалии. С помощью Kibana эти панели мониторинга можно адаптировать, чтобы создать определенные визуализации, соответствующие требованиям безопасности, аудита и соответствия.
Следующий шаг
Ознакомьтесь со статьей Visualizing Network Security Group flow logs with Power BI (Визуализация журналов потоков для групп безопасности сети с помощью Power BI).