EventLog Forwarding with Using NXLog over Syslog / NXLog Kullanarak Syslog Üzerinden EventLog İletimi

Bu yazıda, “NXLog nedir?” ve “NXLog aracılığıyla Windows EventLog’u, Syslog üzerinden nasıl SIEM’e yönlendirebiliriz?” sorularına cevap vereceğiz. NXLog, binlerce farklı kaynaktan gelen event logları (100.000+ events per second) işleyebilme yeteneğine sahip açık kaynak bir yazılımdır. Veritabanından, bir dosyadan, Syslog’dan ya da Windows EventLog’dan gelen logları TCP, TLS/SSL, UDP üzerinden, JSON ya da CEF formatında kabul edebilir. Ayrıca NXLog ile mesajlar üzerinde advanced processing (rewriting, correlating, alerting, pattern matching, scheduling, log file rotation) yapabilirsiniz. Ek olarak herhangi bir network congestion (tıkanıklık) ve latency (gecikme) durumunda, logları önceliklendirerek disk ya da memory’de buffer’lar.

Diğer soruya cevap vermeden önce NXLog’un kullanımıyla alakalı olarak https://nxlog.co/documentation adresini ziyaret edebilirsiniz. Her zaman kullanışlı, sistemi yormayan (CPU-RAM) agent bazlı bir çözümün kullanılmasını öneriyorum. Ancak çeşitli sebeplerden dolayı NXLog ya da başka bir yazılım tercih edildiyse Windows EventLog’ları SIEM ürününüze Syslog ile göndermeyi deneyebilirsiniz.

İhtiyacınız olan sürümü https://nxlog.co/products/nxlog-community-edition/download adresinden indirebilirsiniz. Kurulumu yaptıktan sonra arka planda çalışan bir servis yaratılıyor olacak. Daha sonra nxlog.conf dosyasından gerekli konfigurasyonu yapmanız gerekiyor.

im_msvistalog ve xm_syslog modüllerinden yararlanacağız. im_msvistalog, Windows Server 2008 ve üzeri makinalardaki EventLog’u okumamızı sağlıyor. Daha önceki bir sürüm Windows Server kullanıyorsanız EventLog yapısı değiştiği için im_msvistalog modülü işinize yaramayacaktır. xm_syslog modülü de tahmin ettiğiniz gibi logları TCP ve ya UDP üzerinden iletmemizi sağlıyor.

<Extension _syslog>
Module xm_syslog
</Extension>

<Input EventLog>
Module im_msvistalog
<QueryXML>
<QueryList>
<Query Id="1">
<Select Path="Application">*</Select>
<Select Path="Security">*</Select>
<Select Path="System">*</Select>
</Query>
</QueryList>
</QueryXML>
</Input>

<Output udp>
Module om_udp
Host SyslogServer_IP
Port 514
</Output>

<Route EventLog_udp>
Path eventlog => udp
</Route>

Tüm işlemler başarılı bir şekilde tamamlaydıysa logları UDP 514 üzerinden monitor edebilirsiniz.

NOT#1: Yönlendirilen loglar bir dosyaya ya da bir Linux işletim sistemine de gönderilebilir. Örneğin /var/log/EventLogs gibi. Burada dikkat edilmesi gereken konu; EventLogs dosyasının çok büyüyüp sistemin diskini bitirmemesidir. Dolayısıyla EventLogs dosyası günlük olarak compress edilmeli ve rotate işlemi uygulanmalıdır.