Windows Server Loglarını Syslog Protokolü ile Göndermek
Bu yazımda, Windows işletim sistemine sahip workstation ya da serverlarda oluşan Windows Olay Loglarını syslog protokolü ile SIEM ya da Log toplama sunucularına NXLog ile nasıl gönderileceği hakkında bilgi veriyor olacağım. Öncesinde NXLog hakkında bilgi vermek istiyorum.
NXLog Nedir?
NXLog Community Edition, ücretsiz olarak kullanılabilen açık kaynaklı bir log toplama aracıdır. Windows ve Linux dahil olmak üzere çeşitli platformlar için mevcuttur. NXLog Community Edition, küçük ölçekli şirketlerden tutun da büyük güvenlik kuruluşlarına kadar dünya çapında binlerce kişi tarafından kullanılmaktadır ve bugüne kadar 70.000’den fazla indirme sayısına ulaşmıştır. Esnekliği, çeşitli kurulumlarda kullanılmasına izin verir ve hem log toplayıcı aracı hem de log sunucusu olarak kullanılabilir.
Merkezi bir log kaydı sisteminin uygulanması, BT güvenliğinde kritik bir role sahiptir. Tüm kritik altyapı öğelerinden gelen logların toplanması ve farklı türlerdeki log kaynakları, biçimleri ve platformları dikkate alınarak güvenli bir şekilde merkezi bir günlük sunucusuna iletilmesi gerekir. Özellikle performans açısından log gönderimini Syslog protokolü üzerinden yapmak avantajlıdır. NXLog istenilen port üzerinden UDP ya da TCP olarak hedefe olay loglarını gönderebilir, bu işlemi yaparken de en son göndermiş olduğu logun sırasını kayıt eder. Bu sayede hedef sunucuda mükerrer kayıtların olmasının önüne geçilir.
Kurulum ve Yapılandırma:
Kurulum:
Aşağıdaki bağlantıdan dilediğiniz işletim sistemi için NXLog Community Edition aracını indirebilirsiniz:
NXLog Community Edition – Downloads | nxlog.co
Sunucumuza indirmiş olduğumuz nxlog-ce-2.10.2150.msi dosyasını çalıştırıyoruz.
Kurulum esnasında varsayılan kurulum yolunu değiştirmediyseniz yapılandırma dosyasının yolu varsayılan olarak “C:\Program Files (x86)\nxlog\conf altında bulunur” . Bu dizin altında bulunan nxlog.conf isimli yapılandırma dosyasının her ihtimale karşın bir yedeğini almakta fayda var.
Yapılandırma (JSON Formatı):
Hangi Windows loglarının hangi port ve ip’den ve hangi format ile gönderileceğini bu dosyada belirteceğiz. Örnek olması açısından Windows Sunucuya ait Application, Securty, System olaylarını 514/UDP portundan JSON formatında göndermek için aşağıdaki yapılandırma dosyasını nxlog.conf içerisine yapıştırılmalıdır. Burada unutulmaması gereken şey “HEDEF IP/HOSTNAME” kısmının sizin belirlediğiniz IP ya da Hostname ile değiştirilip kayıt edilmesi gerekmektedir.
#This is a sample configuration file. See the nxlog reference manual about the #online at http://nxlog.org/nxlog-docs/en/nxlog-reference-manual.html #Please set the ROOT to the folder your nxlog was installed into, #otherwise it will not start. define ROOT C:\Program Files (x86)\nxlog Moduledir %ROOT%\modules CacheDir %ROOT%\data Pidfile %ROOT%\data\nxlog.pid SpoolDir %ROOT%\data LogFile %ROOT%\data\nxlog.log <Extension _json> Module xm_json </Extension> <Input in_eventlog> # For windows 2008/vista/7/8/2012/2012R2 and latter use the following: Module im_msvistalog ReadFromLast TRUE SavePos TRUE Query <QueryList> \ <Query Id="0"> \ <Select Path="Security">*</Select> \ <Select Path="Application">*</Select> \ <Select Path="System">*</Select> \ </Query> \ </QueryList> Exec to_json(); </Input> <Output out_eventlog> Module om_udp Host IP/HOSTNAME Port 514 </Output> <Route eventlog> Path in_eventlog => out_eventlog </Route>
Yapılan değişikliklerin geçerli olması için kurulum sırasında oluşturulan nxlog servisinin yeniden başlatılması gerekmektedir. (Start > Run > Services.msc)
Kontrol ve Hata Ayıklama:
Ben test amaçlı Windows Loglarını Cloud’ta bulunan Ubuntu sunucuma gönderdim. Bakalım yapılandırma ayarlarım geçerli mi? Kontrol etmek için Ubuntu sunucumdan 514 portunu dinliyorum:
ngrep port 514 komutunun çıktısı aşağıdaki gibidir:
Ayrıca, “C:\Program Files (x86)\nxlog\data” dizini altında bulunan nxlog.log dosyasından gönderim ile alakalı bir sorun olup olmadığına bakabilirsiniz.
Yapılandırma (Syslog Snare Formatı):
Dilerseniz Windows Server loglarını Syslog Snare formatında da göndermek mümkündür. Aşağıdaki örnekte görüleceği üzere Exec to_syslog_snare(); parametresi toplanan logları hedefe Syslog Snare formatı ile göndermeye yarar. Syslog BSD formatında göndermek için # Exec to_syslog_bsd(); parametresinin önündeki # işareti kaldırılıp, Exec to_syslog_snare(); parametresi #Exec to_syslog_snare(); olarak değiştirilmelidir. Yapılan her değişiklikte conf doyası kaydedilmeli ve nxlog servisi yeniden başlatılmalıdır.
## This is a sample configuration file. See the nxlog reference manual about the ## configuration options. It should be installed locally and is also available ## online at http://nxlog.org/docs/ ## Please set the ROOT to the folder your nxlog was installed into, ## otherwise it will not start. define ROOT C:\Program Files (x86)\nxlog Moduledir %ROOT%\modules CacheDir %ROOT%\data Pidfile %ROOT%\data\nxlog.pid SpoolDir %ROOT%\data LogFile %ROOT%\data\nxlog.log <Extension _syslog> Module xm_syslog </Extension> <Input in> Module im_msvistalog Query <QueryList>\ <Query Id="0">\ <Select Path="Security">*</Select>\ <Select Path="System">*</Select>\ <Select Path="Application">*</Select>\ <Select Path="Setup">*</Select>\ <Select Path="Microsoft-Windows-DriverFrameworks-UserMode/Operational">*</Select>\ <Select Path='Windows PowerShell'>*</Select>\ </Query>\ </QueryList> ReadFromLast True </Input> <Output out> Module om_udp Host IP/HOSTNAME Port 514 # Exec to_syslog_bsd(); Exec to_syslog_snare(); </Output> <Route 1> Path in => out </Route>
Windows Server loglarını CEF formatında göndermeye çalıştım fakat NXLog Community Edition’da bu formatı kullanamadığımızı farkettim. CEF Format desteği NXLog Enterprise Edition’da bulunmaktadır.
Home | High Performance Log Management Solutions (nxlog.co)