auditd nedir?
auditd, Linux çekirdeğinin denetim (audit) çerçevesinin olay kayıtlarını diske yazan servistir. Hangi kullanıcının hangi dosyaya eriştiği, hangi komutu çalıştırdığı ya da sistem ayarını nasıl değiştirdiği gibi güvenlik açısından önemli olayları, belirlediğiniz kurallara göre kaydeder. Olay sonrası inceleme ve uyumluluk denetimleri için temel bir araçtır.
Standart sistem günlüklerinden farkı, çekirdek seviyesinde ve ayrıntılı olay yakalamasıdır. Yalnızca ne olduğunu değil, kimin hangi kimlikle yaptığını da kayda geçirir.
Nasıl çalışır?
Denetim kuralları, çekirdeğe auditctl ile ya da kalıcı olarak /etc/audit/rules.d/ altındaki dosyalarla yüklenir. İki ana kural tipi vardır: dosya veya dizin izleyen kurallar (-w) ve sistem çağrılarını izleyen kurallar (-a). Eşleşen olaylar /var/log/audit/audit.log dosyasına yazılır.
Kayıtları okumak için ausearch ile arama, aureport ile özet rapor alınır. Kurallara anahtar (-k) etiketi vermek, ilgili olayları sonradan bulmayı kolaylaştırır.
Sunucu ve hosting ortamında
Sunucularda auditd genellikle /etc/passwd, /etc/shadow, /etc/ssh/sshd_config ve sudoers gibi kritik dosyaların değişimini, ayrıca yetki yükseltme ve sudo kullanımını izlemek için kurulur. CIS Benchmark gibi sertleştirme rehberleri auditd kurallarını önerir. Günlükler, merkezi bir SIEM ya da günlük sunucusuna iletildiğinde saldırgan yerel kayıtları silse bile iz kalır.
Nasıl uygulanır?
- Kritik yapılandırma dosyaları, kimlik doğrulama dosyaları ve
sudokullanımı için izleme kuralları tanımlayın. - Kuralları kalıcı dosyalarda tutun ve istenirse değiştirilemez moda (
-e 2) alın. - Günlük boyutunu ve döndürme politikasını ayarlayın; disk dolarsa davranışı (
disk_full_action) bilinçli seçin. - Günlükleri uzak bir merkeze iletin ve düzenli inceleyin.
- Kural sayısını ihtiyaçla sınırlı tutun; aşırı geniş kurallar gürültü ve performans kaybı üretir.
Sık yapılan hatalar
- Her şeyi izleyen geniş kurallarla günlüğü anlamsız gürültüyle doldurmak.
- Günlükleri hiç incelememek ve yalnızca toplamak.
- Disk dolu eylemini düşünmeden bırakıp sunucunun durmasına veya kaydın kaybına yol açmak.
- Günlükleri yalnızca yerelde tutmak.
Sık sorulan sorular
auditd ile syslog arasındaki fark nedir?
Syslog uygulama ve servis mesajlarını toplar. auditd ise çekirdek düzeyinde güvenlik olaylarını yakalar; hangi kullanıcı kimliğiyle hangi işlemin yapıldığı ayrıntılı kaydedilir.
auditd performansı etkiler mi?
Makul sayıda kuralla etkisi küçüktür. Çok sık gerçekleşen sistem çağrılarını izleyen geniş kurallar ise yük oluşturabilir.
Bir dosyayı kimin değiştirdiğini nasıl bulurum?
Dosyaya auditctl -w /yol -p wa -k etiket ile izleme koyup ausearch -k etiket ile kayıtlara bakabilirsiniz.
Bu terimin geçtiği rehberler
- auditd ile denetim kaydı: kritik dosya ve komutları izlemeauditd ile Linux sunucuda denetim kaydı tutun: kritik dosya değişikliklerini ve komutları izleyen kurallar yazın, ausearch ve aureport ile kayıtları sorgulayın.
- AIDE ile dosya bütünlüğü izlemeAIDE ile sunucudaki dosya değişikliklerini izleyin: kurulum, veritabanı oluşturma, kural yazma, düzenli denetim, güncelleme ve sonuçları güvenle yorumlama adımları.
- SELinux ve AppArmor temel kullanımSELinux ve AppArmor temel kullanım: durum kontrolü, enforcing ve complain modları, reddedilen işlemleri okuma, bağlam ve profil düzeltme.
İlgili terimler
- Backport (geri taşıma)Yeni sürümdeki bir düzeltmenin eski sürüme uyarlanarak getirilmesi.
- Canlı yama (live patching)Çekirdek güncellemesini sunucuyu yeniden başlatmadan uygulama yöntemi.
- Çekirdek (kernel)İşletim sisteminin donanımı ve süreçleri yöneten merkezi parçası.
- cgroupscgroups, Linux çekirdeğinde süreç gruplarının işlemci, bellek ve G/Ç gibi kaynak kullanımını sınırlayan ve ölçen mekanizmadır.
- Dosya sistemi (ext4, XFS)Dosya sistemi, verilerin diskte nasıl düzenlenip saklanacağını belirler; Linux sunucularda en yaygın seçenekler ext4 ve XFS’tir.
- EOL (Destek sonu)Bir yazılım sürümünün üreticiden artık güvenlik düzeltmesi almadığı nokta.