Pardus Sistemlerinde Güvenlik Denetimi (Audit) ve Olay Kayıtlarının Yönetimi



Linux tabanlı sistemlerde güvenliği sağlamak ve sistem üzerinde gerçekleşen olayları izlemek, sistem yöneticilerinin ve siber güvenlik uzmanlarının (Blue Team) en kritik görevlerinden biridir. Pardus  sistemlerinde çekirdek düzeyinde olay izleme ve loglama sağlayan Audit Framework (auditd) yapısını inceleyeceğiz.


Bir sistem yöneticisi veya siber güvenlik uzmanı için en önemli sorulardan biri şudur:

"Sunucuda tam olarak ne oldu?"

Bir dosyayı kim sildi?

Kim root oldu?

Kim sudo kullandı?

Hangi kullanıcı kritik dosyayı değiştirdi?

Hangi program çalıştırıldı?

İşte bu soruların cevabını veren altyapı Linux Audit Framework (auditd) sistemidir.

Pardus, Debian tabanlı olduğu için Linux çekirdeğinin sunduğu Audit Framework'ü tam olarak destekler. Audit sistemi çekirdek seviyesinde olayları izler ve ayrıntılı kayıtlar oluşturur. auditd çekirdekten gelen olayları alır, disk üzerine kaydeder; kurallar auditctl veya augenrules ile yönetilir ve kayıtlar ausearch ile aranıp aureport ile raporlanabilir. (Linux Audit)


Audit Sistemi Nedir?

Linux Audit;

  • Kullanıcı aktivitelerini

  • Dosya değişikliklerini

  • Sistem çağrılarını (System Calls)

  • Yetki yükseltmelerini

  • Oturum açma işlemlerini

  • Program çalıştırmalarını

çekirdek seviyesinde kayıt altına alan güvenlik altyapısıdır. Audit, tek başına sistemi korumaz; olayların ayrıntılı olarak izlenmesini ve sonradan analiz edilmesini sağlar.


Audit Ne İşe Yarar?

Kurumsal ortamlarda aşağıdaki olaylar kolayca takip edilir.

✓ Kim sudo kullandı?

✓ Kim passwd dosyasını değiştirdi?

✓ Kim USB taktı?

✓ Kim yeni kullanıcı oluşturdu?

✓ Kim dosya sildi?

✓ Kim root oldu?

✓ Hangi servis çalıştırıldı?

✓ Hangi komut çalıştırıldı?

✓ Başarısız giriş denemeleri

✓ Yetki yükseltme girişimleri


Audit Framework Mimarisi

Linux Kernel
Audit Subsystem
auditd Servisi
/var/log/audit/audit.log
ausearch / aureport

Audit Paketlerinin Kurulması

Pardus üzerinde:

sudo apt update
sudo apt install auditd audispd-plugins

Kurulumdan sonra:

auditd -v

Servisi Başlatma

sudo systemctl enable auditd
sudo systemctl start auditd

Durumu kontrol edelim:

systemctl status auditd

Audit Servisinin Çalışıp Çalışmadığını Kontrol Etme

auditctl -s

Örnek:

enabled 1
failure 1
pid 845
rate_limit 0
backlog_limit 8192

Audit Yapılandırma Dosyaları

En önemli dizinler

/etc/audit/
/etc/audit/auditd.conf
/etc/audit/audit.rules
/etc/audit/rules.d/

Audit günlükleri

/var/log/audit/audit.log

ve döndürülmüş günlükler:

/var/log/audit/audit.log.*

(artefacts.help)


auditd.conf Dosyası

sudo nano /etc/audit/auditd.conf

Önemli parametreler

log_file
max_log_file
num_logs
flush
priority_boost
space_left
admin_space_left
disk_full_action
disk_error_action

Örnek

max_log_file = 50
num_logs = 20
flush = INCREMENTAL_ASYNC

Audit Kuralları

Audit sistemi kurallarla çalışır.

Örneğin;

"/etc/passwd dosyasını izle"

veya

"sudo komutunu izle"

gibi.


Geçici Kural Tanımlama

auditctl

Örnek

sudo auditctl -w /etc/passwd -p wa

Anlamı

-w
Watch
-p
Permissions
w
write
a
attribute change

Kuralı Görüntüleme

auditctl -l

Kalıcı Kural Yazma

sudo nano /etc/audit/rules.d/passwd.rules

İçerik

-w /etc/passwd -p wa -k passwd_changes

Sonra

augenrules --load

veya

systemctl restart auditd

Örnek Kurallar

Shadow Dosyası

-w /etc/shadow -p wa -k shadow_changes

Sudo Kullanımı

-w /usr/bin/sudo -p x -k sudo_usage

SSH

-w /etc/ssh/sshd_config -p wa -k ssh_config

Cron

-w /etc/crontab -p wa -k cron_change

Sistem Saati

-a always,exit -F arch=b64 -S adjtimex -k time_change

Modül Yükleme

-w /sbin/insmod -p x -k kernel_module

Kullanıcı Oluşturma

-w /usr/sbin/useradd -p x -k user_management

Audit Loglarını Arama

ausearch

Örneğin

ausearch -k passwd_changes

Son bir saat

ausearch -ts recent

Bugün

ausearch -ts today

Belirli kullanıcı

ausearch -ua 1000

Belirli dosya

ausearch -f /etc/passwd

Başarısız giriş

ausearch -m USER_LOGIN

aureport Kullanımı

Rapor üretir.

aureport

Başarısız girişler

aureport -au

Kim giriş yaptı

aureport -l

Çalıştırılan programlar

aureport -x

Sistem çağrıları

aureport -s

Dosya olayları

aureport -f

Örnek Senaryo

passwd Dosyası Değiştiriliyor

Kural

auditctl -w /etc/passwd -p wa -k passwd

Dosya değiştirilir.

sudo nano /etc/passwd

Arama

ausearch -k passwd

Log

type=SYSCALL
type=PATH
type=PROCTITLE

Buradan

  • kullanıcı

  • PID

  • zaman

  • komut

  • işlem

  • terminal

öğrenilebilir.


Başarısız SSH Girişleri

ausearch -m USER_LOGIN

veya

aureport -au

Root Yetkisi Takibi

ausearch -ua 0

Silinen Dosyaları İzleme

auditctl -w /home -p wa

Komut Çalıştırmalarını İzleme

auditctl -a exit,always -F arch=b64 -S execve

Bu oldukça fazla log üretir.


Performans

Audit yanlış yapılandırılırsa

  • disk dolar

  • CPU artar

  • log büyür

Bu nedenle yalnızca kritik dosya ve işlemler izlenmelidir. (Linux Audit)


Siber Güvenlik Açısından En Faydalı Kurallar

İzlenecek AlanAmaç
/etc/passwdKullanıcı değişiklikleri
/etc/shadowParola değişiklikleri
sudoYetki yükseltme
sshd_configSSH değişiklikleri
crontabZararlı zamanlanmış görevler
insmodKernel modülü yükleme
modprobeRootkit tespiti
useraddYeni kullanıcı
userdelKullanıcı silme
passwdParola değiştirme

SIEM Entegrasyonu

Kurumsal ortamlarda audit günlükleri tek başına bırakılmaz. Genellikle aşağıdaki platformlara yönlendirilir:

  • Wazuh

  • Elastic Stack

  • Graylog

  • Splunk Enterprise

Bu sayede merkezi log toplama, korelasyon ve gerçek zamanlı alarm üretimi yapılabilir.


Audit'in Avantajları

  • Çekirdek seviyesinde kayıt toplar.

  • Kullanıcı işlemlerini ayrıntılı izler.

  • Adli bilişim süreçlerinde güçlü kanıt sağlar.

  • Mevzuat ve standart uyumluluğuna katkı sunar (ISO 27001, PCI-DSS vb.).

  • Yetki yükseltme ve kritik dosya değişikliklerini kolayca izlemeyi sağlar.


En İyi Uygulamalar

  • Sadece kritik dosya ve sistem çağrılarını izleyin.

  • Günlük rotasyonunu doğru yapılandırın.

  • Audit kayıtlarını merkezi bir log sunucusuna aktarın.

  • Düzenli olarak aureport raporlarını inceleyin.

  • Audit kurallarını /etc/audit/rules.d/ altında modüler şekilde yönetin ve augenrules ile yükleyin.

  • Audit'i; bütünlük denetimi için AIDE, saldırı engelleme için Fail2Ban ve sistem sertleştirme araçlarıyla birlikte kullanın. (CB.VU)

Pardus üzerinde Linux Audit Framework'ün kurulumu, yapılandırılması, günlük analizi ve siber güvenlik odaklı kullanım senaryolarını kapsayan kapsamlı bir başlangıç ve orta seviye rehber niteliğindedir. İleri seviyede ise syscall filtreleme, immutable audit kuralları (auditctl -e 2), CIS Benchmark uyumlu kural setleri, gerçek zamanlı olay iletimi (audispd) ve SIEM entegrasyonlarıyla kurumsal ölçekte güçlü bir denetim altyapısı oluşturulabilir.

Özellikle sunucuların güvenliğini sağlamak, MITRE ATT&CK çerçevesindeki taktikleri (örneğin; Credential Access, Execution) tespit edebilmek için auditd vazgeçilmez bir araçtır.


1. Audit Framework Nedir?

Audit Framework, Linux çekirdeği ile entegre çalışan, sistemdeki olayları detaylı bir şekilde kaydeden bir denetim sistemidir. Standart loglama mekanizmalarından (syslog vb.) farklı olarak doğrudan sistem çağrılarını (system calls) ve dosya erişimlerini çekirdek (kernel) seviyesinde dinler.

Temel Bileşenler:


  • auditd: Arka planda çalışan ana denetim servisidir.


  • auditctl: Kuralları anlık olarak yönetmek ve yapılandırmak için kullanılan komut satırı aracıdır.


  • ausearch: Oluşturulan loglar içinde spesifik olayları aramak için kullanılır.


  • aureport: Log verilerini özetleyerek okunabilir raporlar sunar.


2. Pardus Üzerinde Kurulum ve Servis Yönetimi

Pardus, Debian tabanlı bir dağıtım olduğu için kurulum süreci oldukça basittir. Terminali açarak aşağıdaki komutları çalıştırın:


sudo apt update
sudo apt install auditd audispd-plugins

Kurulum tamamlandıktan sonra servisin durumunu kontrol etmek ve başlangıçta otomatik çalışmasını sağlamak için:


sudo systemctl enable auditd
sudo systemctl start auditd
sudo systemctl status auditd

(Not: auditd servisi durdurulmak istendiğinde standart systemctl stop auditd komutu güvenlik gereği çalışmayabilir, bunun yerine service auditd stop kullanılması gerekebilir.)


3. auditctl ile Kuralların Oluşturulması

Kurallar geçici olarak auditctl komutu ile veya kalıcı olarak /etc/audit/audit.rules (ya da /etc/audit/rules.d/ altındaki dosyalar) üzerinden tanımlanabilir.


A. Dosya ve Dizin İzleme (Watch Rules)


Kritik sistem dosyalarındaki değişiklikleri veya yetkisiz erişimleri izlemek için kullanılır.

Örnek 1: Şifre Dosyalarını İzleme


/etc/shadow dosyasına kimin eriştiğini veya değiştirdiğini izlemek için:


sudo auditctl -w /etc/shadow -p wa -k shadow_degisikligi

  • -w: İzlenecek dosya veya dizin (watch).

  • -p wa: İzinler (permissions). w (write - yazma), a (attribute change - özellik değiştirme). Diğer seçenekler r (read) ve x (execute).

  • -k: Kurala verilen özel etiket (key). Logları ararken bu etiket büyük kolaylık sağlar.

Örnek 2: Laboratuvar Ortamında Belirli Bir Dizini İzleme

Öğrencilerin proje dosyalarının bulunduğu /home/ogrenci/projeler dizinindeki silme işlemlerini loglamak için:


sudo auditctl -w /home/ogrenci/projeler -p w -k proje_silme_denemesi

B. Sistem Çağrılarını İzleme (System Call Rules)

Sistemde çalıştırılan komutları ve süreçleri (process) izlemek, zararlı yazılım tespiti veya yetki yükseltme denemelerini yakalamak için kritiktir.

Örnek 3: Bütün execve (Komut Çalıştırma) Çağrılarını İzleme

Sistemde root yetkisiyle çalıştırılan komutları tespit etmek için (MITRE ATT&CK: Privilege Escalation tespiti):


sudo auditctl -a always,exit -F arch=b64 -S execve -F euid=0 -k root_komutlari

  • -a always,exit: Kuralın ne zaman tetikleneceği.

  • -F arch=b64: 64-bit mimari.

  • -S execve: İzlenecek sistem çağrısı.

  • -F euid=0: Sadece Effective User ID'si 0 (root) olanları filtrele.


4. Logların Analizi ve Raporlama

Oluşturulan kurallar neticesinde auditd, olayları /var/log/audit/audit.log dosyasına yazar. Ancak bu dosyayı doğrudan okumak karmaşıktır. Bunun yerine özel araçlar kullanılır.


ausearch ile Log Arama


Belirlediğimiz etiketlere (-k) göre arama yapmak çok pratiktir. Örneğin /etc/shadow kuralımız tetiklenmiş mi diye bakmak için:


sudo ausearch -k shadow_degisikligi

Belirli bir kullanıcının (örneğin UID 1000) yaptığı işlemleri aramak için:

sudo ausearch -ui 1000

aureport ile Özet Raporlar Alma

Sistemdeki genel güvenlik durumu hakkında özet bilgi almak için:

sudo aureport --summary

Başarısız giriş denemelerini (Login Fails) listelemek için:

sudo aureport -l --failed

5. Kuralları Kalıcı Hale Getirme

auditctl ile yazılan kurallar sistem yeniden başlatıldığında silinir. ETAP cihazlarında veya sunucularda kalıcılık sağlamak için kurallarınızı /etc/audit/rules.d/audit.rules dosyasına eklemelisiniz.

Dosyayı yetkili bir metin editörü ile açın ve komutları (başındaki auditctl kısmını atarak) dosyaya ekleyin:


# /etc/audit/rules.d/audit.rules içeriği
-w /etc/shadow -p wa -k shadow_degisikligi
-w /etc/passwd -p wa -k passwd_degisikligi
-a always,exit -F arch=b64 -S execve -F euid=0 -k root_komutlari

Değişiklikleri uyguladıktan sonra servisi yeniden başlatın (veya kuralları yeniden yükleyin):


sudo augenrules --load

Sonuç

Pardus sistemlerinde auditd kullanımı, hem savunma odaklı (Blue Team) eğitimlerin temel bir parçası hem de sistem yönetiminin vazgeçilmez bir unsurudur. Sınıf içi etkileşimli tahtalarda (Cinnamon masaüstü ortamında) veya uzak sunucularda çalışan servislerde, arka planda ne olup bittiğini bilmek, olası siber güvenlik vakalarına hızlı müdahale etmenizi sağlar.

Öneri: Bu kuralları yapılandırırken, sistem performansını etkilememesi adına sadece gerçekten kritik olan dizinleri ve sistem çağrılarını izlemeye özen gösterin. Gereksiz loglama, disk alanını hızla tüketebilir.



Yorumlar

Bu blogdaki popüler yayınlar

Android Telefon/Tablet Ekranını Pardus ETAP 23 Yüklü Akıllı Tahtaya Yansıtma

Pardus Etap 23’de Unutulmuş Etap Yetkili Parolasını Sıfırlama

Pardus Etap 23 Yazıcı Kurulumu