
Linux Güvenlik Denetimi: Lynis, AIDE ve ClamAV ile Pratik Koruma
VDS sunucunuz hacklendiğinde ne zaman girildiğini, hangi dosyanın değiştiğini ve hangi malware bırakıldığını bulmak için Lynis, AIDE ve ClamAV kurulum, kullanım ve otomasyon rehberi.
Linux Güvenlik Denetimi: Lynis, AIDE ve ClamAV ile Pratik Koruma
VDS sunucunuz hacklendi — saldırgan ne zaman girdi, neyi değiştirdi, hangi malware bıraktı? Bu üç soruya cevap verebilmek için sırasıyla AIDE, ClamAV ve Lynis lazım. Güvenlik denetimi reaktif değil, proaktif kurulur. Saldırı geldiğinde "şimdi ne yapacağız?" diye soranlar değil, haftalık raporları önceden okuyanlar hasarı minimum tutar.
Bu yazıda üç açık kaynaklı aracı sıfırdan kuruyoruz, anlamlı şekilde kullanıyoruz ve haftalık otomatik e-posta raporuna bağlıyoruz. AlmaLinux 9, Ubuntu 22.04, Debian 12 ve RHEL 9 için geçerli komutlar verildi — hepsi standart paket depolarında mevcut.
Buyukweb perspektifi: Buyukweb cPanel hosting paketlerinde Imunify360 entegre — malware taraması ve gerçek zamanlı koruma Buyukweb tarafından günlük çalıştırılır, müşteri ek kurulum yapmak zorunda değil. VDS unmanaged — Lynis, AIDE ve ClamAV kurulumu, yapılandırması ve zamanlama tamamen müşteri sorumluluğundadır. Bu rehber VDS kullanıcılarına yöneliktir. Tercih etmeyin: Lynis + AIDE + ClamAV başlangıç katmanı — kurumsal SOC ortamında yetersiz kalır; gerçek SIEM (Wazuh, Graylog, ELK gibi açık kaynak çözümler) gerekir. Ama tek sunucu veya küçük altyapı için bu üçlü, saldırı tespitinin yüzde seksenini karşılar.
Üç Araç, Üç Farklı Soruya Cevap
Güvenlik araçlarını karıştırmak yaygın hata. Lynis sistem zafiyeti sorar; AIDE dosyanın değişip değişmediğini izler; ClamAV kötücül yazılım imzalarına bakar. Üçü aynı işi yapmaz; üçü birbirini tamamlar.
| Araç | Görev | Temel soru | Sıklık |
|---|---|---|---|
| Lynis 3.x | Zafiyet ve yapılandırma denetimi | "Sistemde bilinen açık var mı?" | Haftalık / aylık |
| AIDE 0.18+ | Dosya bütünlük izleme | "Hangi dosya değişti, eklendi, silindi?" | Günlük |
| ClamAV 1.x | Malware imza taraması | "Sunucuda kötücül yazılım var mı?" | Haftalık |
Üç aracı birlikte kullanma senaryosu şudur: Lynis aylık çalışır ve açık kalan sysctl parametrelerini, gereksiz açık portları, zayıf SSH yapılandırmasını listeler. AIDE gece otomatik çalışır; sabah e-postada "/etc/passwd değişti" görürsün. ClamAV hafta sonu web kök dizini tarar; yüklenen PHP webshell'ini yakalar. Bu üçlü kurulu değilse saldırı haftalarca fark edilmez.
1. Lynis — Zafiyet ve Yapılandırma Tarayıcısı
Lynis, 300'den fazla otomatik test çalıştıran sistem güvenlik denetim aracıdır. SSH yapılandırma hataları, kernel parametreleri, gereksiz çalışan servisler, zayıf parola politikası, güncellenmemiş paketler — tek komutla tüm bunları raporlar.
Kurulum
# Ubuntu 22.04 / Debian 12
apt install -y lynis
# AlmaLinux 9 / RHEL 9
dnf install -y lynis
# Lynis sürümünü doğrula — 3.x olmalı
lynis show version
Eğer paket deposundaki sürüm eskiyse CISOfy'ın kendi deposunu ekleyebilirsin; ama çoğu güncel dağıtımda depo sürümü 3.x gelir.
Sistem Denetimi
# Tam sistem taraması
lynis audit system
# Sessiz mod — sadece uyarı ve önerileri listeler
lynis audit system --quiet
# Belirli kategoriyi tara
lynis audit --tests-from-group authentication
lynis audit --tests-from-group networking
lynis audit --tests-from-group malware
Tarama tamamlanınca ekran sarı ve kırmızı satırlarla dolar — paniklemek değil okumak gerekir.
Rapor Yorumlama
Lynis çıktısı üç bölümden oluşur:
| Bölüm | Anlamı | Öncelik |
|---|---|---|
| Warning | Açık veya yanlış yapılandırma; acil | Yüksek |
| Suggestion | İyileştirme önerisi; ertelenebilir | Orta |
| Hardening index | 100 üzerinden genel puan | Referans |
# Tüm önerileri listele
lynis show suggestions
# Belirli bir testin detayına bak
lynis show details AUTH-9262
# Ham log dosyası
cat /var/log/lynis.log | grep -A5 "Warning"
# Makineye okunabilir rapor
cat /var/log/lynis-report.dat
Yaygın Lynis uyarıları ve ilk düzeltmeleri:
# AUTH-9328: root SSH girişi açık
sed -i 's/^#*PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config
systemctl reload sshd
# KRNL-6000: sysctl dmesg_restrict kapalı
echo "kernel.dmesg_restrict = 1" >> /etc/sysctl.d/99-lynis.conf
echo "kernel.kptr_restrict = 2" >> /etc/sysctl.d/99-lynis.conf
sysctl --system
# PKGS-7392: güncellenmemiş paketler
apt upgrade -y # Ubuntu/Debian
dnf upgrade --security # AlmaLinux/RHEL
2. AIDE — Dosya Bütünlük İzleme
AIDE (Advanced Intrusion Detection Environment), kurulum anında sistemin "temiz hali"ni veritabanına kaydeder. Sonraki her çalışmada aynı dosyaları karşılaştırır; değişiklik, ekleme veya silme olmuşsa seni uyarır.
Senaryo: Saldırgan sunucuya girdi, /usr/bin/python3 yerine trojanlanmış bir binary koydu. Shell history'i temizledi, syslog'u değiştirdi. Gözle fark edilmez. AIDE gece çalıştığında "AIDE: /usr/bin/python3 — sha256 mismatch" raporu e-postana gelir.
Kurulum
# Ubuntu 22.04 / Debian 12
apt install -y aide
# AlmaLinux 9 / RHEL 9
dnf install -y aide
# Sürüm kontrolü — 0.18+ olmalı
aide --version
Yapılandırma
# /etc/aide.conf — kritik bölümler (dağıtıma göre /etc/aide/aide.conf da olabilir)
# Veritabanı yolları
database_in=file:/var/lib/aide/aide.db
database_out=file:/var/lib/aide/aide.db.new
# Kural tanımları
CONTENT_EX = sha256+ftype+p+lnk+n+u+g+acl+xattrs
# İzlenecek dizinler
/etc CONTENT_EX
/bin CONTENT_EX
/sbin CONTENT_EX
/usr/bin CONTENT_EX
/usr/sbin CONTENT_EX
/boot CONTENT_EX
/lib CONTENT_EX
/lib64 CONTENT_EX
/root CONTENT_EX
# İzlenmeyecek dizinler (sık değişenler; görmezden gelinmeli)
!/var/log
!/var/cache
!/var/run
!/proc
!/sys
!/tmp
!/dev
İlk Veritabanını Oluşturma
Bu adım bir kez yapılır — sunucu temiz ve sertleştirilmişken:
# Veritabanını başlat — birkaç dakika sürer
aide --init
# Oluşturulan veritabanını aktif hale getir
mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db
# (Ubuntu/Debian dağıtımında uzantılı olabilir)
mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
Kritik: AIDE veritabanını sunucu dışında sakla — harici depolama, salt okunur NFS veya güvenli nesne depolaması. Veritabanı sunucuda kalırsa saldırgan onu da değiştirebilir.
Bütünlük Kontrolü ve Uyarı Yorumlama
# Değişiklikleri kontrol et
aide --check
# Sadece değişen satırları filtrele
aide --check 2>&1 | grep -E "added:|removed:|changed:"
# Meşru değişiklik (örn. sistem güncellemesi) sonrası veritabanı güncelle
aide --update
mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db
AIDE çıktısında üç değişiklik tipi görünür:
| Tip | Anlamı | Yapılacak |
|---|---|---|
| added | Yeni dosya oluşturulmuş | Paketten mi geldi? Değilse şüpheli |
| changed | Mevcut dosya değişmiş | Güncelleme mi? Saldırı mı? Kontrol et |
| removed | Dosya silinmiş | Kasıtlı mı? Kötü niyetli mi? Araştır |
Sistem güncellemesi sonrası onlarca "changed" satırı normal — ama güncelleme yokken gelen "changed: /usr/bin/sshd" kırmızı alarm.
Otomatik Kontrol ve Veritabanı Güncelleme Sıklığı
# /etc/cron.d/aide-check
0 4 * * * root /usr/bin/aide --check 2>&1 | mail -s "AIDE: $(hostname) - $(date +%F)" [email protected]
# Güncelleme (sistem güncellemesi sonrası elle)
# aide --update && mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db
Ne sıklıkta veritabanı güncellenmeli? Kural şudur: sisteme planlı değişiklik yapıldığında (paket yükseltme, yeni servis kurulumu) AIDE veritabanını güncelle. Aksi hâlde günlük "changed" seli gerçek uyarıyı gömler.
3. ClamAV — Malware Taraması
ClamAV, açık kaynaklı antivirüs motorudur. İmza tabanlı çalışır — virüs veritabanı düzenli güncellenmezse eski imzalara bakar ve yeni tehditleri kaçırır. Bu yüzden freshclam servisi kritik.
Buyukweb cPanel hosting'de ClamAV Imunify360 altyapısı içinde gelir ve Buyukweb tarafından günlük güncellenerek çalıştırılır. VDS'de ise müşteri kurar ve yönetir.
Kurulum
# Ubuntu 22.04 / Debian 12
apt install -y clamav clamav-daemon
# AlmaLinux 9 / RHEL 9
dnf install -y clamav clamd clamav-update
# Sürüm kontrolü — 1.x olmalı
clamscan --version
Virüs Veritabanını Güncelle (freshclam)
# freshclam daemon'u durdur, güncelle, başlat
systemctl stop clamav-freshclam 2>/dev/null || true
freshclam
systemctl enable --now clamav-freshclam
# Manuel güncelleme
freshclam --verbose
freshclam günlük otomatik güncelleme yapar. Bant genişliği endişesi varsa günde 1 kez ile sınırlayabilirsin; /etc/clamav/freshclam.conf içinde Checks 1 yeterli.
Tarama Modları
# Tüm web dizinini tara, sadece enfekte dosyaları göster
clamscan -r --infected /var/www/html
# Sessiz mod, raporu dosyaya yaz
clamscan -r --infected --quiet --log=/var/log/clamav-scan.log /var/www/html
# Enfekte dosyaları karantinaya taşı (sil değil — önce incele)
clamscan -r --move=/var/quarantine /var/www/html
# Sadece sonuç özetini göster
clamscan -r --infected --summary /var/www
ClamAV tarama modları karşılaştırması:
| Mod | Komut seçeneği | Kullanım senaryosu |
|---|---|---|
| Standart tarama | clamscan -r |
Tüm sonuçları görmek |
| Sadece enfekte | --infected |
E-posta raporlama |
| Karantina | --move=/path |
Güvenli izolasyon |
| Silme | --remove |
Dikkatli kullan — geri dönüş yok |
| Sessiz log | --quiet --log |
Cron otomasyonu |
Dikkat:
--removeseçeneğini üretim ortamında doğrudan kullanma. Önce--moveile karantinaya al, dosyayı incele, sonra karar ver.
ClamAV ve RAM Kullanımı
ClamAV imza veritabanı büyük; freshclam güncellemesinin ardından clamd daemon'u 600 MB - 1 GB RAM tüketebilir. Düşük RAM'li VDS'lerde (1-2 GB) clamd yerine clamscan ile zamanlanmış tarama tercih et — daemon sürekli çalışmaz, sadece tarama anında yüklenir.
# RAM'i kontrol et
free -h
# clamd çalışıyor mu?
systemctl status clamav-daemon
# daemon yerine on-demand tarama için daemon'u durdur
systemctl disable clamav-daemon
# Taramayı cron ile çalıştır (aşağıda)
Üçlü Kombinasyon: Haftalık Otomatik Güvenlik Raporu
Üç araç ayrı ayrı kuruldu. Şimdi haftalık e-posta raporu için birleştiriyoruz.
Haftalık Güvenlik Raporu Scripti
cat > /usr/local/bin/weekly-security-report.sh << 'SCRIPT'
#!/bin/bash
REPORT_FILE="/tmp/security-report-$(date +%F).txt"
ADMIN_EMAIL="[email protected]"
HOSTNAME_LABEL=$(hostname)
echo "===== Haftalık Güvenlik Raporu: $HOSTNAME_LABEL =====" > "$REPORT_FILE"
echo "Tarih: $(date)" >> "$REPORT_FILE"
echo "" >> "$REPORT_FILE"
# --- Lynis ---
echo "=== LYNIS: Sistem Denetimi ===" >> "$REPORT_FILE"
lynis audit system --quiet 2>&1 | grep -E "Warning|Suggestion|Hardening index" >> "$REPORT_FILE"
echo "" >> "$REPORT_FILE"
# --- AIDE ---
echo "=== AIDE: Dosya Bütünlük Kontrolü ===" >> "$REPORT_FILE"
aide --check 2>&1 | grep -E "added:|removed:|changed:|AIDE found" >> "$REPORT_FILE"
echo "" >> "$REPORT_FILE"
# --- ClamAV ---
echo "=== CLAMAV: Malware Taraması ===" >> "$REPORT_FILE"
freshclam --quiet 2>/dev/null
clamscan -r --infected --quiet --log=/dev/null /var/www 2>&1 >> "$REPORT_FILE"
echo "" >> "$REPORT_FILE"
echo "=== Rapor Sonu ===" >> "$REPORT_FILE"
mail -s "Güvenlik Raporu: $HOSTNAME_LABEL ($(date +%F))" "$ADMIN_EMAIL" < "$REPORT_FILE"
rm -f "$REPORT_FILE"
SCRIPT
chmod +x /usr/local/bin/weekly-security-report.sh
Cron Zamanlaması
# /etc/cron.d/security-suite
# AIDE — her gece 03:00
0 3 * * * root /usr/bin/aide --check 2>&1 | grep -E "added:|removed:|changed:" | mail -s "AIDE: $(hostname)" [email protected]
# ClamAV virüs veritabanı güncelleme — her gün 02:00
0 2 * * * root /usr/bin/freshclam --quiet 2>/dev/null
# ClamAV tarama — her Pazar 04:00
0 4 * * 0 root /usr/bin/clamscan -r --infected --quiet /var/www 2>&1 | mail -s "ClamAV: $(hostname)" [email protected]
# Lynis — her Pazar 05:00
0 5 * * 0 root /usr/bin/lynis audit system --quiet 2>&1 | grep -E "Warning|Suggestion" | mail -s "Lynis: $(hostname)" [email protected]
Üçlü Haftalık Çalıştırma Şeması
| Araç | Zaman | Tetikleyici |
|---|---|---|
| freshclam güncelleme | Her gün 02:00 | Cron |
| AIDE --check | Her gece 03:00 | Cron |
| ClamAV tarama | Pazar 04:00 | Cron |
| Lynis audit | Pazar 05:00 | Cron |
| AIDE --update | Sistem güncellemesi sonrası | Manuel |
Sıkça Sorulan Sorular
Lynis raporu yorumlamak zor — nereden başlamalı?
Raporda önce "Warnings" bölümüne bak — bunlar acil müdahale gerektiren açıklar. Suggestion sayısı çok yüksek olabilir (50-80 öneri normal) ama hepsini aynı anda çözmek gerekmez. lynis show details TEST-ID ile her öneri için spesifik açıklama ve düzeltme adımı görürsün. Önce yüksek puan düşüren Authentication ve Network kategorilerindeki uyarıları çöz.
AIDE veritabanını ne sıklıkla güncellemeliyim?
Rutin zamanlama yok — güncelleme meşru değişiklik sonrası yapılır. Paket yükseltmesi, yeni uygulama kurulumu veya yapılandırma değişikliği sonrasında aide --update çalıştır ve yeni veritabanını aktif et. Gelişigüzel güncelleme saldırı izlerini siler; bu yüzden --update öncesi --check çıktısını oku ve "changed" satırlarının hepsini açıklayabildiğinden emin ol.
ClamAV sunucuyu yavaşlatıyor — nasıl optimize ederim?
ClamAV imza veritabanı büyük ve tarama RAM yoğun. Üç çözüm: (1) clamd daemon'u devre dışı bırak, sadece cron ile on-demand clamscan çalıştır; (2) tarama saatini iş dışı vakite al (gece 04:00 gibi); (3) yüksek öncelikli tarama alanını sadece web kök dizinine sınırla (/var/www), tüm sistemi tarama. Günlük tarama yerine haftalık tarama VDS kaynaklarını daha az tüketir.
ClamAV, AIDE ve Lynis'i ayrı ayrı mı yoksa birlikte mi çalıştırmalıyım?
Birbirinden bağımsız çalışırlar; çakışma yok. AIDE en sık çalışmalı (günlük) çünkü dosya değişikliklerini anlık yakalaması önemli. ClamAV ve Lynis haftalık yeterli. Üçünü aynı anda çalıştırma — RAM ve I/O baskısı oluşturur; aralarına en az 1 saat boşluk bırak (yukarıdaki cron şeması buna göre yazıldı).
ClamAV webshell bulamadı ama sitede şüpheli aktivite var — ne yapmalı?
ClamAV imza tabanlıdır; bilinmeyen (zero-day) veya obfuscated webshell'leri kaçırabilir. Bu durumda ek adımlar: find /var/www -name "*.php" -newer /var/www/html/index.php ile son eklenen PHP dosyalarını listele; grep -r "eval(base64_decode" /var/www ile gizlenmiş kod ara; AIDE raporu varsa "added" satırlarını incele — beklenmedik PHP dosyası görünebilir. Lynis malware grubunu ayrıca çalıştır: lynis audit --tests-from-group malware.
Üç araç kurumsal ortamda yeterli mi?
Tek sunucu veya küçük yapı için başlangıç güvenlik katmanını sağlarlar. Ama birden fazla sunucu yönetiyorsan merkezi log toplaması, korelasyon ve uyarı yönetimi için Wazuh, Graylog veya ELK gibi açık kaynak SIEM çözümlere geçmen gerekir. Lynis, AIDE ve ClamAV raporlarını bu sistemlere aktarabilirsin; ama kurumsal SOC işleyişi için üçlünün tek başına yeterli olmadığını baştan kabul et.
İlgili Büyükweb Hizmetleri
Sunucu güvenliğini ciddiye alanlar için:
- Imunify360 Korumalı cPanel Web Hosting
- Tam Yetki VDS Sunucu — AlmaLinux 9 / Ubuntu 22.04
- Fiziksel Dedicated Sunucu
- Tüm Paketler — Karşılaştırma
7/24 teknik destek: 0850 302 60 70 veya iletişim sayfamız.
Güvenlik & SSL İlgili Hizmetlerimiz
Bu yazıda anlatılan teknik konuyu profesyonel altyapıyla deneyimleyin
Etiketler:

