Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ważne
30 września 2027 r. dzienniki przepływów Network Security Group (NSG) przestaną być wykorzystywane. W ramach tego zaprzestania nie będzie można już tworzyć nowych dzienników przepływów NSG po 30 czerwca 2025 r. Zalecamy migrację do dzienników przepływów sieci wirtualnej, które pozwalają wyeliminować ograniczenia dzienników przepływów NSG. Po dacie wycofania analiza ruchu wykorzystująca dzienniki przepływów NSG nie będzie już obsługiwana, a istniejące zasoby dzienników przepływów NSG w Twoich subskrypcjach zostaną usunięte. Jednak zapisy dzienników przepływu NSG nie zostaną usunięte i będą nadal kontynuować przestrzeganie ich odpowiednich zasad przechowywania. Więcej informacji znajdziesz w oficjalnym ogłoszeniu.
Dzienniki przepływu sieciowej grupy zabezpieczeń zawierają informacje, których można użyć do zrozumienia ruchu przychodzącego i wychodzącego IP dla interfejsów sieciowych platformy Azure. Dzienniki przepływu pokazują przepływy wychodzące i przychodzące na podstawie reguły grupy zabezpieczeń sieci, interfejs sieciowy, którego dotyczy przepływ, informacje o 5-tuple (źródłowy/docelowy adres IP, port źródłowy/docelowy, protokół) dotyczące przepływu oraz czy ruch był dozwolony lub blokowany.
W sieci może być dostępnych wiele sieciowych grup zabezpieczeń z włączonym rejestrowaniem przepływu. Kilka sieciowych grup zabezpieczeń z włączonym rejestrowaniem przepływu może utrudnić analizowanie i uzyskiwanie szczegółowych informacji z dzienników. Ten artykuł prezentuje rozwiązanie do centralnego zarządzania dziennikami przepływu grup zabezpieczeń sieci za pomocą Graylog, narzędzia do zarządzania i analizy dzienników typu open source, oraz Logstash, otwartego źródłowego potoku przetwarzania danych po stronie serwera.
Ostrzeżenie
Poniższe kroki działają z dziennikami przepływu w wersji 1. Aby uzyskać szczegółowe informacje, zobacz Wprowadzenie do rejestrowania przepływów dla sieciowych grup zabezpieczeń. Poniższe instrukcje nie będą działać z wersją 2 plików dziennika bez modyfikacji.
Scenariusz
Dzienniki przepływów grup zabezpieczeń sieciowych są włączane za pomocą usługi Network Watcher. Dzienniki przepływu są zapisywane w usłudze Azure Blob Storage. Wtyczka logstash służy do łączenia i przetwarzania dzienników przepływu z magazynu obiektów blob i wysyłania ich do usługi Graylog. Gdy dzienniki przepływu są przechowywane w usłudze Graylog, można je analizować i wizualizować w dostosowanych pulpitach nawigacyjnych.
Etapy instalacji
Włącz rejestrowanie przepływu w sieciowej grupie zabezpieczeń
W tym scenariuszu należy włączyć rejestrowanie przepływu sieciowej grupy zabezpieczeń w co najmniej jednej sieciowej grupie zabezpieczeń na koncie. Aby uzyskać instrukcje dotyczące włączania dzienników przepływu dla grup zabezpieczeń sieciowych, zapoznaj się z następującym artykułem Wprowadzenie do rejestrowania przepływów dla grup zabezpieczeń sieciowych.
Konfigurowanie usługi Graylog
W tym przykładzie zarówno narzędzie Graylog, jak i usługa Logstash są konfigurowane na serwerze Ubuntu Server wdrożonym na platformie Azure.
- Zapoznaj się z dokumentacją narzędzia Graylog, aby uzyskać instrukcje krok po kroku dotyczące sposobu instalowania w systemie Ubuntu.
- Pamiętaj również, aby skonfigurować interfejs sieci Web Graylog, postępując zgodnie z dokumentacją.
W tym przykładzie użyto minimalnej konfiguracji narzędzia Graylog (tj. pojedynczego wystąpienia usługi Graylog), ale narzędzie Graylog można zaprojektować tak, aby skalować zasoby w zależności od potrzeb systemowych i produkcyjnych. Aby uzyskać więcej informacji na temat zagadnień architektonicznych lub szczegółowego przewodnika architektonicznego, zobacz dokumentację Graylog i przewodnik architektury.
Graylog można zainstalować na wiele sposobów, w zależności od platformy i preferencji. Pełną listę możliwych metod instalacji można znaleźć w oficjalnej dokumentacji grayloga. Aplikacja serwera Graylog działa w dystrybucjach systemu Linux i ma następujące wymagania wstępne:
- Java SE 8 lub nowszy — dokumentacja instalacji zestawu JDK
- Elastic Search 2.x (wersja 2.1.0 lub nowsza) — dokumentacja instalacji usługi Elasticsearch
- MongoDB 2.4 lub nowsza — dokumentacja instalacji bazy danych MongoDB
Instalowanie usługi Logstash
Usługa Logstash służy do spłaszczania dzienników przepływu sformatowanego w formacie JSON na poziomie krotki przepływu. Spłaszczanie dzienników przepływu ułatwia organizowanie i wyszukiwanie dzienników w narzędziu Graylog. Poniższe instrukcje służą do instalowania usługi Logstash w systemie Ubuntu. Aby uzyskać instrukcje dotyczące sposobu instalowania tego pakietu w systemie Red Hat Enterprise Linux, zobacz Instalowanie z repozytoriów pakietów — yum.
Aby zainstalować usługę Logstash, uruchom następujące polecenia:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elastic-keyring.gpg sudo apt-get install apt-transport-https echo "deb [signed-by=/usr/share/keyrings/elastic-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-8.x.list sudo apt-get update && sudo apt-get install logstash
Skonfiguruj usługę Logstash, aby przeanalizować dzienniki przepływu i wysłać je do usługi Graylog. Utwórz plik Logstash.conf:
sudo touch /etc/logstash/conf.d/logstash.conf
Dodaj następującą zawartość do pliku. Zmień wartości
storage_account_name
,storage_access_key
icontainer
, aby odzwierciedlały szczegóły twojego konta magazynowego.input { azureblob { storage_account_name => "mystorageaccount" storage_access_key => "NrUZmx7pJSKaRJzvQbeiZWi5nBRWOTr7Wwr9DrvK7YtDBrADYxT1y0oEExtSlkDnGRt7qcRiZzEBCCyRYND8SxSt" container => "insights-logs-networksecuritygroupflowevent" registry_create_policy => "start_over" codec => "json" file_head_bytes => 21 file_tail_bytes => 9 # Possible options: `do_not_break`, `with_head_tail`, `without_head_tail` break_json_down_policy => 'with_head_tail' break_json_batch_count => 2 interval => 5 } } 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]}" } add_field => { "time" => "%{[records][time]}" "systemId" => "%{[records][systemId]}" "category" => "%{[records][category]}" "resourceId" => "%{[records][resourceId]}" "operationName" => "%{[records][operationName}}" "Version" => "%{[records][properties][Version}}" "rule" => "%{[records][properties][flows][rule]}" "mac" => "%{[records][properties][flows][flows][mac]}" } convert => {"unixtimestamp" => "integer"} convert => {"srcPort" => "integer"} convert => {"destPort" => "integer"} add_field => { "message" => "%{Message}" } } date { match => ["unixtimestamp" , "UNIX"] } } output { stdout { codec => rubydebug } udp { host => "127.0.0.1" port => 12201 } }
Podany plik konfiguracji usługi Logstash składa się z trzech części: danych wejściowych, filtru i danych wyjściowych. Sekcja danych wejściowych wyznacza źródło wejściowe dzienników, które będą przetwarzane przez usługę Logstash — w tym przypadku użyjesz wtyczki wejściowej w blogu platformy Azure (zainstalowanej w następnych krokach), która umożliwia dostęp do plików JSON dziennika zabezpieczeń sieci przechowywanych w magazynie obiektów blob.
Następnie sekcja filtru spłaszcza każdy plik dziennika przepływu, tak aby każda pojedyncza krotka przepływu i skojarzone z nią właściwości stały się oddzielnym zdarzeniem usługi Logstash.
Na koniec sekcja danych wyjściowych przekazuje każde zdarzenie usługi Logstash do serwera Graylog. Aby dopasować się do konkretnych potrzeb, zmodyfikuj plik konfiguracji usługi Logstash zgodnie z potrzebami.
Uwaga / Notatka
Poprzedni plik konfiguracyjny zakłada, że serwer Graylog został skonfigurowany na lokalnym adresie IP pętli zwrotnej hosta 127.0.0.1. Jeśli nie, pamiętaj, aby zmienić parametr hosta w sekcji danych wyjściowych na poprawny adres IP.
Aby uzyskać dalsze instrukcje dotyczące instalowania usługi Logstash, zobacz dokumentację usługi Logstash.
Instalowanie wtyczki wejściowej usługi Logstash dla usługi Azure Blob Storage
Wtyczka Logstash umożliwia bezpośredni dostęp do dzienników przepływu z ich wyznaczonego konta pamięci masowej blob. Aby zainstalować wtyczkę, uruchom następujące polecenie z domyślnego katalogu instalacyjnego usługi Logstash (w tym przypadku /usr/share/logstash/bin):
cd /usr/share/logstash/bin
sudo ./logstash-plugin install logstash-input-azureblob
Aby uzyskać więcej informacji na temat tej wtyczki, zobacz dokumentację.
Konfigurowanie połączenia z usługi Logstash do usługi Graylog
Po nawiązaniu połączenia z dziennikami przepływu przy użyciu usługi Logstash i skonfigurowaniu serwera Graylog należy skonfigurować narzędzie Graylog tak, aby akceptował przychodzące pliki dziennika.
Przejdź do interfejsu internetowego serwera Graylog przy użyciu skonfigurowanego dla niego adresu URL. Dostęp do interfejsu można uzyskać, kierując przeglądarkę do
http://<graylog-server-ip>:9000/
Aby przejść do strony konfiguracji, wybierz menu rozwijane System na górnym pasku nawigacyjnym po prawej stronie, a następnie wybierz pozycję Dane wejściowe. Możesz też przejść do adresu
http://<graylog-server-ip>:9000/system/inputs
Aby uruchomić nowe dane wejściowe, wybierz pozycję GELF UDP z listy rozwijanej Wybierz dane wejściowe , a następnie wypełnij formularz. GELF to skrót od Graylog Extended Log Format. Format GELF jest opracowany przez Graylog. Aby dowiedzieć się więcej o jej zaletach, zobacz dokumentację usługi Graylog.
Pamiętaj, aby powiązać dane wejściowe z adresem IP skonfigurowanym na serwerze Graylog. Adres IP powinien być zgodny z polem host w wyjściu UDP pliku konfiguracyjnego Logstash. Domyślny port powinien mieć wartość 12201. Upewnij się, że port jest zgodny z polem portu w danych wyjściowych UDP wyznaczonych w pliku konfiguracji usługi Logstash.
Aby dowiedzieć się więcej na temat danych wejściowych komunikatów graylog, zapoznaj się z dokumentacją.
Po utworzeniu tych konfiguracji można uruchomić narzędzie Logstash, aby rozpocząć wczytywanie dzienników przepływu za pomocą następującego polecenia:
sudo systemctl start logstash.service
.
Przeszukiwanie komunikatów Graylogu
Po odczekaniu odpowiedniego czasu, aby serwer Graylog zebrał komunikaty, możesz je przeszukiwać. Aby sprawdzić komunikaty wysyłane do serwera Graylog, na stronie konfiguracji danych wejściowych wybierz przycisk "Pokaż odebrane komunikaty" utworzonego przez ciebie wejścia GELF UDP.
Wybierz niebieski link%{Wiadomość}, aby rozwinąć wiadomość i wyświetlić parametry przepływu w krotce.
Domyślnie wszystkie pola komunikatów są uwzględniane w wyszukiwaniu, jeśli nie wybierzesz określonego pola wiadomości do wyszukania. Jeśli chcesz wyszukać określone komunikaty (tj. przepływy danych z określonego adresu IP źródłowego), możesz użyć języka zapytań wyszukiwania Graylog, jak opisano w dokumentacji.
Analizowanie dzienników przepływów sieciowych grup zabezpieczeń przy użyciu narzędzia Graylog
Teraz, gdy aplikacja Graylog została skonfigurowana, możesz użyć niektórych jej funkcji, aby lepiej zrozumieć dane dziennika przepływu. Jednym z takich sposobów jest użycie pulpitów nawigacyjnych do tworzenia określonych widoków danych.
Tworzenie pulpitu nawigacyjnego
Na górnym pasku nawigacyjnym wybierz Pulpity lub przejdź do
http://<graylog-server-ip>:9000/dashboards/
W tym miejscu wybierz zielony przycisk Utwórz pulpit nawigacyjny i wypełnij krótki formularz tytułem i opisem pulpitu nawigacyjnego. Naciśnij przycisk Zapisz, aby utworzyć nowy pulpit nawigacyjny. Zostanie wyświetlony pulpit nawigacyjny podobny do poniższego:
Dodawanie widżetów
Możesz wybrać tytuł pulpitu nawigacyjnego, aby go wyświetlić, ale teraz jest on pusty, ponieważ nie dodaliśmy żadnych widżetów. Łatwy i przydatny widżet, który można dodać do pulpitu nawigacyjnego, to wykresy szybkich wartości, które wyświetlają listę wartości wybranego pola i ich rozkład.
Wróć do wyników wyszukiwania wejścia UDP odbierającego logi przepływu, wybierając pozycję Wyszukaj na górnym pasku nawigacyjnym.
W panelu Wyniki wyszukiwania po lewej stronie ekranu znajdź kartę Pola, która zawiera listę różnych pól każdego przychodzącego komunikatu krotki przepływu.
Wybierz dowolny parametr, który chcesz zwizualizować (w tym przykładzie wybrano źródło adresu IP). Aby wyświetlić listę możliwych widżetów, wybierz niebieską strzałkę listy rozwijanej po lewej stronie pola, a następnie wybierz pozycję Szybkie wartości , aby wygenerować widżet.
W tym miejscu możesz wybrać przycisk Dodaj do pulpitu nawigacyjnego w prawym górnym rogu widżetu i wybrać odpowiedni pulpit nawigacyjny do dodania.
Wróć do pulpitu nawigacyjnego, aby zobaczyć właśnie dodany widżet.
Do pulpitu nawigacyjnego można dodać różne inne widżety, takie jak histogramy i liczby, aby śledzić ważne metryki.
Aby uzyskać więcej informacji na temat pulpitów nawigacyjnych i innych typów widżetów, zapoznaj się z dokumentacją usługi Graylog.
Dzięki integracji usługi Network Watcher z usługą Graylog masz teraz wygodny i scentralizowany sposób zarządzania dziennikami przepływów sieciowych grup zabezpieczeń i wizualizowania ich. Narzędzie Graylog ma wiele innych zaawansowanych funkcji, takich jak strumienie i alerty, które mogą być również używane do dalszego zarządzania dziennikami przepływów i lepszego zrozumienia ruchu sieciowego. Po skonfigurowaniu usługi Graylog i nawiązaniu połączenia z platformą Azure możesz kontynuować eksplorowanie innych funkcji, które oferuje.