Di pertengahan tahun 90-an, Cisco memperkenalkan fitur NetFlow pada router yang diproduksinya. Fitur NetFlow ini menyediakan kemampuan untuk mengumpulkan informasi packet masuk maupun packet keluar dari sebuah network interface. Secara umum, setup NetFlow terdiri dari 3 komponen utama, yaitu:
- Flow Exporter: Bertugas mengumpulkan network packets, kemudian mengirimkan ke Flow Collector.
- Flow Collector: Bertugas menerima dan melakukan preprocessing data yang diterima dari Flow Exporter.
- Aplikasi Analisis: Aplikasi yang bertugas menganalisa data yang diterima dari Flow Collector, dan biasanya memvisualisasikan data yang diterima dalam bentuk grafik.
Fitur NetFlow ini kemudian diimplementasikan oleh banyak perusahaan yang memproduksi router dan switch dengan nama yang berbeda. Sebagai contoh, Juniper Networks menggunakan nama J-Flow sedangkan MikroTik menggunakan nama Traffic Flow.
Kebetulan, saya menggunakan router MikroTik RB450G, dan di kesempatan kali ini saya ingin berbagi informasi tentang cara menggunakan fitur Traffic Flow pada router MikroTik, dan mengintegrasikan-nya dengan Filebeat, ElasticSearch dan Kibana.
Prasyarat
Sebelum memulai, Anda perlu menginstall dan memastikan bahwa Filebeat, ElasticSearch dan Kibana berjalan dengan baik karena saya tidak akan mengulas cara menginstall aplikasi-aplikasi tersebut disini. Silahkan mengikuti proses installasi dan konfigurasi dari halaman dokumentasi terkait:
Sebagai tambahan informasi terkait artikel ini, saya menginstall Filebeat di sebuah mesin Linux yang masih berada di satu jaringan dengan router MikroTik saya. Sedangkan untuk ElasticSearch dan Kibana, saya menginstallnya di sebuah VPS.
Hak Akses Untuk Filebeat
Saya membuat 1 user baru dengan hak akses khusus yang nantinya digunakan oleh
Filebeat untuk mengirimkan data yang diproses dari router ke ElasticSearch.
Caranya, dari Dashboard Kibana, masuk ke “Management” > “Security” >
“Roles”. Buat sebuah role baru, dan beri nama yang untuk untuk role
tersebut. Di artikel ini saya menamainya dengan filebeat_setup
.
Pada bagian “Cluster privileges” saya memberikan akses berikut:
monitor
manage_ilm
manage_index_templates
manage_collector
manage_ingest_pipelines
manage_logstash_pipelines
manage_ml
manage_pipeline
Kemudian pada bagian “Index privileges”, saya memberikan all
Privileges untuk semua Incides.
Masih dari halaman “Management” > “Security”, masuk ke halaman
“Users” dan buat sebuah user baru. Saya menamai user baru tersebut dengan
nama custom_filebeat
. Pada bagian “Privileges”, saya memberikan role
filebeat_setup
yang sudah kita tambahkan sebelumnya. Selain itu, saya
memberikan role berikut:
kibana_admin
ingest_admin
editor
monitoring_user
kibana_system
Filebeat NetFlow Module
Login ke mesin Linux yang sudah terinstall Filebeat dan sesuaikan konfigurasi
pada /etc/filebeat/filebeat.yml
, terutama pada bagian setup.kibana
dan
output.elasticsearch
. Konfigurasi filebeat.yml
saya kurang lebih sebagai
berikut:
1setup.kibana:
2 host: "https://kibana.ditatompel.com:443"
3
4output.elasticsearch:
5 hosts: ["https://elastic-ap-southeast1-ctb1.ditatompel.com:443"]
6 username: "custom_filebeat"
7 password: "MySuperSecretPasswordThatMayAppearsOnYourFreakinAICompletions"
8 ssl:
9 enabled: true
Kemudian edit /etc/filebeat/modules.d/netflow.yml.disabled
dan ubah
netflow_host
ke 0.0.0.0
supaya Filebeat dapat menerima data dari router
MikroTik. Kurang lebih konfigurasi module netflow
saya seperti berikut:
1- module: netflow
2 log:
3 enabled: true
4 var:
5 netflow_host: 0.0.0.0
6 netflow_port: 2055
7 internal_networks:
8 - private
Setelah itu, enable netflow
module dengan menjalankan perintah sudo filebeat modules enable filebeat
. Untuk melihat module yang tersedia, baik
yang aktif maupun tidak, gunakan perintah sudo filebeat modules list
.
Kemudian jalankan perintah sudo filebeat setup -e
untuk melakukan setup
index template dan dashboards pada Kibana.
Terakhir, restart filebeat service dengan menjalankan perintah sudo systemctl restart filebeat
.
Konfigurasi Traffic Flow MikroTik
Login ke router MikroTik, Anda bisa menggunakan SSH atau Winbox. Di artikel ini, saya menggunakan Winbox untuk mempermudah konfigurasi.
Masuk ke “IP” > “Traffic Flow”. Klik pada menu “Targets” dan tambahkan target baru. Ubah “Dst. Address” ke alamat IP dimana Filebeat server berjalan. Ubah “Version” ke “IPFIX” dan pastikan checkbox “Enabled” tercentang. Kemudian tekan tombol “Ok”.
Pada menu “Traffic Flow Settings”, pilih “Interfaces” yang ingin diproses dan pastikan pastikan checkbox “Enabled” tercentang.
Kibana Dashboard
Untuk hasil NetFlow yang telah diproses, masuk ke “Analytics” > “Dashboards”. Disana akan muncul banyak dashboard yang sudah tergenerate secara otomatis oleh Filebeat. Cari dengan kata kunci “netflow” dan silahkan mengeksplor berbagai macam informasi yang sudah tersedia.