Merhabalar, bu yazımda sizlere Windows Server üzerinde Active Directory, DNS Server, DHCP Server, IIS Server ve Windows Firewall loglarının nasıl toplanıp yönetildiği hakkında bahsetmek istiyorum.
Active Directory
Active Directory, Microsoft ağlarında kullanılan dizin hizmetidir. Bu veritabanı, kullanıcılar, bilgisayarlar, mekanlar, yazıcılar gibi organizasyonun tüm bilgilerinin yönetilmesini ve saklanmasını sağlar. Active Directory kurulumunu Windows server 2016 da gerçekleştirdim. Kurulum aşamalarını aşağıdaki linkten ilerleyerek gerçekleştirebilirsiniz.
https://www.cozumpark.com/server-2016-active-directory-kurulumu-ve-kullanici-domain-islemleri/
Active Directory Log Yönetimi
Windows serverda Active Directory loglarını görmek ve yönetmek için sysmon kuruyoruz daha sonra winlogbeat kurarak logları topluyoruz, ardından logstash ya da kurulu olan SIEM ürününe yönlendirerek loglar üzerinden tespit aşamasına geçiyoruz. Buradaki çalışmamda ELK Stack üzerine yönlendirerek logların nasıl göründüğü nasıl bilgiler verdiği hakkında bilgiler edinmek için kullanıyorum.
Sysmon Nedir?
- Windows işletim sistemlerindeki oluşabilecek logların düzenli ya da düzensiz toplanmasına yardımcı olan bir araçtır.
- Kayıt defterinin Services Logs -> Microsoft -> Windows -> Sysmon -> Operational kısmında loglar oluşmaktadır.
- Parse edilmiş Event ID ler aşağıdaki gibidir.
- Parse edilmemiş Event IDler ise winlogbeat filter sayesinde logstash parserinda parse edilerek kibanaya düşmektedir.
Sysmon Kurulumu
- Windows Server üzerine https://docs.microsoft.com/en-us/sysinternals/downloads/sysmon indiriyoruz.
- Ardından github üzerinden konfigürasyon dosyasını indiriyoruz. https://github.com/SwiftOnSecurity/sysmon-config
- Sonrasında terminal üzerinden .\sysmon64.exe -accepteula -i .\sysmonconfig-export.xml çalıştırarak kurulumu Windows Server Üzerinde tamamlıyoruz.
- Powershell üzerinde yapılan işlemlerin loglarınıda sysmon üzerinde toplamak istediğimizden Local Group Policy Editor’e girerek (gpedit.msc) Administrative Templates → Windows Components → Windows Powershell e gelerek. Turn on Module Logging ve Turn on PowerShell Script Block Logging aktif etmemiz gerekmektedir.
Winlogbeat Nedir?
Winlogbeat, windows işletim sistemlerindeki logların toplanıp logstash’e giderek conf.d içerisine yazılan conf dosyası ile parse edilip, sonrasında elasticsearche yönlendirilmesidir. Sonrasında üzerine bir SIEM ürünü entegre ederek, bu işlemlerin korelasyon oluşturularak, korelasyona göre alert alınması sağlanmaktadır.
Winlogbeat Kurulumu
- https://artifacts.elastic.co/downloads/beats/winlogbeat/winlogbeat-6.5.4-windows-x86_64.zip dosyasını windows işletim sistemi üzerine indirelim.
- C:\Program Files\winlogbeat dizinine indirilen dosyaları çıkaralım.
- winlogbeat.yml açalım —> winlogbeat.event.logs altına hangi Event ID loglarına almak istiyorsak hizmetlerin bilgilerinin olduğu kısmı aşağıdaki gibi ekleyelim. Eklediklerim uygulamalar, sistemler, zamanlayıcılar, windows defender, uzaktan bağlantı, güvenlik gibi işlemlerin loglarının winlogbeat üzerinde toplanmasını sağlamaktayız.
- Sonrasında winlogbeat.yml içerisindeki logstash output kısmına hangi sisteme logları göndereceğiz, IP adresi ve PORT belirleyerek iletiyoruz. Localimde bulunan ubuntu servere IP adresini veriyorum. Sebebi ELK Stack görevini orada sürdürüyorum.
- Ardından windows server üzerinde winlogbeat yapılandırmasını tamamladıktan sonra powershell -executionpolicy bypass .\install-service-winlogbeat.ps1 diyerek winlogbeat servisini kuruyoruz.
- Yapmamız gereken son işlem ise start-service winlogbeat yazarak servisi çalıştırıyoruz.
DNS Server
DNS Server, genellikle IIS Server üzerinde kurulmuş domainlerin IP almasını sağlamaktadır.
DNS Server Log Yönetimi
DNS Server, logların packetbeat üzerinden toplanıp sonrasında logstash’e göndererek parse işlemi yapılmaktadır. İşlenen logların elasticsearche aktararak, işlenmiş logların toplanmasıdır. Sonrasında kibana üzerinde ya da bir SIEM ürünü üzerine gönderilerek oluşturulması gereken korelasyonlar sayesinde DNS Server üzerinde yaşanan olumsuzların alertları alınarak düzeltilmesi gereken kısımların düzeltilmesi gerekir.
Packetbeat Nedir?
Packetbeat, sunucular arasındaki trafiği algılayarak, uygulama düzeyindeki protokolleri ayrıştırarak işleme alınmasıdır. Packetbeat desteklediği protokoller aşağıdaki gibidir.
- ICMP (v4 ve v6)
- DHCP (v4)
- DNS
- HTTP
- AMQP 0.9.1
- cassandra
- MySQL
- PostgreSQL
- redis
- tasarruf-RPC
- MongoDB
- not defteri
- NFS
- TLS
- SIP/SDP (beta)
Packetbeat Kurulumu
- https://artifacts.elastic.co/downloads/beats/packetbeat/packetbeat-8.0.0-windows-x86_64.zip üzerinden windows server üzerinde indirebiliriz.
- İndirdikten sonra ‘C:\Program Files\packetbeat’ dizinine dosyaların aktarılması gerekmektedir.
- Ardından DNS Server loglarını toplayağımız için transaction protocols kısmında bulunan işlemleri yorum satırı yaparak sadece DNS kısmını aktif halde bırakıyoruz.
- Packetbeat’e logları topladıktan sonra logstash’e göndererek gerekli parse etme işlemler yapıldıktan sonra elasticsearch’e işlenmiş loglar gönderilir. Ardından kibana ya da SIEM ürüü üzerinde DNS logları görünmektedir. Yapılması gereken alertlar oluşturularak, server üzerideki saldırı atakları ya da yanlışlıkla yapılmış bir işlemin neden olduğunu hızlı bir şekilde anlamış oluruz.
- Konfigürasyon işemleri tamamlandıktan sonra windows server üzerinde cd ‘C:\Program Files\packetbeat’ .\install-service-packetbeat.ps1 diyerek packetbeat servisinin windows server’a kuralım.
- start-service packetbeat diyerek servisi çalıştırıyoruz, artık windows server üzerindeki işlemlerimizi tamamlamış oluyoruz.
DHCP Server
DHCP server clientler için IP dağıtımına olanak sağlamaktadır. Yapılması gereken DHCP Server kurulduktan sonra statik olarak DNS vererek clientın IP almasına yarar. Aldıktan sonra ise DHCP servera göre ayarladığımız kiralama süresine tabii tutularak aynı IP üzerinden devam edebilmektedir. Hatta aynı IP adresini almak istiyorsak eğer o zaman Clientın MAC adresi ile IP eşleştirilir ve hiçbir problem olmaz. DHCP Çalışma Mantığı: DHCP’nin Host’a OP dağıtması; DISCOVER, OFFER, REQUEST, ACKNOWLEDGE işlemler bütünü ile gerçekleşir.
- Dıscover: Client’un Network’e ilk dahil olduğu senaryodur. Bir DHCP Discovery paketi hazırlayarak Network’e göndererek broadcast yapar. Bu Broadcast’in amacı, Network’teki DHCP server’u bulmasıdır.
- Offer: DHCP Discover paketini alan DHCP Server, Data paketini gönderen bilgisayara uygun IP adresi ile birlikte bu IP adresini ne kadar süre kullanabileceğini içeren DHCP Offer paketi gönderir.
- REQUEST: DHCP Offer paketini alan cihaz genellikle kabul ederek IP adresini ve kullanacağı süreyi alarak, DHCP Server’e IP adresi ve süreyi içeren DHCP REQUEST gönderir.
- ACKNOWLEDGE: DHCP Server clienta DHCP REQUEST göndererek IP adresi ve süreyi tanımlar.
DHCP Server Log Yönetimi
DHCP Server loglarını görmek ve yönetmek için ilk olarak windows server üzerinden dnscmd /config /loglevel 0x8000F301 yazarak DNS loglarını aktif hale getirelim. dnscmd /config /logfilemaxsize 0xC800000 ile DNS Log dosyasının boyutunu 200 mb ayarlıyoruz. Ardından log dosya dizinlerini filebeat.yml içerisine aktararak logların filebeatle toplarız. Elasticsearch aktararak logların kibana üzerinde görülmesini sağlarız.
Filebeat Nedir?
Filebeat, günlük (log) dosyalarını toplayarak ve aktarımı hızlı bir şekilde yapmak için kullanılan beats ailesinin bir üyesidir. Filebeat kullanımı ELK Stack üzerinde yaygındır.
Filebeat Kurulumu
- https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.0.1-windows-x86_64.zip adresinden Filebeat windows server indiriyoruz.
- Program Files/Filebeat-version-windows olarak dosya oluşturuyoruz.
- DHCP Server log konumunu buluyoruz.
- Filebeat.yml içerisine filebeat input olarak veriyoruz.
- Elastic output kapatıyoruz. Logstash output açıyoruz ve Ubuntu server IP adresini ve pars edeceğimiz conf dosyasında port numarasını yazıyoruz.
- Windows için geçerli filebeat log dosyasını filebeat.yml içerisinde loging kısmına ekliyoruz.
- Ubuntu serverimize logstash için DHCP parser yazıyoruz.
- Servisleri yeniden başlatıyoruz.
IIS Server
IIS, client’ın(istemci, yani kullanıcı) Windows tabanlı bir server’a request yaptığında(herhangi bir siteye giriş yaptığımızda o siteyi talep etmiş oluruz) ilk karşılaştığı birimdir. IIS client’ın talebi doğrultusunda kurulu olduğu server içerisindeki web sitesi dosyalarını(bu herhangi uzantıda olan başka bir dosyada olabilir) kendi configuration(yapılandırma) ayarlarına göre kontrol eder ve client’ın talebine geri dönüş yapar. Aşağıdaki linkten IIS Server kurulumu gerçekleştirebilirisniz.
https://www.cozumpark.com/windows-server-2016-iis-uzerinde-coklu-site-yayinlama/
IIS Server Log Yönetimi
IIS Server, logların filebeat.yml içerisine dizinlerini yazarak filebeat içerisinde toplanmasını sonrasın logstash ile parse edilerek elasticsearche gönderilmesidir.
“C:/inetpub/logs/LogFiles/*/*.log”
“C:/Windows/System32/LogFiles/HTTPERR/*.log”
dizinlerinden IIS Server loglarını çekebiliriz.
Windows Server Firewall
Windows server firewall işletim sistemi ile birlikte gelen bir güvenlik duvarıdır. Windows firewall güvenlik erişim, çeşitli sistem açıklarından veya açık portlardan gelecek atakları, zararlı yazılım gibi durumlarda sunucunun korunmasına yardımcı olmaktadır.
Windows Server Firewall Log Yönetimi
Windows firewall with Advanced Security Log yönetimi için ilk olarak ayarlar kısmına gelerek log dosyasının oluşmasına izin veriyoruz.
Log dosyası C:\Windows\System32\LogFiles\Firewall dizininin altında oluşacaktır. Yapılması gereken filebeat üzerinden filebeat input vermek, sonrasında logstash ile parse etmek, ardından parse edilen logların elasticsearche yönlendirmektir.
Windows server üzerinde log yönetimi bu şekilde yapılmaktadır. Umarım faydalı bir blog yazısı olmuştur. Diğer blog yazısında görüşmek üzere…