Wazuh, ölçeklenebilir, çok platformlu ve açık kaynaklı bir host-tabanlı sızma tespit (HIDS) sistemidir. Bu sistem, güçlü bir korelasyon ve analiz motoruna sahip olan OSSEC’in bir çatalı olarak doğmuşturElastic Stack ve OpenSCAP ile entegre edilerek daha kapsamlı bir çözüm haline gelmiştir.
Wazuh’un temel özellikleri şunlardır:
- Log Analizi: Wazuh, log verilerini otomatik olarak toplamak ve analiz etmek için kullanılabilir. Bu sayede sistemlerinizdeki olası tehditleri hızla algılayabilirsiniz.
- Dosya Bütünlüğü Denetimi: Wazuh, dosya bütünlüğünü kontrol ederek değişiklikleri izler ve bütünlük ihlallerini tespit eder.
- Windows Kayıt Defteri İzleme: Windows kayıt defterini izleyerek anormal değişiklikleri belirler.
- Rootkit Tespiti: Rootkitleri algılar ve müdahale eder.
- Gerçek Zamanlı Uyarı ve Aktif Yanıt: Wazuh, anlık uyarılar ve otomatik yanıt yapısıyla tehditlere hızlı bir şekilde müdahale eder.
Bugünkü yazımızda wazuh kurulumunu nasıl yapacağımızı türkçe kaynak olarak paylaşmak istedim. Kurulumu “Wazuh Server” , “Wazuh indexer” ve “Wazuh Dashboard” olarak 3 ayrı sunucu olarak kurabiliriz. Biz bugünkü yazımızda tekbir sunucu üzerinde 3 kurulumuda yapacağız ve yapılandıracağız. Ben server olarak Ubuntu 22.04 versiyonunu tercih ettim.
Sunucu Adı | Uygulamalar | IP |
wazuhsrv | indexer, Server, Dashboard | 172.15.1.30 |
Wazuh Indexer kurulumu
ilk olarak wazuh indexer kurulumu ile başlıyoruz.
sudo su -
apt update
Root kullanıcısına geçtikten sonra, apt repolarımızı güncelliyoruz ve ilk olarak Sertifika oluşturma adımı ile başlıyoruz.
curl -sO https://packages.wazuh.com/4.7/wazuh-certs-tool.sh
curl -sO https://packages.wazuh.com/4.7/config.yml
wazuh-certs-tool.sh ve config.yml dosyalarımızı indirdikten sonra config.yml dosyamızı aşağıdaki şekilde güncelliyoruz.
vi ./config.yml
Dosya içeriği.
nodes:
# Wazuh indexer nodes
indexer:
- name: wazuhsrv
ip: "172.15.1.30"
#- name: node-2
# ip: "<indexer-node-ip>"
#- name: node-3
# ip: "<indexer-node-ip>"
# Wazuh server nodes
# If there is more than one Wazuh server
# node, each one must have a node_type
server:
- name: wazuhsrv
ip: "172.15.1.30"
# node_type: master
#- name: wazuh-2
# ip: "<wazuh-manager-ip>"
# node_type: worker
#- name: wazuh-3
# ip: "<wazuh-manager-ip>"
# node_type: worker
# Wazuh dashboard nodes
dashboard:
- name: wazuhsrv
ip: "172.15.1.30"
Hemen sonrasında bir aşağıdaki komutumuz ile sertifikamızı oluşturuyoruz..
bash ./wazuh-certs-tool.sh -A
Gerekli tüm dosyaları sıkıştıralım.
tar -cvf ./wazuh-certificates.tar -C ./wazuh-certificates/ .
rm -rf ./wazuh-certificates
Sertifikamızı oluşturduğumuza göre artık “Wazuh indexer” kurulum kısımlarına devam edebiliriz.
apt-get install debconf adduser procps
Wazuh repolarını ekleyelim.
apt-get install gnupg apt-transport-https
curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH | gpg --no-default-keyring --keyring gnupg-ring:/usr/share/keyrings/wazuh.gpg --import && chmod 644 /usr/share/keyrings/wazuh.gpg
echo "deb [signed-by=/usr/share/keyrings/wazuh.gpg] https://packages.wazuh.com/4.x/apt/ stable main" | tee -a /etc/apt/sources.list.d/wazuh.list
apt-get update
Eklediğimiz repolardan “Wazuh İndexer” kurulumunu gerçekleştirelim.
apt-get -y install wazuh-indexer
Kurulum tamamlandı ve artık Indexer kongigrasyonumuza geçebiliriz. Aşağıdaki dosyanın düzenlenmesi ile işleme başlıyoruz.
vi /etc/wazuh-indexer/opensearch.yml
Aşağıda verdiğim alanları certifika dosyası oluştururken kullandığımız config.yml dosyasındaki ayarlarla aynı yapıyoruz.
node.name: "wazuhsrv"
cluster.initial_master_nodes:
- "wazuhsrv"
plugins.security.nodes_dn:
- "CN=wazuhsrv,OU=Wazuh,O=Wazuh,L=California,C=US"
Şimdide Sertifika dağıtımını yapalım.
NODE_NAME=wazuhsrv
mkdir /etc/wazuh-indexer/certs
tar -xf ./wazuh-certificates.tar -C /etc/wazuh-indexer/certs/ ./$NODE_NAME.pem ./$NODE_NAME-key.pem ./admin.pem ./admin-key.pem ./root-ca.pem
mv -n /etc/wazuh-indexer/certs/$NODE_NAME.pem /etc/wazuh-indexer/certs/indexer.pem
mv -n /etc/wazuh-indexer/certs/$NODE_NAME-key.pem /etc/wazuh-indexer/certs/indexer-key.pem
chmod 500 /etc/wazuh-indexer/certs
chmod 400 /etc/wazuh-indexer/certs/*
chown -R wazuh-indexer:wazuh-indexer /etc/wazuh-indexer/certs
Kurulumumuzu tamamladık, şimdi de servislerimizi başlatalım.
systemctl daemon-reload
systemctl enable wazuh-indexer
systemctl start wazuh-indexer
Servisin durumunu kontrol edelim.
systemctl status wazuh-indexer
Komut çıktımız aşağıdaki gibi servisimiz aktif olmuş.
wazuh-indexer.service - Wazuh-indexer
Loaded: loaded (/lib/systemd/system/wazuh-indexer.service; enabled; vendor>
Active: active (running) since Thu 2024-04-04 10:50:19 UTC; 47s ago
Docs: https://documentation.wazuh.com
Main PID: 3346 (java)
Tasks: 65 (limit: 4515)
Memory: 1.2G
CPU: 44.488s
Böylece şuanda “Wazuh Indexer” kurulumunu tamamlamış olduk. Artık “Wazuh Server” kurulumuna geçebiliriz.
Wazuh Server Kurulumu
Tek sunucu kullandığımız için biz direk “Wazuh Manager” kurulumu ile devam ediyoruz.
apt -y install wazuh-manager
Kurulum tamamlandıktan sonra, servislerimizi başlatalım.
systemctl daemon-reload
systemctl enable wazuh-manager
systemctl start wazuh-manager
Servisin durumunu kontrol edelim.
systemctl status wazuh-manager
● wazuh-manager.service - Wazuh manager
Loaded: loaded (/lib/systemd/system/wazuh-manager.service; enabled; vendor>
Active: active (running) since Thu 2024-04-04 10:59:58 UTC; 1min 11s ago
Process: 46802 ExecStart=/usr/bin/env /var/ossec/bin/wazuh-control start (c>
Tasks: 120 (limit: 4515)
Memory: 499.5M
CPU: 44.940s
Sevislerimiz aktif olmuş, şimdi Filebeat paketini kuralım.
apt -y install filebeat
Kurulum tamamlandıktan sonra, Filebeat Config dosyasını indirelim.
curl -so /etc/filebeat/filebeat.yml https://packages.wazuh.com/4.7/tpl/wazuh/filebeat/filebeat.yml
İndirdiğimiz config dosyasını editleyelim.
vi /etc/filebeat/filebeat.yml
Dosya içerisindeki aşağıdaki alanları düzenleyelim
output.elasticsearch:
hosts: ["172.15.1.30:9200"]
protocol: https
username: ${username}
password: ${password}
Kimlik doğrulama bilgilerini güvenli bir şekilde saklamak için bir Filebeat anahtar deposu oluşturalım.
filebeat keystore create
Gizli anahtar deposuna varsayılan kullanıcı adını ve parolayı admin:admin ekleyelim.
echo admin | filebeat keystore add username --stdin --force
echo admin | filebeat keystore add password --stdin --force
Filebeat için Wazuh modul kurulumunu yapalım.
curl -s https://packages.wazuh.com/4.x/filebeat/wazuh-filebeat-0.3.tar.gz | tar -xvz -C /usr/share/filebeat/module
Sertifikaları Deploy edelim.
NODE_NAME=wazuhsrv
mkdir /etc/filebeat/certs
tar -xf ./wazuh-certificates.tar -C /etc/filebeat/certs/ ./$NODE_NAME.pem ./$NODE_NAME-key.pem ./root-ca.pem
mv -n /etc/filebeat/certs/$NODE_NAME.pem /etc/filebeat/certs/filebeat.pem
mv -n /etc/filebeat/certs/$NODE_NAME-key.pem /etc/filebeat/certs/filebeat-key.pem
chmod 500 /etc/filebeat/certs
chmod 400 /etc/filebeat/certs/*
chown -R root:root /etc/filebeat/certs
Filebeat servislerini start edelim.
systemctl daemon-reload
systemctl enable filebeat
systemctl start filebeat
Servis durumunu kontrol edelim.
systemctl status filebeat
Servisimiz aktif olmuş.
● filebeat.service - Filebeat sends log files to Logstash or directly to Elasti>
Loaded: loaded (/lib/systemd/system/filebeat.service; enabled; vendor pres>
Active: active (running) since Thu 2024-04-04 12:00:41 UTC; 40s ago
Docs: https://www.elastic.co/products/beats/filebeat
Main PID: 48707 (filebeat)
Tasks: 8 (limit: 4515)
Memory: 11.6M
CPU: 113ms
Bundan sonraki adımda Filebeat kurulumunun sorunsuz olup olmadığını kontrol edeceğiz ama öncelikle aşağıdaki komutu çalıştırmanızı öneririm.
/usr/share/wazuh-indexer/bin/indexer-security-init.sh
bu komut tamamlandıktan sonra kurulumumuz sorunsuz şekilde tamamlanmışmı kontrol edelim.
filebeat test output
Herhangi bir sorun yoksa komut çıktısı aşağıdaki gibi olmalı.
elasticsearch: https://172.15.1.30:9200...
parse url... OK
connection...
parse host... OK
dns lookup... OK
addresses: 172.15.1.30
dial up... OK
TLS...
security: server's certificate chain verification is enabled
handshake... OK
TLS version: TLSv1.3
dial up... OK
talk to server... OK
version: 7.10.2
Ve böylelikle “Wazuh Server” kurulumumuzunda sonuda geldik. Son adım olan Dashboard kısmına geçebiliriz.
Wazuh Dashboard Kurulumu
APT ile dashboard paketlerini kuralım.
apt -y install wazuh-dashboard
Kurulum tamamlandıktan sonra Konfigurasyon dosyamızı düzenleyelim.
vi /etc/wazuh-dashboard/opensearch_dashboards.yml
Dosya içerisindek aşağıdaki alanları düzenleyelim.
server.host: 0.0.0.0
server.port: 443
opensearch.hosts: https://172.15.1.30:9200
opensearch.ssl.verificationMode: certificate
Sertifika dağıtımlarını yapalım.
NODE_NAME=wazuhsrv
mkdir /etc/wazuh-dashboard/certs
tar -xf ./wazuh-certificates.tar -C /etc/wazuh-dashboard/certs/ ./$NODE_NAME.pem ./$NODE_NAME-key.pem ./root-ca.pem
mv -n /etc/wazuh-dashboard/certs/$NODE_NAME.pem /etc/wazuh-dashboard/certs/dashboard.pem
mv -n /etc/wazuh-dashboard/certs/$NODE_NAME-key.pem /etc/wazuh-dashboard/certs/dashboard-key.pem
chmod 500 /etc/wazuh-dashboard/certs
chmod 400 /etc/wazuh-dashboard/certs/*
chown -R wazuh-dashboard:wazuh-dashboard /etc/wazuh-dashboard/certs
Ve servslerimizi restart edelim.
systemctl daemon-reload
systemctl enable wazuh-dashboard
systemctl start wazuh-dashboard
Servis durumunu kontrol edelim.
systemctl status wazuh-dashboard
Servisimiz ayağa kalkmış.
● wazuh-dashboard.service - wazuh-dashboard
Loaded: loaded (/etc/systemd/system/wazuh-dashboard.service; enabled; vend>
Active: active (running) since Thu 2024-04-04 12:17:26 UTC; 1min 34s ago
Main PID: 49201 (node)
Tasks: 11 (limit: 4515)
Memory: 161.5M
CPU: 10.302s
Ve adres satırına https://172.15.1.30 yazarak wazuh dashboard login ekranına erişiyoruz.
Kullanıcı adı şifre kısmına admin:admin yazarak login oluyoruz.
Ve böylece Wazuh Server kurulum yazımızında sonuna geliyoruz.
Not:
“No template found for the selected index-pattern title [wazuh-alerts-*]” Hatası alırsanız aşağıdaki kumutu çalıştırarak sorunu düzeltebilirsiniz.
sudo curl https://raw.githubusercontent.com/wazuh/wazuh/v4.4.4/extensions/elasticsearch/7.x/wazuh-template.json | curl -X PUT "https://localhost:9200/_template/wazuh" -H 'Content-Type: application/json' -d @- -u admin:admin -k