Open Source

Elasticsearc\Kibana Kullanarak Ücretsiz File Server Audit Kurulum ve Yapılandırması

Event Viewer yıllardır hepimizin belki de en çok kullandığı Windows ara yüzlerinden bir tanesi. Teknolojinin yıllar içerisin de geldiği noktaya bakarsak 2019 yılında hala o küçük gri ekran üzerinden analiz yapmak benim için her zaman sevimsiz bir eylem olmuştur. Sizde samanlıkta iğne aramaktan yorulduysanız, bence bu yazı oldukça ilginizi çekebilir. Dosya sunucuları üzerinde Auditing operayonu genelde atlanan fakat ihtiyaç anında eğer düzgün bir şekilde yapılandırılmış bir loglama metodolojiniz bulunmuyorsa IT personellerine ciddi geri dönüşleri olabilecek, oldukça önemli bir konu. Günümüzde Dosya Sunucularına özel Audit hizmeti veren birçok uygulama mevcut. Bir kısmı gerçekten benimde çok beğendiğim uygulamalar fakat bu uygulamaların kaliteli olanlarının teknik yetenekleri hariç ortak paydalarından biri de pahalı olmaları.

Açık kaynak kodlu yazılımlar dünya genelinde oldukça popüler ve bir çok IT profesyoneli tarafından hiçbir karşılık beklenmeden yıllardır geliştirilip, ücretsiz bir şekilde hepimizin kullanımına sunuluyor. Ortada bu kadar emek varken ben kişisel olarak bu tarz ürünlere para vermenin yanlış olduğunu düşünenlerdenim. Bugün amacım tamamen ücretsiz bir şekilde, yine birkaç açık kaynak kodlu uygulama kullanarak anlamlı ve tamamen ihtiyaçlarımıza yönelik güzel görseller ile desteklenmiş bir loglama mekanizması kurmak ve istediğimiz anda belki de aylar öncesine ait milyonlarca kayıt içerisinden gerekli olan veriye saniyeler içerisinde ulaşmak.

Hepsi tamamen Open Source olan Elasticsearch, Kibana ve Winlogbeat kullarak sizde aşağıdaki gibi bir Dashboard üzerinden Dosya Sunucunuzu takip edebilir, görmek istediğiniz kayıtlara hızlıca ulaşabilirsiniz. Görsel’in büyük halini görmek isterseniz Buraya tıklayın.


Resim-1

Kurulum için Altyapı Gereksinimleri: İşletim sistemi olarak CentOS 7.5 kullanacağız. Aşağıdaki kaynaklara sahip bir sunucu yeterli olacaktır. İleride yapınız büyürse kaynaklarınızı buna paralel arttırmanızı öneririm.

  • 2 Core Vcpu
  • 4 GB Memory
  • 50 GB disk alanı

Elasticsearch kullanabilmeniz için sisteminizde Java yüklü olması gerekiyor. Burada dikkat etmemiz gereken nokta Versiyon 9 \10 desteklenmiyor, bende yazıda zaten Java 8 üzerinden ilerledim fakat yine de ayrıca belirtmekte fayda var. Ayrıca reverse Proxy görevi görmesi için Nginx kurulumu da yapacağız. Ayrıca her zamanki gibi Nano editör yükleyerek, Firewall ve Selinux ‘ü Disable etmeniz gerekiyor.

3 Aşamalı bir kurulum ve yapılandırma planı hazırladım. Bu şekilde parçalara ayırarak daha net bir şekilde aklınız da yer etmesini istiyorum aslında, sadece komut setlerini takip ederek yani tam olarak sindiremeden kurulumu tamamlanmanızı tavsiye etmem.

  1. Elasticsearch ve Kibana Kurulumu
  2. File Server Audit Policy aktivasyonu, Winlogbeat Agent kurulumu ve Konfigürasyonlarının yapılması, loğların aktarılması
  3. İndex ayarları, Görseller için query dizayn edilmesi ve Dashboard

Elasticsearch ve Kibana ve Kurulumu

Ön gereksinimler kısmında belirttiğimiz gibi ilk önce Java 8 kurulumu ile yapmamız gerekiyor. Aşağıdaki komutu çalıştırarak Java kurulumunu yapın ve versiyonu kontrol edin.

Ön Gereksinimler ile başlayalım

$ sudo yum install java-1.8.0-openjdk
$ java –version

Resim-2

Elasticsearch package spoofing yapılmaması için güvenlik adına ayrı bir KEY ile paketleri imzalanmış durumda. Bu yüzden ilk önce Elasticsearch public GPG key’i download ederek Repository ye eklememiz gerekiyor.

$ sudo rpm –import //artifacts.elastic.co/GPG-KEY-elasticsearch

Kurulum için gerekli repository’imizi ekleyelim. Editor üzerinden elasticsearch.repo dosyasını oluşturun.

$ sudo vi /etc/yum.repos.d/elasticsearch.repo

Aşağıdaki repo bilgilerini girdikten sonra kayderek çıkış yapın.

[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=//artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=//artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

Elasticsearch
Kurulumu

Artık hazırız. Elasticsearch’ü yükleme aşamasına geçebiliriz. Aşağıdaki komutu çalıştırarak yüklemeyi tamamlayabilirsiniz.

$ sudo yum install elasticsearch

External bir kaynaktan erişebilmek için yapılandırma içerisinde birkaç parametreyi değiştirmemiz gerekiyor. YML dosyasını açarak;

$ vi /etc/elasticsearch/elasticsearch.yml

Aşağıdaki satırı Uncomment duruma getirin. Network.host kısmını localhost’dan 0.0.0.0 a çekin. Aşağıdaki resimde gösterildiği şekilde gözükmesi gerekiyor.

Resim-3

Servisi Start ettikten sonra ve eğer sunucu yeniden başlarsa otomatik olarak Start olması için Enable duruma getirelim.

$ sudo systemctl start elasticsearch

$ sudo systemctl enable elasticsearch

Servisin çalıştığından emin olmak için basit bir request gönderek test edin, aşağıdaki gibi bir çıktı almanız gerekiyor. Eğer ilk seferde response alamaz iseniz lütfen Firewall ve Selinux’un kapalı ve Disable olduğundan emin olun. Eğer her şey yolunda ise bir süre bekleyerek tekrar deneyin.

$ curl -X GET “localhost:9200”

Resim-4

Kibana Kurulumu

Kibana ya dışarıdan erişim için Reserve Proxy olarak kullanmak ve erişim yapacak kişiler için Web Interface üzerinden kullanıcı adı\şifre talep ederek doğrulama yapmak üzere Nginx kurulumu yapmamız gerekiyor.

Nginx i yükleyebilmemiz için ilk önce EPEL repository’i eklememiz lazım.

$ sudo yum install epel-release

Artık Nginx i yükleyebiliriz,aşağıdaki komutu çalıştırabilirsiniz.

$ sudo yum install nginx httpd-tools

Nginx üzerinden Kibana ya erişirken kullanmak üzere username\password belirleyelim. Komutu çalıştırdıktan sonra şifrenizi girerek doğrulayın, çıktıları kaydedin.

$ echo “kibanawebuser:openssl passwd -apr1” | sudo tee -a /etc/nginx/htpasswd.users

Resim-5

Nginx üzerinde Virtual Host yapılandırmamızı yaparak devam ediyoruz. Uzaktan erişim için bir FQDN belirleyin. Ben bu örnekte “fileserveraudit.demo.com” olarak belirledim, burayı isteğinize göre değiştirebilirsiniz.

$ sudo vi /etc/nginx/conf.d/fileserveraudit.demo.com.conf

Aşağıdaki konfigürasyonu yapıştırın, Server_name kısmını bir önceki aşamada belirlediğiniz FQDN’i girerek kendinize göre düzenleyin, kayderek çıkış yapın.

server {
listen 80;

server_name fileserveraudit.demo.com;

auth_basic “Restricted Access”;
auth_basic_user_file /etc/nginx/htpasswd.users;

location / {

proxy_pass //localhost:5601;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection ‘upgrade’;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;

}

}

Resimde gösterildiği gibi bir konfigürasyona sahip olmanız gerekiyor.


Resim-6

Konfigürasyonda herhangi bir hata var mı diye kontrol ediyoruz.

$ sudo nginx –t

Test is successfull mesajını görmek önemli.

Resim-7

Servisi Start ve Enable ederek kurulumu bitiriyoruz.

$ sudo systemctl start nginx

$ sudo systemctl enable nginx

Repo’yu daha önce eklediğimiz için hızlıca Kibana kurulumuna geçiyoruz. Kurulum sonrası her zamanki gibi servisi Start ederek, Enable duruma getiriyoruz.

$ sudo yum install kibana

Yükleme bittikten sonra yine birkaç konfigürasyon değişikliği yapmamız gerekiyor.

$ nano /etc/kibana/kibana.yml

Aşağıda belirtilen satırları Uncomment ederek, kaydedip çıkış yapın.

server.port: 5601
server.host: “localhost”
elasticsearch.url: “//localhost:9200”

$ sudo systemctl start kibana

$ sudo systemctl enable kibana

//fileserveraudit.demo.com adresi üzerinden Kibana arayüzüne erişebiliriz. Tabi ki siz burada ne belirlediyseniz o adres üzerinden giriş yapabilirsiniz, DNS kaydını local kullanıyorsanız bağlanmak istediğiniz istemci ve Centos üzerinde HOSTS dosyasına ilgili ip adresi ve FQDN’i girmeyi unutmayın. Ngnix kurulumu sırasında belirlediğiniz ( username: kibanawebuser olacak set etmiştim ben) kullanıcı adı ve şifre ile login oluyoruz.

Resim-8

File Server Audit Ayarları ve Winlogbeat Kurulum\Konfigürasyonu

File Server Audit Ayarları

File server üzerinden logları alabilmeniz için ilk önce Audit Policy üzerinde bir kaç konfigürasyon yapmanız gerekiyor. Domain Controller üzerinden GPO ile de halledebilirsiniz fakat ben size local group policy üzerinden nasıl yapabilirsiniz onu göstereceğim. Sunucu üzerinde Start/RUN dedikten sonra   gpedit.msc yazarak entera basın . Object Access kategorisi içerisinde Audit File System’i seçerek Configuration the following events diyerek “Success” i işaretleyin, istediğinize göre “Failure” eventlarıda loglayabilirsiniz.

Resim-9

Global Object Access Auditing kategorisi altında; File System’e tıkladıktan sonra “Define the Policy Settings” i işaretleyin ve “Configure” e tıklayarak karşınıza çıkan ekran üzerinde “Add” butonuna basın. “Everyone” için kategori “success” olacak şekilde loglanmasını istediğiniz aksiyonları işaretleyin. Ben sadece hangi dosyaları kimin sildiği ile ilgilendiğim için silinen dosyalar ve permission değişikliklerinin loglanması için ilgili seçenekleri seçtim

Resim-10

Winlogbeat Kurulum ve Konfigürasyon

Bu çalışmaları loğlarını almak istediğimiz file server üzerinde yapacağız. Buraya tıklayarak ilgili dosyaları indirin.

  1. İndirdiğiniz dosyaları zip’ten çıkartın
  2. C:\Program Files\ altında “winlogbeat” diye bir folder oluşturarak dosyaları buraya kopyalayın.

Resim-11

Notepad++ yüklü değilse öncesinde yüklemenizi öneririm.

  1. Winlogbeat.yml dosyasını notepad++ ile açın

Winlogbeat.event.logs: altında bulunan değerleri resimdeki gibi düzenleyin.

– name: Security
– name: System
– name: Microsoft-Windows-TerminalServices-LocalSessionManager/Operational

Resim-12

Oputput.elasticsearch: altındaki host bilgisini kendi ip adresiniz ile düzenleyerek Uncomment edin. Dosyayı kaydererek çıkın.

Resim-13

  1. Powershell üzerinden winlogbeat path’ine giderek;

.\install-service-winlogbeat.ps1 diyerek servis olarak yüklemeyi yapın.

Resim-14

  1. Services altından Winlogbeat servisini start edin

Resim-15

Index eklenmesi, Query Dizayn ve Dashboard Hazırlanması

Index Eklenmesi

Management sekmesinden “Index Patterns” ‘e girin.

Resim-16

Create İndex Pattern” butonuna basın. Sağ alt tarafta resimde olduğu gibi winglogbeat üzerinden gönderilen loğların tarih bilgisi ile beraber gözüküyor olması gerekli. Hemen gelmez ise bir süre bekleyin ve sayfayı yenileyerek tekrar bakın. Sağ alt tarafta “winglobeat-6.5.4-XXXX” ‘i görene kadar index pattern oluşturamayacaksınız.

Resim-17

Açılan ekran üzerindeki kutucuğa “winlogbeat*” yazarak Next e tıklayın. Bir sonraki ekranda “@timestamp” i seçtikten sonra index eklemeyi tamamlayabilirsiniz.

Resim-18

Discover ekranı üzerinden kontrol ettiğinizde loğların yavaş yavaş gelmeye başladığını görebilirsiniz. Tebrikler, loğlarınız başarılı bir şekilde elasticsearch üzerinden depolanıyor.

Resim-19

Query Görsellerinin hazırlanması\Yüklenmesi

Viualize sekmesi altından istediğiniz birçok farklı formatta anlamlı görseller hazırlayabilirsiniz. Windows file server özelinde hazırladığım query’ler ile düzenlediğim dashboard görsellerini Buraya tıklayarak indirin. JSON dosyasını zip’ten çıkatarak; Management\Saved Object\Import seçenekleri üzerinden import edin.

Resim-20

Dashboard Hazırlanması

Dashboard menüsü üzerinden yeni bir dashboard ekleyerek “Add Panel” dedikten sonra biraz önce import ettiğimiz görselleri seçin.


Resim-21

Artık sonucu görmek için hazırız.

Resim-22

About the author

Faruk TERZIOGLU

Faruk TERZIOGLU - 2003 senesinden beri aktif olarak bilgi teknolojileri sektöründe çalıyor. Uzmanlık alanları BT altyapı çözümleri ve yazılım tanımlı veri merkezi teknolojileri, Microsoft ailesi ürünleri, Açık kaynak kodlu sanallaştırma platformları ve uygulamaları olup bulut teknolojileri öncelikli ilgilendiği alanlar arasındadır. 2018 yılında Alibaba Cloud tarafından Bulut Teknolojileri Çözümleri alanında MVP olarak ilan edilmiştir.

Leave a Comment