Ağ İzleyicisi ve Graylog kullanarak Azure'da ağ güvenlik grubu akış günlüklerini yönetme ve analiz etme
Ağ güvenlik grubu akış günlükleri , Azure ağ arabirimleri için giriş ve çıkış IP trafiğini anlamak için kullanabileceğiniz bilgiler sağlar. Akış günlükleri ağ güvenlik grubu başına kural temelinde giden ve gelen akışları, akışın uygulandığı ağ arabirimini, akışla ilgili 5 tanımlama grubu bilgilerini (Kaynak/Hedef IP, Kaynak/Hedef Bağlantı Noktası, Protokol) ve trafiğe izin verilip verilmediğini gösterir.
Akış günlüğü etkinken ağınızda birçok ağ güvenlik grubu olabilir. Akış günlüğünün etkinleştirildiği birkaç ağ güvenlik grubu, günlüklerinizi ayrıştırmanızı ve günlüklerinizden içgörüler elde etmenizi zahmetli hale getirir. Bu makalede, bir açık kaynak günlük yönetimi ve çözümleme aracı olan Graylog ve açık kaynak sunucu tarafı veri işleme işlem hattı Logstash kullanılarak bu ağ güvenlik grubu akış günlüklerini merkezi olarak yönetmeye yönelik bir çözüm sağlanır.
Uyarı
Aşağıdaki adımlar akış günlükleri sürüm 1 ile çalışır. Ayrıntılar için bkz . Ağ güvenlik grupları için akış günlüğüne giriş. Aşağıdaki yönergeler değişiklik yapılmadan günlük dosyalarının 2. sürümüyle çalışmaz.
Senaryo
Ağ güvenlik grubu akış günlükleri Ağ İzleyicisi kullanılarak etkinleştirilir. Akış günlükleri Azure blob depolama alanına akar. Blob depolamadan akış günlüklerine bağlanmak ve bunları Graylog'a göndermek için logstash eklentisi kullanılır. Akış günlükleri Graylog'da depolandıktan sonra analiz edilebilir ve özelleştirilmiş panolar halinde görselleştirilebilir.
Yükleme Adımları
Ağ güvenlik grubu akış günlüğünü etkinleştirme
Bu senaryo için, hesabınızdaki en az bir ağ güvenlik grubunda ağ güvenlik grubu akış günlüğünü etkinleştirmiş olmanız gerekir. Ağ güvenlik grubu akış günlüklerini etkinleştirme yönergeleri için aşağıdaki Ağ güvenlik grupları için akış günlüğüne giriş makalesine bakın.
Graylog'un ayarlanması
Bu örnekte hem Graylog hem de Logstash, Azure'da dağıtılan bir Ubuntu Sunucusunda yapılandırılır.
- Ubuntu'ya yükleme hakkında adım adım yönergeler için Graylog belgelerine bakın.
- Belgeleri izleyerek Graylog web arabirimini de yapılandırdığından emin olun.
Bu örnekte en düşük Graylog kurulumu (graylog'un tek bir örneği) kullanılır, ancak Graylog, sisteminize ve üretim gereksinimlerinize bağlı olarak kaynaklar arasında ölçeklendirilecek şekilde tasarlanabilir. Mimari konuları veya derin mimari kılavuzu hakkında daha fazla bilgi için Graylog belgelerine ve mimari kılavuzuna bakın.
Graylog, platformunuza ve tercihlerinize bağlı olarak birçok şekilde yüklenebilir. Olası yükleme yöntemlerinin tam listesi için Graylog'un resmi belgelerine bakın. Graylog sunucu uygulaması Linux dağıtımlarında çalışır ve aşağıdaki önkoşullara sahiptir:
- Java SE 8 veya üzeri - JDK yükleme belgeleri
- Elastik Arama 2.x (2.1.0 veya üzeri) - Elasticsearch yükleme belgeleri
- MongoDB 2.4 veya üzeri - MongoDB yükleme belgeleri
Logstash'ı yükleme
Logstash, JSON biçimli akış günlüklerini akış tanımlama grubu düzeyine düzleştirme amacıyla kullanılır. Akış günlüklerini düzleştirme, günlüklerin Graylog'da düzenlenmesini ve aranmasını kolaylaştırır. Aşağıdaki yönergeler Logstash'ı Ubuntu'ya yüklemek için kullanılır. Bu paketi Red Hat Enterprise Linux'a yükleme yönergeleri için bkz . Paket Depolarından Yükleme - yum.
Logstash'ı yüklemek için aşağıdaki komutları çalıştırın:
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
Logstash'i akış günlüklerini ayrıştıracak ve Graylog'a gönderecek şekilde yapılandırın. Logstash.conf dosyası oluşturma:
sudo touch /etc/logstash/conf.d/logstash.conf
Dosyaya aşağıdaki içeriği ekleyin.
storage_account_name
,storage_access_key
vecontainer
değerlerini depolama hesabı ayrıntılarınızı yansıtacak şekilde değiştirin: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 } }
Sağlanan Logstash yapılandırma dosyası üç bölümden oluşur: giriş, filtre ve çıkış. Giriş bölümünde Logstash'in işleyecekleri günlüklerin giriş kaynağı gösterilir. Bu durumda, blob depolamada depolanan ağ güvenlik grubu akış günlüğü JSON dosyalarına erişmemizi sağlayan bir Azure blog giriş eklentisi (sonraki adımlarda yüklü) kullanacaksınız.
Filtre bölümü daha sonra her akış günlüğü dosyasını düzleştirerek her akış tanımlama grubu ve ilişkili özellikleri ayrı bir Logstash olayına dönüşür.
Son olarak, çıkış bölümü her Logstash olayını Graylog sunucusuna iletir. Özel gereksinimlerinize uyacak şekilde Logstash yapılandırma dosyasını gerektiği gibi değiştirin.
Not
Önceki yapılandırma dosyası, Graylog sunucusunun yerel ana bilgisayar geri döngü IP adresi 127.0.0.1 üzerinde yapılandırıldığını varsayar. Aksi takdirde, çıkış bölümündeki konak parametresini doğru IP adresiyle değiştirdiğinizden emin olun.
Logstash'ı yükleme hakkında daha fazla yönerge için Logstash belgelerine bakın.
Azure blob depolama için Logstash giriş eklentisini yükleme
Logstash eklentisi, akış günlüklerine belirlenen blob depolama hesabından doğrudan erişmenizi sağlar. Eklentiyi yüklemek için varsayılan Logstash yükleme dizininden (bu örnekte /usr/share/logstash/bin) aşağıdaki komutu çalıştırın:
cd /usr/share/logstash/bin
sudo ./logstash-plugin install logstash-input-azureblob
Bu eklenti hakkında daha fazla bilgi için belgelere bakın.
Logstash'ten Graylog'a bağlantıyı ayarlama
Logstash kullanarak akış günlüklerine bağlantı kurduğunuza ve Graylog sunucusunu ayarladığınıza göre, gelen günlük dosyalarını kabul etmek için Graylog'ı yapılandırmanız gerekir.
Yapılandırdığınız URL'yi kullanarak Graylog Server web arabiriminize gidin. Tarayıcınızı şu şekilde yönlendirerek arabirime erişebilirsiniz:
http://<graylog-server-ip>:9000/
Yapılandırma sayfasına gitmek için, sağ üst gezinti çubuğunda Sistem açılan menüsünü seçin ve girişler'e tıklayın. Alternatif olarak,
http://<graylog-server-ip>:9000/system/inputs
Yeni girişi başlatmak için Giriş seçin açılan listesinde GELF UDP'yi seçin ve formu doldurun. GELF, Graylog Genişletilmiş Günlük Biçimi anlamına gelir. GELF biçimi Graylog tarafından geliştirilmiştir. Avantajları hakkında daha fazla bilgi edinmek için Graylog belgelerine bakın.
Girişi Graylog sunucunuzu yapılandırdığınız IP'ye bağladığınızdan emin olun. IP adresi, Logstash yapılandırma dosyasının UDP çıkışının konak alanıyla eşleşmelidir. Varsayılan bağlantı noktası 12201 olmalıdır. Bağlantı noktasının Logstash yapılandırma dosyasında belirlenen UDP çıkışındaki bağlantı noktası alanıyla eşleştiğinden emin olun.
Girişi başlattıktan sonra, aşağıdaki resimde gösterildiği gibi Yerel girişler bölümünün altında gösterildiğini görmeniz gerekir:
Graylog ileti girişleri hakkında daha fazla bilgi edinmek için belgelere bakın.
Bu yapılandırmalar yapıldıktan sonra Logstash'i başlatarak akış günlüklerinde okumaya başlamak için şu komutu kullanabilirsiniz:
sudo systemctl start logstash.service
.
Graylog iletileri arasında arama
Graylog sunucunuzun iletileri toplaması için biraz zaman verdikten sonra, iletilerde arama yapabiliyorsunuz. Graylog sunucunuza gönderilen iletileri denetlemek için, Girişler yapılandırma sayfasında oluşturduğunuz GELF UDP girişinin "Alınan iletileri göster" düğmesine tıklayın. Aşağıdaki resme benzer bir ekrana yönlendirilirsiniz:
Mavi "%{Message}" bağlantısına tıklanması, aşağıdaki resimde gösterildiği gibi her bir iletinin her akış tanımlama grubunun parametrelerini gösterecek şekilde genişletir:
Varsayılan olarak, aranacak belirli bir ileti alanını seçmezseniz tüm ileti alanları aramaya eklenir. Belirli iletileri (belirli bir kaynak IP'den akış demetleri) aramak istiyorsanız, Graylog arama sorgu dilini belgelendiği gibi kullanabilirsiniz
Graylog kullanarak ağ güvenlik grubu akış günlüklerini analiz etme
Artık Graylog'un çalıştığına göre, akış günlüğü verilerinizi daha iyi anlamak için bazı işlevlerini kullanabilirsiniz. Bunun bir yolu, verilerinizin belirli görünümlerini oluşturmak için panoları kullanmaktır.
Pano oluşturma
Üst gezinti çubuğunda Panolar'ı seçin veya
http://<graylog-server-ip>:9000/dashboards/
Buradan yeşil Pano oluştur düğmesine tıklayın ve kısa formu panonuzun başlığı ve açıklamasıyla doldurun. Yeni panoyu oluşturmak için Kaydet düğmesine basın. Aşağıdaki resme benzer bir pano görürsünüz:
Pencere öğeleri ekleme
Panonun başlığına tıklayarak panoyu görebilirsiniz, ancak şu anda hiçbir pencere öğesi eklemediğimiz için boş. Panoya eklemek için kolay ve kullanışlı bir pencere öğesi, seçilen alanın değerlerinin listesini ve bunların dağıtımını görüntüleyen Hızlı Değerler grafikleridir.
Üst gezinti çubuğundan Ara'yı seçerek akış günlüklerini alan UDP girişinin arama sonuçlarına geri dönün.
Ekranın sol tarafındaki Arama sonucu panelinin altında, gelen her akış tanımlama grubu iletisinin çeşitli alanlarını listeleyen Alanlar sekmesini bulun.
Görselleştirilecek istediğiniz parametreyi seçin (bu örnekte, IP kaynağı seçilidir). Olası pencere öğelerinin listesini göstermek için, alanın sol kısmındaki mavi açılan oka tıklayın ve ardından Pencere öğesini oluşturmak için Hızlı değerler'i seçin. Aşağıdaki resme benzer bir şey görmeniz gerekir:
Buradan, pencere öğesinin sağ üst köşesindeki Panoya ekle düğmesini ve eklenecek ilgili panoyu seçebilirsiniz.
Yeni eklediğiniz pencere öğesini görmek için panoya geri dönün.
Aşağıdaki resimde gösterilen örnek pano gibi önemli ölçümleri izlemek için panonuza histogramlar ve sayımlar gibi çeşitli diğer pencere öğeleri ekleyebilirsiniz:
Panolar ve diğer pencere öğesi türleri hakkında daha fazla açıklama için Graylog'un belgelerine bakın.
Ağ İzleyicisi Graylog ile tümleştirerek artık ağ güvenlik grubu akış günlüklerini yönetmek ve görselleştirmek için kullanışlı ve merkezi bir yönteme sahip olursunuz. Graylog, akış günlüklerini daha fazla yönetmek ve ağ trafiğinizi daha iyi anlamak için de kullanılabilecek akışlar ve uyarılar gibi başka güçlü özelliklere sahiptir. Graylog'u ayarladığınıza ve Azure'a bağlandığınıza göre, sunduğu diğer işlevleri keşfetmeye devam edebilirsiniz.
Sonraki adımlar
Power BI ile ağ güvenlik grubu akış günlüklerini görselleştirme sayfasını ziyaret ederek Power BI ile ağ güvenlik grubu akış günlüklerinizi görselleştirmeyi öğrenin.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin