Benim Blog

Bir başka WordPress sitesi

Uncategorized

OPENSOURCE LOG İZLEME SUNUCUSU – GRAYLOG

Son günlerin popüler güvenlik konularına bakarsanız ilk sırada lokal SOC ekipleri, otomatize kurallar, kolerasyonlar, siemler hepsi havada uçuşuyor. Bazen gerek bütçeler olsun gerekse de havalı olması açısından teknik terimler kullanılıyor olsun, ilk duyumlarda acaba bizde neden yok muhakkak olmalı diye satın alan firmaların olduğunu hepimiz biliyoruz. Ancak hangi distribütörle görüşseniz görüşün, bizim fiyatlarımız rakiplere göre çok ucuz diye başlayan konuşmalar 20k$ ile 40k$ arasında tek seferlik, senelikte yine en az 5-10k$ lisans ücretleriyle karşımıza çıkıyor. Bütçesi olan kurumlar için sorun olmasada orta ölçekli kobiler ve orada çalışan BT personelleri için bu durum çok can sıkıcı olabiliyor. Peki kaderlerine razı mı olmalılar?

Burada karşımıza bir çok opensource yazılım çıkıyor, bugün o log management yazılımlarından Graylog sunucusunu inceleyeceğiz.

Öncelikle aşağıdaki linkten uygulamanın kendi yapınıza uygun sanal uygulamasını indirip, deploy ediyoruz. Vcenter 6.5 kullanıyorsanız, direkt vsphere host linkinden deploy etmeniz gerekebilir, vcenter üzerinden yüklemede hata verebiliyor.

http://docs.graylog.org/en/2.3/pages/installation/virtual_machine_appliances.html

Açılışta karşımıza bir komut satırı gelecek. Orada gördüğünüz üzere ilk kullanıcı, web kullanıcısı ve ip bilgileri karşımıza çıkıyor.

Uygulama üzerinde ssh sunucu aktif durumda geliyor, putty ile 22 portundan bağlanıp genel ayarları yapıyoruz. Öncelikle ubuntu kullanıcısı root değil, bize root yetkiside lazım, sırasıyla root ve ubuntu kullanıcı şifrelerini resetliyoruz.

  • sudo passwd root
  • sudo passwd ubuntu

Ardından web logon şifresini resetliyoruz;

  • sudo graylog-ctl set-admin-password Yenişifre

Sistem saatini bölgesel ayarlara çekiyoruz;

  • sudo graylog-ctl set-timezone Asia/Istanbul
  • sudo dpkg-reconfigure tzdata   komutu ilede kontrol edebilirsiniz.

Son olarak sistemi toparlıyoruz;

  • sudo graylog-ctl reconfigure

Vmware için tools kurabilirsiniz;

  • sudo apt-get install -y open-vm-tools

Bilgisayar ismini aşağıdaki iki kısımda bir text editörü ile açıp ekliyoruz. Restart gerekli.

  • nano /etc/host
  • nano /etc/hostname

Sunucumuz artık hazır, web arayüzüne ip adresinden giriş yapabilirsiniz. Ancak standartta cihaz 20GB geliyor, disk size arttırımı yapmanız gerekmekte. Linux tarafında disk arttırımı Windows nazaran biraz farklı. Bizde data klasörüne disk mount edeceğiz ve arkaplanda klasör boyutunu arttırmış olacağız. Ben 400GB bir disk ekledim, 4 sunucu için ortalama 15 rotasyonda 3 aylık loglara erişmek istiyorum. Daha fazla log yönetimi için daha büyük disk boyutu ekleyebilirsiniz. Öncelikle sunucuyu kapatıp bir disk ekleyip tekrar açıyoruz.

Graylog servislerini durduruyoruz.

  • sudo graylog-ctl stop

Eklediğimiz ve diğer disklerin durumlarını kontrol edebiliriz. Büyük olasılıkla yeni disk sdb olarak eklenmiş olacak.

  • sudo lshw -class disk

Diski formatlıyoruz.

  • sudo parted -a optimal /dev/sdb mklabel gpt -restart gerekli
  • sudo parted -a optimal — /dev/sdb unit compact mkpart primary ext3 “1” “-1”
  • sudo mkfs.ext4 /dev/sdb1

Mevcut diskte bulunan dataları kopyalamak için bir tmp dizini oluşturup, disk gibi mount ediyoruz.

  • sudo mkdir /mnt/tmp
  • sudo mount /dev/sdb1 /mnt/tmp
  • sudo cp -ax /var/opt/graylog/data/* /mnt/tmp/  -bu yaklaşık 3-4dk sürebilir. Ekranda komut kaybolsa bile kısa bir süre beklemenizi öneririm.

İki dosya arasında fark var mı diye kontrol ettiriyoruz eğer fark çıkarsa sorun vardır. Ya kopyalama bitmemiştir yada graylog servisleri durmamış olabilir.

  • sudo diff -qr –suppress-common-lines /var/opt/graylog/data /mnt/tmp

Eski dataları silebiliriz;

  • sudo rm -rf /var/opt/graylog/data/*

Artık tmp dizinini kaldırıp yeni diskimizi log dizinine mount edebiliriz. Sonrasında boot dizinine ekleyerek yaptığımız eklemeyi kalıcı hale getiriyoruz. Yine  nano /etc/fstab ile içeriği kontrol edebilirsiniz.

  • sudo umount /mnt/tmp
  • sudo mount /dev/sdb1 /var/opt/graylog/data
  • echo ‘/dev/sdb1 /var/opt/graylog/data ext4 defaults 0 0’ | sudo tee -a /etc/fstab

En son restart ediyoruz. Gördüğünüz gibi yeni diskimiz aktif durumda.

Sisteme web arayüzünden artık erişebiliriz. Şimdi Windows sunucularımız için bir INPUT sağlayacağız. Bunun için GELF/TCP kullanacağız.

Herhangi bir ayara dokunmayacağız. Belli kısımları kendinize göre güncelleyebilirsiniz, boyutlar gibi. Veya her sunucuya özel ip bazlıda log alabilirsiniz. İçeriği düzenleyip kaydediyoruz.

Nxlog uygulamasını <https://nxlog.co/products/nxlog-community-edition/download > sunucuya kurup ayarlarını yapıyoruz. Kurulum standart next-next şeklinde. Burada Windows üzerindeki standart microsoft audit loglarını izliyor olacağız. Policy ile windows audit loglarını isteğinize bağlı olarak açabilirsiniz. İstediğiniz başka özel loglarda varsa yine özel pluginler yardımıyla yönlendirebilirsiniz. Dhcp logları gibi mesela. Birçok ücretsiz plugin sahip.

C:\Program Files (x86)\nxlog\conf\nxlog.conf dosyasını açarak güncelliyoruz. <Extension _syslog> sonrasında gelf modülünü ekliyoruz.

<Extension _syslog>
    Module      xm_syslog
</Extension>

<Extension gelf>
    Module      xm_gelf
</Extension>

Son satırda Exec yerinede GELF_TCP aktif ediyoruz.

<Output out>
    Module      om_tcp
    Host        Sunucuİpadresi
    Port        12201
    OutputType GELF_TCP
</Output>

Servisler kısmından nxlog servisini restart ediyoruz. Logların sunucuya düşmeye başlayacağını göreceksiniz. Eğer bir sorun varsa C:\Program Files (x86)\nxlog\data dizininden log dosyasına bakabilirsiniz.

Kısaca ekrandan bahsedersek, sol üst köşede standart tanımlanmış bazı komutları uygulayabilirsiniz. Bunlar Relative ile sistem tarafından tanımlı dakikalar (5dk, 15dk, .., 30 gün kadar katlanarak değişiyor), Absolute belirli tarih aralıklarını, Keyword ile de sizlerin konsoldan tanımladığınız last week özel taramaları yapabiliriz. Bir alt satırda (Yeşil büyüteç simgesi) logların barındırdığı herşeyi aratabilirsiniz. Alt yapı olarak elasticsearch kullandığı için şaşırtıcı bir arama hızı sizleri bekliyor olacak. İster burada full_message:”Accesses: WriteAttributes” gibi tüm mesajın içerisindeki belirli bir olayı sorgulayabilir yada direkt Sedat yazıp içerisinde Sedat geçen olaylara erişebilirsiniz.

Ayrıca soldaki panellerden de hızlıca chart çizdirip, belirli tarih aralığı için raporları da alabiliyorsunuz.

 

Son olarak INDICES tanımlıyoruz, bu kısım logların ne kadar aralıklarla sistemde kalmasını ve log boyutlarının rotasyon boyutunu ayarlamanızı sağlıyor. Yine SYSTEM menüsünden Indices diyoruz.

Açılan ekrandan Default index set tıklayarak mevcut ayarları güncelleyeceğiz. Sonrasında Edit Index Set ile ilerliyoruz.

Rotasyon olarak 20gb’lık dosyalar halinde 15 adet tutması şeklinde tanımladım.

 

Şimdilik yazıyı burada sonlandırıyorum. Sistemi biraz daha araştırırsanız kendinize özel alarmlar oluşturabilir, bunu sms veya mail gibi bilgilendirmelerde alabiliyor olduğunuzu göreceksiniz. Artık sonrası sizlere kalmış.

Açık kodlu günler.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir