PFSense DHCP Loglarını ELK Stack ile Parse Etme ve Görüntüleme

Merhabalar,

5651 gereksinimlerinden olan DHCP loglarının da kaydının tutulması hususunda bir süredir kendi çapımda bir çalışma yürütmekteydim. Sonunda fırsat bulup logstash üzerinde grok parserını yazdım. İnternette herhangi bir bununla alakalı direk bir çözüm bulamadım. Gördüğüm kadarıyla da gene ÇÖZÜMPARK olarak ilk defa bir durumun çözümünü yayınlıyor olacağız.

Ön Gereksinimler ve Adımlar:

Not: Tüm sistemler aynı server üzerine kurulabilir.

ELK Stack indirmek ve yüklemek isteyenler için:
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.6.1.deb
https://artifacts.elastic.co/downloads/kibana/kibana-6.6.1-amd64.deb
https://artifacts.elastic.co/downloads/logstash/logstash-6.6.1.deb

Tüm deb dosyaları indirilir,
ubuntu# sudo dpkg -i *.deb

komutu ile tüm debler yüklenir. İlgili servisin .yml uzantılı dosyaları topolojideki gibi editlenir.

Repodan yüklemememin sebebi ise güncelleme yaptığınız zaman bir üst sürüm geldi ise ayarlarınız bozulacaktır.

Ubuntu Server >= 18.04 -> İstenildiği gibi başka bir Linux distrosu veya Windows kullanılabilir. Aşağıdaki konfigrasyonlar Ubuntu Server üzerinde çalıştırılmıştır. Herhangi bir sistem bağımlılığı bulunmamaktadır.
Logstash >= 6.6.1 -> Logları UDP socket üzerinden alıp filterdan geçirerek Elasticsearch’e gönderecektir.
Elasticsearch >= 6.6.1 -> Elasticsearch text based database olarak logları parse edilmiş halde depolayacak ve bize sorgulama imkanı sunacaktır.
Kibana >= 6.6.1 -> Elasticseach’e arayüz üzerinden sorgu atarak ilgili index pattern üzerinde araştırmalarımızı yapmamızı sağlayacaktır.
PFSense >= 2.4.4-RELEASE-p1 -> Status -> System Logs -> Settings kısmından Send log messages to remote syslog server seçeneğini aktif edip logstash kurduğunu makinanın IP adresini ve 5455 portunu yazınız.

Örn: 192.168.10.6:5455


Bu işlemden sonra Remote Syslog Contents seçeneklerinden DHCP Events ‘in seçili olması gerekmektedir. Bununla beraber diğer seçeneklerin aktif olması bizim sistemimizde herhangi bir soruna yol açmayacaktır.

Firewall Eventlerinde ayrıca pars edilmesini istiyorsanız ayrıca iletişime geçebilirsiniz. İlerleyen zamanlarda bunu da paylaşıyor olacağım.

İşlemler yapılmadan önce bu bileşenlerin konfigrasyonlarının yapılması gerekmektedir. Kibana ve Elasticsearch konfigrasyonları basit olduğundan kendi sitesi üzerinden temel konfigrasyonları yapmanız yeterli olacaktır. Logstash config dosyalarını da github hesabım üzerinden paylaşıyor olacağım.

İlgili bileşenlerin detaylı makalelerini ilerleyen süreçte yazacağım. Yukarda da bahsetmiştim temel olarak konfigrasyon yapmanız yeterli olacaktır.

Aşağıdaki linkten indireceğiniz .conf uzantılı dosyayı /etc/logstash/conf.d/ dizini altına attıktan sonra logstash servisini durdurup yeniden başlatmanız gerekmektedir.

LİNK: https://github.com/kdrypr/Logstash/blob/master/01-logstash-pfsense-dhcp.conf

Logstash yeniden başladıktan sonra ve firewall üzerinden syslog konfigrasyonu yapıldıktan sonra Browser üzerinden Kibananın kuruluğu olduğu serverın IP adresine gidilir.

Kibana ekranına girildikten sonra
Management -> Index Patterns kısmına gelinir,
Create Index Patterns butonuna tıklanır ve biraz beklendikten sonra ilgili index patternin gözükmesi gerekmektedir. Gelmemesi durumunda kısa bir süre beklenerek tekrardan ilgili butona tıklanır.

Bu şekilde index patterimizin gelmiş olması gerekmektedir.

Next dedikten sonra @timestamp seçmeyi unutmayınız. Aksi halde time search yapma imkanınız gidecektir.


Devamında ise Kibananın Discovery sekmesinden gelen logların gözükmesi gerekmektedir.

5651 için gerekli imzalama ve timestamp eklemek için bash script yazdım. Onu da ilerleyen zamanlarda community için editleyip paylaşacağım.

Umarım yazı PFSense kullananlar için faydalı olmuştur.

Exit mobile version