Merhabalar, Bu yazımızda Elastic STACK ile ağ paket analizi ortamı için gerekenleri kurulum ve konfigürasyonları yapacağız.

Bu ortam için gereken araçlar:

  • Elasticsearch
  • Filebeat
  • Kibana
  • Tshark

Ben Ubuntu 18.04 makinede çalıştığım için bu şekilde indirmekteyim.Bu kurulum Elasticsearch 7.0 ve sonrası sürümleri desteklemektedir.

Elasticsearch Kurulumu

sudo wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

sudo apt-get install apt-transport-https

sudo echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list

sudo apt-get update && sudo apt-get install elasticsearch

sudo -i service elasticsearch start

ile elasticsearch başlatılabilir.

netstat -nltp 

ile çalışan servislerde Elasticsearch’ün çalıştığı 9200 portunu gözlemleyebiliriz.

Kibana Kurulumu

sudo apt-get update && sudo apt-get install kibana

sudo -i service kibana start

localhost:5601 adresi url’e yazılır ve aşağıdaki kibana arayüzü gözlenir.

Tshark Kurulumu

sudo apt install tshark

Tshark kök kullanıcı modunda aşağıdaki komutla çalıştırılır.Bu komut ile packet capture işlemi ek ile Elasticsearch’ün indeksleyebileceği bir formata uygun olarak tshark.json dosyasına gerçek zamanlı olarak kaydedilir.

tshark -i 1 -T ek -V > /home/machine3/Desktop/logs/tshark.json

Filebeat Kurulumu

sudo apt install filebeat -f

Filebeat etc dizini altına gidilir.

Buradaki filebeat.yml dosyası aşağıdaki gibi düzenlenir. Aşağıdaki konfigürasyon için “Filebeat 7.6 Klavuzu”ndan faydalanılmıştır.

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /home/machine3/Desktop/logs/tshark.json
  json.keys_under_root: true
  fields:
   document_type: "pcap_file"


filebeat.config.modules:
  
  path: ${path.config}/modules.d/*.yml

  reload.enabled: false

setup.template.settings:
  index.number_of_shards: 1

setup.kibana:
  host: "localhost:5601"

output.elasticsearch:
  
  hosts: ["localhost:9200"]
  

processors:
 - drop_event:
     when:
       equals:
         index._type: "pcap_file"

▪ Input bölümünde ;

  • input olarak gelen verinin log tipinde olacağı,
  • paths kısmında geldiği dizini,
  • json.key_under_root: true ile varsayılan olarak, kodu çözülen JSON çıktı belgesindeki bir “json” anahtarının altına yerleştirilir. Bu ayarı etkinleştirilerek anahtar çıktı belgesinde en üst seviyeye kopyalanır. Varsayılan, false değeridir.
  • Document_type : “pcap_file” ile gelen dosyanın pcap dosyası türünde olduğunu belirtildi.

▪ Setup.kibana : host : “localhost5601” Kibana ‘nın hostunu konfigüre edildi.

▪ Output.elasticsearch: host: [“localhost:9200”] ile Elasticsearch ‘ ün output’unu konfigüre edildi.

▪ processors: - drop_event: when: equals: index._type: “pcap_file” ile indeks tipi “pcap_file” olan dosyaların drop (düşme) işlemi gerçekleştirildi.

sudo systemctl start filebeat 
sudo systemctl status filebeat 

Kibana’ya gelinir. Management kısmından Create index pattern ile indeks paterni oluşturulur. Index Management kısmında patternlere gelen yeni veriler reload indices ile yenilenebilir.

Kibana Dashboard kısmına gelerek görselleştirilme yardımıyla paketler incelenebilir.

Kaynaklar:

https://www.elastic.co/guide/en/beats/filebeat/7.x/index.html

https://www.elastic.co/blog/analyzing-network-packets-with-wireshark-elasticsearch-and-kibana