Zarządzanie dziennikami przepływów sieciowych grup zabezpieczeń i analizowanie ich na platformie Azure przy użyciu usługi Network Watcher i Graylog
Ważne
30 września 2027 r. dzienniki przepływów sieciowej grupy zabezpieczeń zostaną wycofane. W ramach tego wycofania nie będzie już można tworzyć nowych dzienników przepływów sieciowej grupy zabezpieczeń od 30 czerwca 2025 r. Zalecamy migrację do dzienników przepływów sieci wirtualnej, co pozwala wyeliminować ograniczenia dzienników przepływów sieciowej grupy zabezpieczeń. Po dacie wycofania analiza ruchu włączona z dziennikami przepływów sieciowej grupy zabezpieczeń nie będzie już obsługiwana, a istniejące zasoby przepływów sieciowej grupy zabezpieczeń w subskrypcjach zostaną usunięte. Jednak rekordy dzienników przepływu sieciowej grupy zabezpieczeń nie zostaną usunięte i będą nadal zgodne z odpowiednimi zasadami 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 sieciowej grupy zabezpieczeń, interfejs sieciowy, którego dotyczy przepływ, informacje o krotce 5(źródłowy/docelowy adres IP, port źródłowy/docelowy, protokół) dotyczące przepływu, a jeśli 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ł zawiera rozwiązanie do centralnego zarządzania dziennikami przepływów sieciowych grup zabezpieczeń przy użyciu usługi Graylog, narzędzia do zarządzania dziennikami typu open source i narzędzia do analizy oraz usługi Logstash, potoku przetwarzania danych po stronie serwera typu open source.
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 sieciowych grup zabezpieczeń są włączone przy użyciu usługi Network Watcher. Przepływ dzienników przepływu 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łączanie rejestrowania przepływu sieciowej grupy 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 sieciowej grupy zabezpieczeń, zapoznaj się z następującym artykułem Wprowadzenie do rejestrowania przepływów dla sieciowych grup zabezpieczeń.
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ń dotyczących architektury lub szczegółowego przewodnika dotyczącego architektury, zobacz dokumentację i przewodnik architektury grayloga.
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.
storage_account_name
Zmień wartości , icontainer
,storage_access_key
aby odzwierciedlały szczegóły konta magazynu: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 przepływu sieciowej grupy zabezpieczeń 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
Poprzedni plik konfiguracji zakłada, że serwer Graylog został skonfigurowany na lokalnym adresie IP sprzężenia zwrotnego 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 wyznaczonego konta magazynu obiektów 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 kliknij 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 hosta danych wyjściowych UDP pliku konfiguracji 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.
Po uruchomieniu danych wejściowych powinny zostać wyświetlone w sekcji Dane wejściowe lokalne, jak pokazano na poniższej ilustracji:
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ąć odczytywanie w dziennikach przepływu za pomocą następującego polecenia:
sudo systemctl start logstash.service
.
Przeszukiwanie komunikatów graylogu
Po pewnym czasie na zbieranie komunikatów przez serwer Graylog można przeszukiwać komunikaty. Aby sprawdzić komunikaty wysyłane do serwera Graylog, na stronie Konfiguracja danych wejściowych kliknij przycisk "Pokaż odebrane komunikaty" utworzonego danych wejściowych GELF UDP. Zostanie skierowany do ekranu, który wygląda podobnie do poniższego obrazu:
Kliknięcie niebieskiego linku "%{Message}" rozszerza każdy komunikat, aby wyświetlić parametry każdej krotki przepływu, jak pokazano na poniższej ilustracji:
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. krotki przepływu z określonego źródłowego adresu IP), możesz użyć języka zapytań wyszukiwania Graylog zgodnie z dokumentacją
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 pozycję Pulpity nawigacyjne lub przejdź do
http://<graylog-server-ip>:9000/dashboards/
W tym miejscu kliknij 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 kliknąć 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 typu do dodania do pulpitu nawigacyjnego to wykresy Szybkie wartości , które wyświetlają listę wartości wybranego pola i ich rozkład.
Wróć do wyników wyszukiwania danych wejściowych UDP odbierających dzienniki 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 żądany parametr, w którym chcesz zwizualizować (w tym przykładzie wybrano źródło adresu IP). Aby wyświetlić listę możliwych widżetów, kliknij niebieską strzałkę listy rozwijanej po lewej stronie pola, a następnie wybierz pozycję Szybkie wartości , aby wygenerować widżet. Powinna zostać wyświetlona zawartość podobna do poniższej:
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, takie jak przykładowy pulpit nawigacyjny pokazany na poniższej ilustracji:
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.
Następne kroki
Dowiedz się, jak wizualizować dzienniki przepływu sieciowej grupy zabezpieczeń za pomocą usługi Power BI, odwiedzając stronę Visualize network security group flows logs with Power BI (Wizualizowanie dzienników przepływów sieciowych grup zabezpieczeń za pomocą usługi Power BI).