Mengelola dan menganalisis log alur kelompok keamanan jaringan pada Azure menggunakan Network Watcher dan Graylog

Perhatian

Artikel ini mereferensikan CentOS, distribusi Linux yang mendekati status End Of Life (EOL). Harap pertimbangkan penggunaan dan perencanaan Anda yang sesuai. Untuk informasi selengkapnya, lihat panduan Akhir Masa Pakai CentOS.

Log alur kelompok keamanan jaringan menyediakan informasi yang dapat digunakan untuk memahami lalu lintas IP masuk dan keluar pada antarmuka jaringan Azure. Log alur ini memperlihatkan alur keluar dan masuk per aturan dasar jaringan kelompok keamanan, jaringan antarmuka yang diterapkan pada alur, informasi 5 tupel tentang alur (IP Sumber/Tujuan, Port Sumber/Tujuan, Protokol), dan apakah lalu lintas diizinkan atau ditolak.

Anda bisa memiliki banyak kelompok keamanan jaringan pada jaringan Anda dengan pembuatan log alur yang diaktifkan. Beberapa kelompok keamanan jaringan dengan pembuatan log alur diaktifkan dapat membuatnya rumit untuk mengurai dan mendapatkan insight dari log Anda. Artikel ini menyediakan solusi untuk mengelola log alur kelompok keamanan jaringan ini secara terpusat menggunakan Graylog, alat manajemen dan analisis log sumber terbuka, dan Logstash, yakni alur pemrosesan data sisi server sumber terbuka.

Peringatan

Langkah-langkah berikut dapat digunakan dengan log alur versi 1. Untuk detailnya, lihat Pengantar pengelogan alur untuk kelompok keamanan jaringan. Instruksi berikut tidak dapat digunakan dengan versi 2 file log, tanpa perubahan.

Skenario

Log alur kelompok keamanan jaringan diaktifkan menggunakan Network Watcher. Log alur mengalir ke penyimpanan blob Azure. Plugin Logstash digunakan untuk menyambungkan dan memproses log alur dari penyimpanan blob dan mengirimnya ke Graylog. Setelah disimpan di Graylog, log alur dapat dianalisis dan divisualisasikan ke dasbor yang disesuaikan.

Alur kerja Graylog

Langkah-langkah penginstalan

Mengaktifkan pengelogan alur kelompok keamanan jaringan

Untuk skenario ini, Anda harus mengaktifkan pengelogan alur kelompok keamanan jaringan pada setidaknya satu kelompok keamanan jaringan di akun Anda. Untuk melihat petunjuk cara mengaktifkan log alur kelompok keamanan jaringan, lihat artikel berikut: Pengantar pengelogan alur untuk kelompok keamanan jaringan.

Menyiapkan Graylog

Dalam contoh ini, Graylog dan Logstash dikonfigurasi pada Ubuntu Server, yang disebarkan di Azure.

  • Lihat dokumentasi Graylog, untuk petunjuk langkah demi langkah tentang cara melakukan penginstalan ke Ubuntu.
  • Pastikan juga untuk mengonfigurasi antarmuka web Graylog dengan mengikuti dokumentasi.

Contoh ini menggunakan pengaturan Graylog minimum (yaitu satu instans Graylog), tetapi Graylog dapat dirancang untuk menskalakan seluruh sumber daya tergantung pada sistem dan kebutuhan produksi Anda. Untuk informasi selengkapnya tentang pertimbangan arsitektur atau panduan arsitektur yang mendalam, lihat dokumentasi graylog dan panduan arsitektur.

Graylog dapat diinstal dengan banyak cara, tergantung pada platform dan preferensi Anda. Untuk daftar lengkap metode penginstalan yang memungkinkan, lihat dokumentasi resmi Graylog. Aplikasi server Graylog berjalan pada distribusi Linux dan memiliki prasyarat berikut:

Menginstal Logstash

Logstash digunakan untuk meratakan log alur berformat JSON ke tingkat tupel aliran. Meratakan log alur membuat log lebih mudah diatur dan dicari di Graylog. Instruksi berikut digunakan untuk menginstal Logstash di Ubuntu. Untuk petunjuk tentang cara menginstal paket ini di RHEL/CentOS, lihat artikel Menginstal dari Repositori Paket - yum .

  1. Untuk menginstal Logstash, jalankan langkah-langkah berikut:

    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
    
  2. Konfigurasikan Logstash untuk mengurai log alur dan mengirimnya ke Graylog. Buat file Logstash.conf:

    sudo touch /etc/logstash/conf.d/logstash.conf
    
  3. Tambahkan konten berikut ke file. storage_account_nameUbah nilai , storage_access_key, dan container untuk mencerminkan detail akun penyimpanan Anda:

     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
         }
     }
    

    File konfigurasi Logstash yang disediakan terdiri dari tiga bagian: input, filter, dan output. Bagian input menunjuk sumber input log yang akan diproses Logstash - dalam hal ini, Anda akan menggunakan plugin input blog Azure (diinstal pada langkah berikutnya) yang memungkinkan kami mengakses file JSON log alur grup keamanan jaringan yang disimpan dalam penyimpanan blob.

Bagian filter kemudian meratakan setiap file log alur sehingga setiap tupel alur individu dan properti terkait menjadi peristiwa Logstash terpisah.

Pada akhirnya, bagian output meneruskan setiap peristiwa Logstash ke server Graylog. Agar sesuai dengan kebutuhan spesifik Anda, ubah file konfigurasi Logstash, sesuai kebutuhan.

Catatan

File konfigurasi sebelumnya mengasumsikan bahwa server Graylog telah dikonfigurasi pada alamat IP loopback host lokal 127.0.0.1. Jika tidak, pastikan untuk mengubah parameter host di bagian output ke alamat IP yang benar.

Untuk instruksi lebih lanjut tentang cara menginstal Logstash, lihat dokumentasi Logstash.

Menginstal plugin input Logstash untuk penyimpanan Azure Blob

Plugin Logstash ini memungkinkan Anda untuk langsung mengakses log alur dari akun penyimpanan blob yang ditetapkan. Untuk menginstal plug-in ini, dari direktori penginstalan Logstash default (dalam hal ini /usr/share/logstash/bin), jalankan langkah-langkah berikut:

cd /usr/share/logstash/bin
sudo ./logstash-plugin install logstash-input-azureblob

Untuk informasi lebih lanjut tentang plugin ini, lihat dokumentasi.

Menyiapkan koneksi dari Logstash ke Graylog

Sekarang setelah Anda membuat koneksi ke log alur menggunakan Logstash dan mengatur server Graylog, Anda perlu mengonfigurasi Graylog untuk menerima file log masuk.

  1. Buka antarmuka web Graylog Server Anda menggunakan URL yang Anda konfigurasi untuk antarmuka tersebut. Anda dapat mengakses antarmuka dengan mengarahkan browser Anda ke http://<graylog-server-ip>:9000/

  2. Untuk menavigasi ke halaman konfigurasi, pilih menu drop-down Sistem di bilah navigasi atas di sebelah kanan, lalu klik Input. Jika tidak, navigasi ke http://<graylog-server-ip>:9000/system/inputs

    Memulai

  3. Untuk meluncurkan input baru, pilih GELF UDP pada bagian Pilih input di menu drop-down, lalu isi formulir. GELF adalah singkatan dari Graylog Extended Log Format. Format GELF dikembangkan oleh Graylog. Untuk mempelajari lebih lanjut keuntungannya, lihat dokumentasi Graylog.

    Pastikan untuk mengikat input ke IP tempat Anda mengonfigurasi server Graylog Anda. Alamat IP harus cocok dengan bidang host dari output UDP dari file konfigurasi Logstash. Port default harus 12201. Pastikan port cocok dengan bidang port dalam output UDP yang ditetapkan dalam file konfigurasi Logstash.

    Cuplikan layar memperlihatkan Input Graylog, dengan opsi untuk meluncurkan dan menemukan input.

    Setelah Anda meluncurkan input, Anda akan melihatnya muncul di bawah bagian Input lokal, seperti yang diperlihatkan dalam gambar berikut:

    Cuplikan layar yang menampilkan bagian Input lokal yang berisi input yang Anda luncurkan.

    Untuk mempelajari input pesan Graylog lebih lanjut, lihat dokumentasi.

  4. Setelah konfigurasi ini dibuat, Anda dapat memulai Logstash untuk mulai membaca log alur dengan perintah berikut: sudo systemctl start logstash.service.

Mencari melalui pesan Graylog

Setelah menunggu beberapa saat agar server Graylog Anda mengumpulkan pesan, Anda dapat mencari melalui pesan. Untuk memeriksa pesan yang dikirim ke server Graylog Anda, dari halaman Konfigurasi input klik tombol "Tampilkan pesan yang diterima" dari input GELF UDP yang Anda buat. Anda diarahkan ke layar yang terlihat mirip dengan gambar berikut:

Cuplikan layar menampilkan server Graylog yang menampilkan Hasil pencarian, Histogram, dan Pesan.

Mengklik tautan biru "%{Message}" memperluas setiap pesan untuk memperlihatkan parameter setiap tuple alur, seperti yang ditunjukkan pada gambar berikut:

Cuplikan layar memperlihatkan detail pesan dari server Graylog.

Secara default, semua bidang pesan disertakan dalam pencarian jika Anda tidak memilih bidang pesan tertentu untuk dicari. Jika Anda ingin mencari pesan tertentu (yaitu - tuple alur dari IP sumber tertentu) Anda dapat menggunakan bahasa kueri pencarian Graylog seperti yang didokumenkan

Menganalisis log alur kelompok keamanan jaringan menggunakan Graylog

Sekarang dengan berjalannya Graylog yang telah diatur, Anda dapat menggunakan beberapa fungsinya untuk lebih memahami data log alur Anda. Salah satu caranya adalah dengan menggunakan dasbor untuk membuat tampilan tertentu dari data Anda.

Membuat dasbor

  1. Di bilah navigasi atas, pilih Dasbor atau navigasi ke http://<graylog-server-ip>:9000/dashboards/

  2. Dari sana, klik tombol hijau Buat dasbor dan isi formulir singkat dengan judul dan deskripsi dasbor Anda. Tekan tombol Simpan untuk membuat dasbor baru. Anda melihat dasbor yang mirip dengan gambar berikut ini:

    Cuplikan layar menampilkan Dasbor server Graylog, dengan opsi untuk membuat dan mengedit dasbor.

Menambahkan widget

Anda dapat mengklik judul dasbor untuk melihatnya, tetapi saat ini kosong, karena kami belum menambahkan widget apa pun. Widget jenis yang mudah dan berguna untuk ditambahkan ke dasbor adalah bagan Nilai Cepat, yang menampilkan daftar nilai bidang yang dipilih dan distribusinya.

  1. Navigasi kembali ke hasil pencarian input UDP yang menerima log alur dengan memilih Cari dari bilah navigasi atas.

  2. Di bagian panel Hasil pencarian di sisi kiri layar, temukan tab Bidang, yang mencantumkan berbagai bidang dari setiap pesan tupel alur yang masuk.

  3. Pilih parameter yang diinginkan untuk melihat visualisasi (dalam contoh ini, sumber IP dipilih). Untuk menampilkan daftar widget yang memungkinkan, klik panah drop-down biru di sebelah kiri bidang, lalu pilih Nilai Cepat untuk membuat widget. Anda akan melihat sesuatu yang mirip dengan teks berikut:

    IP Sumber

  4. Dari sana, Anda dapat memilih tombol Tambahkan ke dasbor di sudut kanan atas widget dan pilih dasbor yang sesuai untuk ditambahkan.

  5. Navigasi kembali ke dasbor untuk melihat widget yang baru saja Anda tambahkan.

    Anda dapat menambahkan berbagai widget lain seperti histogram dan hitungan ke dasbor Anda untuk melacak metrik penting, seperti dasbor sampel yang diperlihatkan dalam gambar berikut:

    Dasbor log alur

    Untuk penjelasan lebih lanjut tentang dasbor dan jenis widget lainnya, lihat dokumentasi Graylog.

Dengan mengintegrasikan Network Watcher dengan Graylog, Anda sekarang memiliki cara yang nyaman dan terpusat untuk mengelola dan memvisualisasikan log alur kelompok keamanan jaringan. Graylog memiliki sejumlah fitur grafik canggih lainnya yang juga dapat digunakan untuk mengelola log alur lebih lanjut dan lebih memahami lalu lintas jaringan Anda. Sekarang setelah Anda memiliki instans Graylog yang disiapkan dan terhubung ke Azure, jangan ragu untuk terus menjelajahi fungsionalitas lain yang ditawarkannya.

Langkah berikutnya

Pelajari cara memvisualisasikan log alur kelompok keamanan jaringan Anda dengan Power BI dengan mengunjungi Membuat visualisasi log alur kelompok keamanan jaringan dengan Power BI.