İçeriğe geç
NetDevOps
10 dk okuma Güvenlik

OSSEC HIDS Kurulumu ve Yapılandırması

OSSEC HIDS Nedir ve Neden Kullanılmalıdır?

OSSEC (Open Source Security Event Correlator), açık kaynaklı bir Host-Based Intrusion Detection System (HIDS) çözümüdür. Linux sunucularınız için kapsamlı bir güvenlik izleme katmanı sağlar. Geleneksel ağ tabanlı saldırı tespit sistemlerinden farklı olarak, OSSEC doğrudan sunucu üzerinde çalışır ve sistem içindeki her türlü aktiviteyi analiz eder.

Bu araç, log analizi, dosya bütünlük kontrolü, rootkit tespiti, politika izleme ve aktif müdahale yeteneklerini tek bir platformda birleştirir. Özellikle çoklu sunucu ortamlarında merkezi yönetim imkanı sunması, kurumsal altyapılarda tercih edilmesinin en önemli sebeplerinden biridir.

OSSEC'in Temel Özellikleri

OSSEC, birçok güvenlik fonksiyonunu tek bir araçta barındırır. File Integrity Monitoring (FIM) özelliği, izlenen dosyaların eklenmesi, değiştirilmesi veya silinmesi durumunda anında uyarı üretir. Log Analysis modülü, sistem loglarını tarayarak SSH brute force, su denemeleri, Apache hataları gibi saldırı kalıplarını tespit eder.

Rootcheck bileşeni, rootkitleri, gizli dosyaları ve şüpheli kernel modüllerini ortaya çıkarır. Policy Monitoring özelliği ise güvensiz konfigürasyonları kontrol eder ve güvenlik politikalarına uyumsuzlukları raporlar. Aktif yanıt sistemi, tespit edilen tehditlere otomatik olarak müdahale edebilir.

Debian ve Ubuntu Sistemlerde OSSEC Kurulumu

OSSEC, kaynak koddan derlenmesi gereken bir yazılımdır. Bu bölümde Debian tabanlı sistemlerde adım adım kurulum sürecini ele alacağız. Kurulum öncesinde gerekli bağımlılıkların yüklenmesi kritik öneme sahiptir.

Bağımlılıkların Yüklenmesi

Öncelikle sistem paketlerini güncelleyip gerekli bağımlılıkları yükleyelim:

sudo apt update && sudo apt upgrade -y
sudo apt install -y build-essential gcc make wget tar zlib1g-dev libpcre2-dev libssl-dev libevent-dev libsystemd-dev jq

Bu paketlerin her biri OSSEC derlemesi için gereklidir. build-essential, gcc ve make C kodunu derlemek için zorunludur. libssl-dev TLS/SSL desteği sağlar, zlib1g-dev log sıkıştırma için gereklidir ve libpcre2-dev regex tabanlı log analizi için kullanılır.

OSSEC Kaynak Kodunun İndirilmesi

En güncel kararlı sürümü GitHub deposundan indirelim:

mkdir -p ~/ossec-install && cd ~/ossec-install
wget https://github.com/ossec/ossec-hids/archive/refs/tags/3.8.0.tar.gz
tar -xzf 3.8.0.tar.gz
cd ossec-hids-3.8.0

OSSEC'in son sürümünü kullanmak her zaman önerilir, çünkü güvenlik açıkları ve hatalar düzenli olarak giderilmektedir. Sürüm numarasını kontrol ederek en güncel release'ı tercih edin.

Etkileşimli Kurulum Süreci

Derleme işlemini başlatmak için install.sh betiğini çalıştıralım:

sudo ./install.sh

Kurulum sihirbazı sizden birkaç bilgi isteyecektir. Dil olarak İngilizce (en) seçeneğini tercih edelim. Kurulum tipi olarak server seçeneği, birden fazla ajanı yönetmek istediğinizde uygundur. Tek bir sunucu izleyecekseniz local seçeneğini de belirleyebilirsiniz.

Email bildirimleri için bir eposta adresi yapılandırın. SMTP sunucusu olarak localhost kullanabilir veya harici bir SMTP sunucu belirtebilirsiniz. İntegrite kontrolü, rootkit tespiti ve aktif yanıt özelliklerini etkinleştirmeniz önerilir.

Firewall-Drop Aktif Yanıtının Etkinleştirilmesi

SSH brute force saldırılarına karşı otomatik IP engelleme için firewall-drop yanıtını etkinleştirelim:

sudo /var/ossec/bin/ossec-control start
sudo systemctl enable ossec

Aktif yanıt sistemi, belirli kurallar tetiklendiğinde otomatik olarak çalışır. Örneğin, bir IP adresinden ardışık başarısız SSH girişimi tespit edildiğinde, bu IP otomatik olarak engellenir.

OSSEC Yapılandırma Dosyaları

OSSEC'in yapılandırma dosyası /var/ossec/etc/ossec.conf konumunda bulunur. Bu dosya, ajan bağlantıları, dosya izleme, log analizi ve aktif yanıt ayarlarını içerir.

ossec.conf Temel Yapılandırması

Yapılandırma dosyasını düzenlemek için:

sudo nano /var/ossec/etc/ossec.conf

Global bölümünde eposta bildirimleri ve diğer genel ayarlar bulunur. Aşağıda temel bir yapılandırma örneği verilmiştir:

<ossec_config>
  <global>
    <email_notification>yes</email_notification>
    <email_to>admin@sunucu.com</email_to>
    <smtp_server>localhost</smtp_server>
  </global>
</ossec_config>

Dosya Bütünlük İzleme Yapılandırması

Syscheck bileşeni, belirtilen dizinlerdeki dosya değişikliklerini izler. Kritik sistem dosyalarını ve konfigürasyon dizinlerini izlemek için:

<syscheck>
  <directories>/etc,/usr/bin,/usr/sbin</directories>
  <directories>/root/.ssh,/home/*/.ssh</directories>
  <scan_on_start>yes</scan_on_start>
  <auto_ignore>yes</auto_ignore>
</syscheck>

Bu yapılandırma, /etc dizinindeki tüm dosyaları, sistem ikili dosyalarını ve SSH anahtar dizinlerini izler. .ssh dizinlerindeki değişiklikler özellikle önemlidir, çünkü yetkisiz SSH anahtarı eklemeleri ciddi güvenlik ihlalleridir.

OSSEC Kuralları ve Özelleştirme

OSSEC, varsayılan olarak gelen kapsamlı bir kural seti ile birlikte gelir. Ancak özel ihtiyaçlarınız için özel kurallar oluşturmanız gerekebilir.

Özel Kural Oluşturma

Özel kurallar /var/ossec/rules/local_rules.xml dosyasına eklenir. SSH authorized_keys dosyasındaki değişiklikleri izlemek için:

<rule id="100002" level="8">
  <if_sid>554</if_sid>
  <match>authorized_keys</match>
  <description>SSH authorized_keys dosyası değiştirildi</description>
  <group>authentication,</group>
</rule>

Bu kural, syscheck (kural ID 554) tarafından tetiklenen ve authorized_keys içeren uyarıları yakalar. Seviye 8, yüksek öncelikli bir uyarı anlamına gelir.

Cron Değişikliklerini İzleme

Cron yapılandırma dosyalarındaki değişiklikler de izlenmelidir:

<rule id="100003" level="8">
  <if_sid>554</if_sid>
  <match>/etc/cron</match>
  <description>Cron yapılandırması değiştirildi</description>
</rule>

Bu kural, /etc/cron dizinindeki herhangi bir değişikliği tespit eder. Kötü niyetli kullanıcılar genellikle cron işleri aracılığıyla kalıcılık sağlar.

Kural Test Etme

Yeni kuralları test etmek için ossec-logtest aracını kullanabilirsiniz:

echo "Mar 22 10:30:00 server sshd[1234]: Invalid user admin from 185.234.219.45" | sudo /var/ossec/bin/ossec-logtest

Bu komut, örnek bir log satırını OSSEC kurallarına karşı test eder ve hangi kuralların eşleştiğini gösterir.

Aktif Yanıt Sistemi Yapılandırması

Aktif yanıt sistemi, tehditler tespit edildiğinde otomatik eylemler gerçekleştirir. En yaygın kullanım, saldırgan IP adreslerini otomatik olarak engellemektir.

Komut Tanımlama

Öncelikle çalıştırılacak komutu tanımlamalısınız. firewall-drop komutu varsayılan olarak gelir:

<command>
  <name>firewall-drop</name>
  <executable>firewall-drop.sh</executable>
  <timeout_allowed>yes</timeout_allowed>
</command>

Yanıt Yapılandırması

Komutu belirli kurallara bağlamak için active-response bölümünü yapılandırın:

<active-response>
  <command>firewall-drop</command>
  <location>all</location>
  <rules_group>authentication_failed,authentication_failures</rules_group>
  <timeout>600</timeout>
  <repeated_offenders>30,60,120</repeated_offenders>
</active-response>

Bu yapılandırma, başarısız kimlik doğrulama girişimlerinde IP adresini 600 saniye (10 dakika) boyunca engeller. repeated_offenders özelliği, tekrar eden saldırganların engel süresini kademeli olarak uzatır: ilk ihlal 30 dakika, ikincisi 60 dakika, üçüncüsü 120 dakika.

Uyarıları İzleme ve Analiz Etme

OSSEC'in etkinliğini değerlendirmek için uyarıları düzenli olarak izlemelisiniz. Uyarılar /var/ossec/logs/alerts/ dizininde saklanır.

Gerçek Zamanlı Uyarı İzleme

Canlı uyarıları izlemek için:

sudo tail -f /var/ossec/logs/alerts/alerts.log

Bu komut, yeni uyarılar oluştukça bunları anında görüntüler. Özellikle test ve yapılandırma aşamasında faydalıdır.

Yüksek Öncelikli Uyarıları Filtreleme

Yalnızca yüksek şiddetli uyarıları (seviye 7 ve üzeri) görüntülemek için:

sudo grep "level=\"[7-9]\|level=\"1[0-5]" /var/ossec/logs/alerts/alerts.xml | head -40

Uyarı seviyeleri 0'dan 16'ya kadar değişir. Seviye 7 ve üzeri uyarılar genellikle dikkat gerektiren olayları temsil eder.

OSSEC Agent Mimarisi

Büyük ölçekli altyapılarda OSSEC server-agent mimarisi kullanılır. Bu model, merkezi bir sunucu üzerinden tüm ajanlardan gelen verileri toplar ve analiz eder.

Agent Kurulumu

İzlenmesi gereken sunucularda agent kurulumu yapılmalıdır. Agent kurulumu, sunucu kurulumuna benzer şekilde gerçekleştirilir, ancak agent seçeneği belirlenir:

sudo ./install.sh
# Kurulum tipi olarak "agent" seçin
1- What kind of installation do you want (server, agent, local, hybrid or help)? agent

Agent-Server Bağlantısı

Agent'ın sunucuya bağlanabilmesi için anahtar değişimi gereklidir. Sunucu tarafında:

sudo /var/ossec/bin/manage_agents
# A seçeneği ile yeni ajan ekleyin
# Agent'ın anahtarını kopyalayın

Agent tarafında aynı anahtarı içe aktarın. Bu güvenli bağlantı, şifreli iletişim sağlar.

En İyi Uygulamalar ve İpuçları

OSSEC'in etkinliğini artırmak için aşağıdaki en iyi uygulamaları izleyin.

Düzenli Güncelleme

OSSEC kurallarını ve yazılımını düzenli olarak güncelleyin. Yeni tehditler ortaya çıktıkça kurallar da güncellenir:

sudo /var/ossec/bin/ossec-control update

Güncellemeler genellikle yeni kural tanımları ve güvenlik düzeltmeleri içerir.

Uyarlanmış Kurallar

Ortamınıza özgü kurallar oluşturun. Örneğin, belirli IP aralıklarından gelen başarısız girişimleri yoksayabilirsiniz:

<rule id="100010" level="0">
  <if_sid>5503</if_sid>
  <description>Yerel ağdan gelen başarısız girişimleri yoksay</description>
</rule>

Bu, false positive oranını azaltır ve operasyonel gürültüyü minimize eder.

Logrotate Yapılandırması

Uyarı loglarının disk alanını doldurmaması için logrotate yapılandırın:

/var/ossec/logs/alerts/alerts.log {
    daily
    rotate 30
    compress
    missingok
    notifempty
}

Bu yapılandırma, günlük döndürme ile 30 güne kadar的历史 tutar.

Sonuç

OSSEC HIDS, Linux sunucularınız için güçlü bir güvenlik katmanı sağlar. Doğru yapılandırıldığında, yetkisiz erişim girişimlerini, dosya değişikliklerini ve şüpheli sistem aktivitelerini tespit edebilir. Açık kaynak yapısı ve esnek yapılandırma seçenekleri, her ölçekteki altyapıya uyarlanabilir olmasını sağlar.

Kurulum ve yapılandırma süreci karmaşık görünse de, temel adımları takip ederek kısa sürede çalışır duruma getirebilirsiniz. Düzenli bakım ve kural güncellemeleri ile OSSEC, sunucu güvenliğinizin temel taşlarından biri haline gelecektir.