Filebeat Kullanımı

Merhabalar, filebeat kurulumundan ve günlük dosyalarından logların nasıl toplanıldığını, sonrasında da logstash üzerinden işlenerek elasticsearch üzerine nasıl aktarıldığından bahsedeceğim. Bir önceki blog yazımda ELK STACK kurulumu üzerinde durmuştum. Beats family ile ilgilide sözel olarak anlatmıştım.

Filebeat Nedir?

Filebeat, günlük (log) dosyalarını  toplayarak ve aktarımı hızlı bir şekilde yapmak için kullanılan beats ailesinin bir üyesidir. Filebeat kullanımı ELK Stack üzerinde yaygındır.

Filebeat Kurulumu 

https://www.elastic.co/downloads/beats/filebeat   adresi üzerinden linux ve windows işletim sistemleri için kurulum dosyaları mevcuttur. Kurulumu ubuntu server üzerinde yapacağım. sudo apt-get install filebeat diyerek kurulumu kolayca gerçekleştiriyoruz.

Ardından konfigürasyon ayarlarını yapmak için nano /etc/filebeat/filebeat.yml dosyasına girerek output kısmından logların toplandıktan sonra iletileceği kısmı ayarlamamız gerekmektedir. Burası default olarak kaldığında Elasticsearch output aktif haldedir. Fakat aşağıdaki kısımda Logstashe yönlendirme yapmaktayım. Nedeni toplanan logların işlenmesi gerektiğindendir.

Filebeat Kullanımı

Filebeat kullanılması için, ilk olarak filebeat.yml içerisine günlük dosyalarının konumunu belirtmek gerekiyor. Linux sistemler içerisindeki günlükler /var/log dizini altında bulunmaktadır. Windows işletim sistemlerinde ise C:\Windows\System32  dizininde geneli bulunmaktadır. Aşağıdaki görselde görülen ubuntu server içerisindeki Filebeat, Filebeat inputs kısmına log dosyanının yolunu belirterek, hangi uygulamanın ya da servisin logunu almak istiyorsak ekliyoruz. Kurulum yaptığımız vakit logstashe yönlendirmemizi de tamamlamıştık, sıra logstash üzerinden filter ile ayarlamamız gerekmektedir.

Filebeat inputs kısmına yazmadan da log dosyaları modüller üzerinden yapılmaktadır. Fakat kısa yol olarak filebeat.yml içerisine yazmak daha kolaydır. Modül içeriğini düzenleyerek ve enable ederek aktif hale getirebilirsiniz.

 

Logstash/conf.d

Evet,  günlük dosyaları içerisindeki logları filebeat ile toplamayı başardık. Fakat bunu unutmayalım bütün logları filebeat üzerinden alamayız. Beats ailesinindeki diğer üyelerin amacı farklı logları almaktır. Diğer beats üyelerini diğer blog yazılarımda bahsedeceğim.

Yukarıdaki işlemlerde toplanan logları logstashe yönlendirdik, yukarıda filebeat.yml içerisindeki auth.log içerisinde ssh bağlantı logları bulunmaktadır. Bakalım normalde log dosyası içerisinde nasıl görünüyor.

Yukarıdaki gibi ssh bağlantısı şu IP adresinden şu Port ile iletişime geçerek ssh bağlantısı vs. gerçekleştirildiğini anlıyoruz. Ama bu karışıklılığı önlemek için logstash’e filter yazılması gerekmektedir. Output olarak ise işlenmiş logların elasticsearch’e aktarılması gerekmektedir. Elasticsearch benim yapımda hem veritabanı hem de index arama motoru olarak kullanılmaktadır.

Filter kısmını yazdıktan sonra aşağıdaki message kısmındaki ifadelerin fields olarak ayrı ayrı görülmesi sağlanmaktadır. Çünkü bir SIEM ürününde korelasyon yazılması fieldslar üzerine kurulan taxonomyler sayesinde korelasyonların oluşmasıdır.

Aşağıdaki görseldeki ssh logunda gerçekleşen bir olay hakkında senaryo üreteceğim. Furkan kullanıcısı ile ssh bağlantısı gerçekleştirildikten sonra root yetkisi için sudo su çalıştırıyor ise alert üret.

Diğer blog yazımda apache server’e karşı oluşabilecek saldırılardan nasıl logların geldiğini ve o saldırılara karşı SIEM ürünlerinde nasıl senaryo üretmemiz gerektiği hakkında bilgimi sizlere aktarmak istiyorum. Filebeat ile ilgili yazmış olduğum yazım umarım faydalı olmuştur.