Auditd ile Linux Sunucu Güvenlik Denetimi Rehberi

Auditd ile Linux Sunucu Güvenlik Denetimi Rehberi - Corelux
5 Tem 2026
Paylaş:

Auditd ile Linux Sunucu Güvenlik Denetimi Rehberi

Son Güncelleme: Haziran 2026

Auditd, Linux sunucularda dosya erişimleri, yetki yükseltme denemeleri, kullanıcı oturumları, sistem çağrıları ve kritik yapılandırma değişikliklerini izlemek için kullanılan güçlü bir güvenlik denetimi aracıdır. Özellikle VPS, VDS, kiralık sunucu ve kurumsal hosting altyapılarında olay takibi, uyumluluk ve ihlal analizi için düzenli audit kayıtları büyük önem taşır.

Bu rehberde auditd kurulumu, temel yapılandırma, izleme kuralları, log analizi, performans ayarları ve pratik güvenlik senaryoları adım adım ele alınmaktadır. Amaç, Linux sunucunuzda yalnızca log toplamak değil, aynı zamanda hangi olayın ne zaman, hangi kullanıcı tarafından ve hangi işlemle gerçekleştiğini anlamanızı sağlamaktır.

İçindekiler

Auditd Nedir?

Auditd, Linux Audit Framework üzerinde çalışan ve çekirdek seviyesindeki güvenlik olaylarını kullanıcı alanında kayıt altına alan bir daemon yani arka plan servisidir. Audit altyapısı, Linux çekirdeğinin olay üretme yeteneğini kullanır; auditd ise bu olayları alır, işler ve genellikle /var/log/audit/audit.log dosyasına yazar.

Standart sistem logları çoğu zaman bir servisin hata verdiğini, bir bağlantının başarısız olduğunu veya bir uygulamanın yeniden başlatıldığını gösterebilir. Ancak auditd daha ayrıntılıdır. Örneğin /etc/passwd dosyasını hangi kullanıcının açtığını, sudo ile hangi komutun çalıştırıldığını, belirli bir dosyanın silinip silinmediğini veya sistem saatinin değiştirilip değiştirilmediğini takip edebilirsiniz.

Bu yönüyle auditd, yalnızca saldırı sonrası inceleme için değil, aynı zamanda proaktif güvenlik izleme, mevzuat uyumluluğu, erişim kontrol denetimi ve sistem yöneticisi faaliyetlerinin kayıt altına alınması için de kullanılır. Linux tabanlı Sanal Sunucu, Kiralık Sunucu ve Linux Hosting altyapılarında audit kayıtları, yönetim süreçlerini daha şeffaf hale getirir.

Auditd Ne İşe Yarar?

Auditd, Linux sunucularda güvenlik açısından kritik kabul edilen olayların detaylı şekilde kaydedilmesini sağlar. Burada temel amaç, sistemde meydana gelen önemli değişiklikleri sonradan analiz edilebilir hale getirmektir. Özellikle çok kullanıcılı sunucularda, yönetici erişimi bulunan ekiplerde veya müşteriye özel izole sistemlerde auditd ciddi bir görünürlük kazandırır.

  • Dosya bütünlüğü takibi: Kritik dosyaların okunması, yazılması, silinmesi veya izinlerinin değiştirilmesi izlenebilir.
  • Kullanıcı faaliyet denetimi: Oturum açma, oturum kapatma, kimlik değiştirme ve yetki yükseltme olayları kayıt altına alınabilir.
  • Sistem çağrısı izleme: Belirli sistem çağrıları yani kernel seviyesindeki işlem talepleri takip edilebilir.
  • Uyumluluk desteği: ISO 27001, PCI DSS, KVKK süreçleri veya iç denetim politikalarında kanıt niteliğinde log üretilebilir.
  • İhlal sonrası analiz: Şüpheli bir dosya değişikliği, yetkisiz erişim veya beklenmeyen kullanıcı hareketi geriye dönük incelenebilir.

Auditd, klasik antivirüs veya güvenlik duvarı yerine geçen bir araç değildir. Bunun yerine, olay denetimi ve kanıt üretimi görevini üstlenir. Örneğin bir saldırgan root yetkisi elde etmişse, auditd doğru yapılandırıldığında saldırganın hangi dosyalara eriştiğini, hangi kullanıcıları oluşturduğunu veya hangi komutları çalıştırdığını gösterebilir.

Özellik Standart Sistem Logları Auditd Logları
Kapsam Servis, uygulama ve sistem mesajları Dosya erişimi, sistem çağrısı, kullanıcı ve yetki olayları
Detay Seviyesi Genellikle olay sonucu odaklıdır Kullanıcı, işlem, pid, dosya yolu ve anahtar bilgisi içerir
Uyumluluk Temel kayıt için yeterli olabilir Denetim ve regülasyon süreçleri için daha uygundur
Kural Tabanlı İzleme Sınırlıdır Özel audit kuralları ile ayrıntılı yapılandırılabilir

Linux Sunucuda Auditd Kurulumu

Auditd birçok kurumsal Linux dağıtımında paket yöneticisi üzerinden kolayca kurulabilir. Bazı sistemlerde varsayılan olarak kurulu gelebilir; ancak servis etkin olmayabilir. Kurulum öncesinde root veya sudo yetkisine sahip olmanız gerekir.

Ubuntu ve Debian Üzerinde Kurulum

Ubuntu veya Debian tabanlı bir sunucuda auditd kurulumu için aşağıdaki komutları kullanabilirsiniz:

sudo apt update
sudo apt install auditd audispd-plugins -y
sudo systemctl enable auditd
sudo systemctl start auditd
sudo systemctl status auditd

audispd-plugins paketi, audit olaylarının farklı hedeflere yönlendirilmesi veya ek işlem hatlarına aktarılması için kullanılır. Basit kullanımda zorunlu olmasa da merkezi loglama, SIEM entegrasyonu veya özel denetim akışları için faydalıdır.

RHEL, AlmaLinux ve Rocky Linux Üzerinde Kurulum

RHEL tabanlı sistemlerde auditd genellikle varsayılan olarak bulunur. Yine de kurulum ve servis kontrolü için şu komutlar kullanılabilir:

sudo dnf install audit audit-libs -y
sudo systemctl enable auditd
sudo systemctl start auditd
sudo systemctl status auditd

Eski sistemlerde dnf yerine yum kullanılabilir:

sudo yum install audit audit-libs -y

Servis Durumunu Doğrulama

Kurulumdan sonra auditd servisinin çalıştığını doğrulamak için aşağıdaki komutları çalıştırabilirsiniz:

sudo systemctl is-active auditd
sudo auditctl -s

auditctl -s çıktısında enabled, backlog, lost ve backlog_limit gibi bilgiler görülür. lost değerinin artması, sistemin audit olaylarını kaybettiğini gösterebilir ve performans ayarlarının gözden geçirilmesi gerekir.

Temel Auditd Yapılandırması

Auditd ana yapılandırma dosyası genellikle /etc/audit/auditd.conf yolunda bulunur. Bu dosya log dosyasının konumunu, log rotasyon davranışını, disk dolduğunda ne yapılacağını ve olay yazma yöntemini belirler.

Önemli auditd.conf Parametreleri

Parametre Açıklama Öneri
log_file Audit log dosyasının yolunu belirler. /var/log/audit/audit.log varsayılanı genellikle uygundur.
max_log_file Tek bir audit log dosyasının MB cinsinden maksimum boyutudur. Yoğun sistemlerde 100 MB veya üzeri değerlendirilebilir.
num_logs Saklanacak eski log dosyası sayısını belirler. Disk kapasitesine göre 10 veya daha yüksek seçilebilir.
max_log_file_action Log dosyası maksimum boyuta ulaşınca yapılacak işlemdir. ROTATE çoğu sunucu için uygundur.
space_left_action Disk alanı azaldığında alınacak aksiyondur. SYSLOG veya kritik sistemlerde EMAIL kullanılabilir.

Örnek bir temel yapılandırma aşağıdaki gibi olabilir:

log_file = /var/log/audit/audit.log
log_format = RAW
flush = INCREMENTAL_ASYNC
freq = 50
max_log_file = 100
num_logs = 10
max_log_file_action = ROTATE
space_left = 500
space_left_action = SYSLOG
disk_full_action = SUSPEND
disk_error_action = SUSPEND

Yapılandırma değişikliklerinden sonra servisi yeniden başlatmak için dağıtıma göre aşağıdaki komut kullanılabilir:

sudo systemctl restart auditd

Bazı Linux dağıtımlarında auditd servisi özel güvenlik nedeniyle systemctl restart komutuyla yeniden başlatılamayabilir. Bu durumda aşağıdaki komut tercih edilebilir:

sudo service auditd restart

Audit Kuralları Nasıl Yazılır?

Auditd kuralları, hangi olayların takip edileceğini belirler. Geçici kurallar auditctl komutu ile eklenir ve sistem yeniden başlatıldığında kaybolur. Kalıcı kurallar ise genellikle /etc/audit/rules.d/ dizini altındaki .rules dosyalarına yazılır.

Geçici Kural Ekleme

Örneğin /etc/passwd dosyasındaki yazma ve izin değişikliklerini izlemek için şu komut kullanılabilir:

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

Bu komutta -w izlenecek dosyayı, -p izin türlerini, -k ise arama ve raporlama sırasında kullanılacak anahtar kelimeyi belirtir.

  • r: Okuma işlemlerini izler.
  • w: Yazma işlemlerini izler.
  • x: Çalıştırma işlemlerini izler.
  • a: Dosya özniteliği yani izin ve sahiplik değişikliklerini izler.

Kalıcı Kural Oluşturma

Kalıcı audit kuralları için özel bir dosya oluşturabilirsiniz:

sudo nano /etc/audit/rules.d/corelux-hardening.rules

Aşağıdaki örnek kurallar, temel güvenlik denetimi için başlangıç noktası olarak kullanılabilir:

-w /etc/passwd -p wa -k user_account_changes
-w /etc/shadow -p wa -k user_password_changes
-w /etc/group -p wa -k group_changes
-w /etc/sudoers -p wa -k sudoers_changes
-w /etc/ssh/sshd_config -p wa -k ssh_config_changes
-w /var/log/auth.log -p wa -k auth_log_changes
-w /var/log/secure -p wa -k secure_log_changes

Kuralları yüklemek için aşağıdaki komutu çalıştırabilirsiniz:

sudo augenrules --load
sudo auditctl -l

auditctl -l komutu, aktif audit kurallarını listeler. Böylece yazdığınız kuralların sisteme yüklendiğini doğrulayabilirsiniz.

Sistem Çağrısı Kuralları

Dosya izleme kuralları çoğu senaryo için yeterli olsa da, gelişmiş denetimde sistem çağrısı yani system call tabanlı kurallar da kullanılır. Örneğin 64 bit sistemlerde kullanıcı ve grup kimliği değiştirme çağrılarını izlemek için şu kural kullanılabilir:

-a always,exit -F arch=b64 -S setuid -S setgid -S setreuid -S setregid -k identity_changes

Bu tür kurallar güçlüdür ancak dikkatli kullanılmalıdır. Çok geniş kapsamlı sistem çağrısı takibi, yüksek trafikli sunucularda log hacmini artırabilir ve performansı etkileyebilir.

Pratik İzleme Senaryoları

Auditd en verimli şekilde, belirli risk senaryoları için hedefli kurallar yazıldığında kullanılır. Aşağıdaki örnekler, Linux sunucu yöneticilerinin günlük operasyonlarda en sık ihtiyaç duyduğu denetim alanlarını kapsar.

SSH Yapılandırma Değişikliklerini İzleme

SSH servisi sunucu erişiminin temel noktasıdır. sshd_config dosyasında yapılacak hatalı veya kötü niyetli bir değişiklik, root girişini açabilir ya da güvenli kimlik doğrulama politikasını zayıflatabilir.

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

Sudo Yetkilerini Takip Etme

/etc/sudoers ve /etc/sudoers.d/ altındaki değişiklikler, kimlerin yönetici yetkisi kullanabileceğini belirler. Bu nedenle mutlaka izlenmelidir.

-w /etc/sudoers -p wa -k sudo_policy
-w /etc/sudoers.d/ -p wa -k sudo_policy

Web Dizinlerinde Şüpheli Dosya Oluşturma

Web sunucularında zararlı dosya yükleme, shell dosyası bırakma veya beklenmeyen PHP dosyaları oluşturma gibi olaylar sık karşılaşılan güvenlik riskleridir. Örnek olarak /var/www dizinindeki yazma ve öznitelik değişiklikleri izlenebilir:

-w /var/www/ -p wa -k web_content_changes

Paylaşımlı hosting, bayi hosting veya uygulama sunucusu senaryolarında bu kural oldukça faydalıdır. Daha kapsamlı ve yönetilebilir altyapılar için Hosting, Linux Bayi Hosting veya Uygulama Sunucuları çözümleri değerlendirilebilir.

Kritik Komutların Çalıştırılmasını İzleme

Bazı komutların çalıştırılması doğrudan risk anlamına gelmez; fakat güvenlik analizi için önemlidir. Örneğin useradd, usermod, passwd ve chattr komutları izlenebilir.

-w /usr/sbin/useradd -p x -k user_mgmt_cmd
-w /usr/sbin/usermod -p x -k user_mgmt_cmd
-w /usr/bin/passwd -p x -k password_cmd
-w /usr/bin/chattr -p x -k file_attribute_cmd

Sistem Saati Değişikliklerini İzleme

Sistem saatinin değiştirilmesi log bütünlüğünü etkileyebilir. Saldırganlar olay sırasını gizlemek için zamanı değiştirmeye çalışabilir. Bu nedenle saat değişikliği çağrıları izlenebilir:

-a always,exit -F arch=b64 -S adjtimex -S settimeofday -k time_change
-w /etc/localtime -p wa -k time_change

Audit Log Analizi

Auditd tarafından üretilen ham loglar ayrıntılıdır ancak ilk bakışta karmaşık görünebilir. Bu nedenle auditd ile birlikte gelen ausearch ve aureport araçları analiz sürecini kolaylaştırır.

Belirli Anahtara Göre Arama

Bir kuralda belirlediğiniz -k anahtarına göre arama yapmak için ausearch kullanılabilir:

sudo ausearch -k sshd_config_watch

Daha okunabilir çıktı için -i parametresi eklenebilir:

sudo ausearch -k sshd_config_watch -i

Kullanıcıya Göre Olay Arama

Belirli bir kullanıcı kimliği ile ilişkili olayları aramak için aşağıdaki komut kullanılabilir:

sudo ausearch -ua 1000 -i

Bu yöntem, özellikle bir kullanıcının hangi komutları çalıştırdığı veya hangi dosyaları değiştirdiği araştırılırken yararlıdır.

Rapor Üretme

aureport, audit loglarından özet rapor üretmek için kullanılır. Örneğin oturum açma raporu için:

sudo aureport -l

Yetkilendirme olayları için:

sudo aureport -au

Dosya olayları için:

sudo aureport -f

Örnek Olay İnceleme Akışı

Bir web dizininde beklenmeyen dosya oluştuğunu varsayalım. Önce ilgili anahtarla arama yapılır:

sudo ausearch -k web_content_changes -i

Çıktıda uid, auid, pid, comm, exe ve dosya yolu bilgileri incelenir. comm alanı işlemin adını, exe alanı çalıştırılan dosyanın tam yolunu, auid alanı ise oturumu başlatan kullanıcıyı anlamaya yardımcı olur. Böylece işlemin bir web sunucusu kullanıcısı, bir yönetici hesabı veya beklenmeyen bir süreç tarafından mı yapıldığı anlaşılabilir.

Performans ve Güvenlik İpuçları

Auditd güçlü bir denetim aracıdır; ancak yanlış veya aşırı geniş kurallar performans, disk kullanımı ve analiz edilebilirlik açısından sorun oluşturabilir. İyi bir audit stratejisi, yüksek sinyal ve düşük gürültü prensibine dayanmalıdır.

  • Hedefli kural yazın: Tüm dosya sistemini izlemek yerine kritik dosyaları, dizinleri ve komutları seçin.
  • Anahtar kullanımını standartlaştırın: Her kuralda anlamlı -k anahtarı kullanın. Örneğin ssh_config_changes, sudo_policy veya web_content_changes.
  • Log rotasyonunu planlayın: Audit logları hızla büyüyebilir. max_log_file ve num_logs değerlerini disk kapasitesine göre ayarlayın.
  • Merkezi loglama kullanın: Kritik sistemlerde audit loglarını yalnızca yerel diskte tutmak yeterli değildir. Uzak log sunucusu veya SIEM çözümü değerlendirilebilir.
  • Disk doluluk aksiyonlarını belirleyin: Disk dolduğunda auditd davranışının ne olacağını önceden planlayın. Üretim sistemlerinde plansız servis durması riskini dikkate alın.
  • Kuralları test edin: Yeni kural ekledikten sonra bilinçli bir test olayı oluşturun ve ausearch ile kayıt oluştuğunu doğrulayın.

Yüksek trafikli e-ticaret siteleri, API servisleri, kurumsal paneller ve çok kullanıcılı uygulamalarda audit logları düzenli yedeklenmelidir. Bu noktada Yedekleme Hizmeti kullanmak, güvenlik olaylarında kanıt niteliğindeki kayıtların kaybolmasını önlemeye yardımcı olabilir.

Backlog Limit Ayarı

Audit olayları çok hızlı oluştuğunda çekirdek tarafında bekleyen olay kuyruğu dolabilir. Bu durumda olay kaybı yaşanabilir. Geçici olarak backlog limitini artırmak için:

sudo auditctl -b 8192

Kalıcı yapılandırma için audit kurallarının başına aşağıdaki satır eklenebilir:

-b 8192

Immutable Audit Kuralları

Yüksek güvenlik gerektiren ortamlarda audit kuralları değiştirilemez hale getirilebilir. Bunun için kural dosyasının sonuna şu satır eklenir:

-e 2

-e 2 audit yapılandırmasını kilitler. Bu ayardan sonra kuralları değiştirmek için sistemin yeniden başlatılması gerekebilir. Bu nedenle üretim sistemlerinde dikkatli uygulanmalıdır.

Yaygın Sorunlar ve Çözümleri

Auditd kullanırken karşılaşılan sorunların büyük bölümü kural sözdizimi, servis durumu, log rotasyonu veya aşırı log üretimi ile ilgilidir. Aşağıdaki kontroller, pratik sorun giderme sürecinde yardımcı olur.

Auditd Servisi Çalışmıyor

Öncelikle servis durumunu kontrol edin:

sudo systemctl status auditd
sudo journalctl -u auditd --no-pager

Yapılandırma hatası varsa journalctl çıktısında ilgili satırlar görülebilir. Kural dosyalarında yanlış parametre, eksik dosya yolu veya desteklenmeyen sistem çağrısı kullanımı servis yüklemesini engelleyebilir.

Kurallar Yüklenmiyor

Kalıcı kuralları yeniden oluşturmak ve yüklemek için:

sudo augenrules --check
sudo augenrules --load
sudo auditctl -l

augenrules --check, kural dosyalarında değişiklik olup olmadığını kontrol eder. Kurallar aktif listede görünmüyorsa dosya uzantısının .rules olduğundan ve doğru dizinde bulunduğundan emin olun.

Log Dosyası Çok Hızlı Büyüyor

Bu durum genellikle çok geniş kapsamlı kurallardan kaynaklanır. Örneğin kök dizini / üzerinde yazma izlemesi yapmak, yoğun sistemlerde aşırı log üretir. Kuralları daraltın ve yalnızca kritik dizinleri izleyin.

sudo auditctl -l
sudo aureport --summary

Olay Kaybı Yaşanıyor

auditctl -s çıktısında lost değeri artıyorsa backlog limiti, disk yazma performansı ve kural yoğunluğu gözden geçirilmelidir.

sudo auditctl -s

Yoğun üretim sistemlerinde daha güçlü disk altyapısı, optimize edilmiş kural seti ve merkezi loglama planı gerekir. Kritik iş yükleri için Türkiye Kiralık Sunucu veya kaynak izolasyonu sunan Türkiye VDS Sunucu çözümleri tercih edilebilir.

Sıkça Sorulan Sorular

Auditd antivirüs veya güvenlik duvarı yerine geçer mi?

Hayır. Auditd bir antivirüs, WAF veya firewall değildir. Görevi güvenlik olaylarını ayrıntılı şekilde kayıt altına almak ve denetim izi oluşturmaktır. En iyi sonuç için güvenlik duvarı, erişim kontrolü, güncelleme yönetimi ve yedekleme stratejileriyle birlikte kullanılmalıdır.

Auditd performansı etkiler mi?

Doğru yapılandırıldığında etkisi genellikle sınırlıdır. Ancak çok geniş kapsamlı sistem çağrısı kuralları, tüm dosya sistemini izleyen kurallar veya yüksek frekansta olay üreten dizinler performansı ve disk kullanımını olumsuz etkileyebilir. Bu nedenle hedefli ve ölçülebilir kurallar yazılmalıdır.

Audit logları nerede tutulur?

Varsayılan olarak audit logları /var/log/audit/audit.log dosyasında tutulur. Log konumu /etc/audit/auditd.conf dosyasındaki log_file parametresiyle değiştirilebilir. Kritik sistemlerde bu logların merkezi bir log sunucusuna da aktarılması önerilir.

Auditd ile hangi dosyalar mutlaka izlenmelidir?

Genellikle /etc/passwd, /etc/shadow, /etc/group, /etc/sudoers, /etc/ssh/sshd_config ve web uygulaması dizinleri izlenir. Ancak en doğru liste, sunucunun rolüne göre belirlenmelidir. Veritabanı sunucusu, web sunucusu ve uygulama sunucusu için izlenecek yollar farklı olabilir.

Auditd kayıtları saldırı sonrası incelemede yeterli olur mu?

Auditd önemli kanıtlar sağlayabilir; ancak tek başına her şeyi garanti etmez. Saldırı sonrası inceleme için sistem logları, web sunucusu logları, veritabanı logları, ağ kayıtları, yedekler ve dosya bütünlüğü kontrolleri birlikte değerlendirilmelidir. Auditd bu sürecin güçlü bir parçasıdır.

Kuralları değiştirilmez hale getirmek güvenli midir?

-e 2 ile audit kurallarını immutable yani değiştirilemez hale getirmek güvenliği artırabilir. Ancak bu ayar yönetim esnekliğini azaltır ve değişiklik için yeniden başlatma gerektirebilir. Bu nedenle özellikle üretim ortamlarında test edilmeden uygulanmamalıdır.

Sonuç

Auditd, Linux sunucularda güvenlik denetimi, olay takibi ve ihlal sonrası analiz için vazgeçilmez araçlardan biridir. Kritik dosyaların değişimini izlemek, kullanıcı faaliyetlerini kaydetmek, sistem çağrılarını takip etmek ve uyumluluk süreçleri için kanıt üretmek isteyen sistem yöneticileri için güçlü ve esnek bir çözüm sunar.

En iyi sonuç için auditd kurallarını sunucunun rolüne göre planlamak, gereksiz log üretiminden kaçınmak, log rotasyonunu doğru yapılandırmak ve kritik kayıtları yedeklemek gerekir. Corelux altyapısında Sanal Sunucu, Kiralık Sunucu, Bulut Sunucu ve SSL Sertifikası çözümlerini değerlendirerek güvenli, izlenebilir ve sürdürülebilir bir sunucu mimarisi oluşturabilirsiniz.

Yazar

Boran BAR

Chat on WhatsApp