Ana içeriğe geç
Kategoriye Dön

Malware ve Rootkit Tarama: rkhunter ve ClamAV Rehberi

Linux sunucunuzu malware ve rootkit'lere karşı koruyun. rkhunter ve ClamAV kurulumu, tarama yapılandırması, sonuç yorumlama ve zamanlanmış tarama rehberi.

Okuma süresi: 14 dk Güvenlik
malwarerootkitrkhunterclamavgüvenlikvirüs taramalinuxsunucu güvenliği

İçindekiler

Malware ve Rootkit Tarama: rkhunter ve ClamAV Rehberi

Linux sunucular, Windows sistemlere kıyasla daha az hedef alınsa da malware ve rootkit saldırılarından tamamen muaf değildir. Özellikle internete açık sunucularda düzenli güvenlik taraması yapmak kritik önem taşır. Bu rehberde rkhunter ve ClamAV araçlarını kullanarak kapsamlı bir güvenlik tarama altyapısı kuracaksınız.

rkhunter Nedir?

rkhunter (Rootkit Hunter), Linux sistemlerde rootkit, backdoor ve yerel exploit'leri tespit etmek için tasarlanmış açık kaynaklı bir güvenlik aracıdır. Sistem dosyalarının hash değerlerini, izinlerini ve bilinen rootkit imzalarını kontrol eder.

rkhunter Kurulumu

hljs bash
# Ubuntu/Debian
sudo apt update
sudo apt install rkhunter -y

# CentOS/AlmaLinux/Rocky Linux
sudo dnf install rkhunter -y
# veya EPEL reposundan:
sudo dnf install epel-release -y
sudo dnf install rkhunter -y

rkhunter Veritabanını Güncelleme

hljs bash
# İmza veritabanını güncelle
sudo rkhunter --update

# Sistem dosyalarının başlangıç hash değerlerini kaydet
# Bu adımı temiz bir sistemde yapın!
sudo rkhunter --propupd

--propupd komutunu yalnızca sisteminizin temiz olduğundan emin olduğunuzda çalıştırın. Bu komut mevcut dosya hash'lerini referans olarak kaydeder.

rkhunter ile Tarama Yapma

hljs bash
# Tam sistem taraması
sudo rkhunter --check

# Etkileşimli olmayan mod (cron için)
sudo rkhunter --check --skip-keypress

# Yalnızca belirli testleri çalıştır
sudo rkhunter --check --rwo  # Yalnızca uyarıları göster

# Ayrıntılı çıktı
sudo rkhunter --check --verbose-logging

# Log dosyasını görüntüle
sudo cat /var/log/rkhunter.log

rkhunter Yapılandırması

hljs bash
sudo nano /etc/rkhunter.conf
hljs ini
# /etc/rkhunter.conf önemli ayarlar

# E-posta bildirimi
MAIL-ON-WARNING=admin@example.com
MAIL_CMD=mail -s "[rkhunter] Uyarı - $(hostname)"

# Günlük güncelleme
AUTO_X_DETECT=1
UPDATE_MIRRORS=1
MIRRORS_MODE=0

# Beyaz liste - bilinen iyi dosyalar
SCRIPTWHITELIST=/usr/bin/egrep
SCRIPTWHITELIST=/usr/bin/fgrep
SCRIPTWHITELIST=/usr/bin/which

# Gizli dizin kontrolü
ALLOW_HIDDEN_SYS_FILELIST=0

# SSH root girişi kontrolü
ALLOW_SSH_ROOT_USER=no
ALLOW_SSH_PROT_V1=0

rkhunter Sonuçlarını Yorumlama

rkhunter çıktısında üç durum görebilirsiniz:

  • OK (Yeşil): Dosya veya ayar güvenli
  • Warning (Sarı): Şüpheli durum, manuel inceleme gerekli
  • Not found (Beyaz): Araç veya dosya sistemde yok
hljs bash
# Yalnızca uyarıları filtrele
sudo grep -i warning /var/log/rkhunter.log

# Özet raporu görüntüle
sudo tail -50 /var/log/rkhunter.log

Bazı uyarılar yanlış pozitif olabilir. Örneğin, özel derleme araçları veya özelleştirilmiş sistem dosyaları uyarı tetikleyebilir. Her uyarıyı manuel olarak doğrulayın.

ClamAV Nedir?

ClamAV, açık kaynaklı bir antivirüs motorudur. Linux sunucularda dosya taraması, e-posta eki kontrolü ve web içeriği taraması için yaygın olarak kullanılır.

ClamAV Kurulumu

hljs bash
# Ubuntu/Debian
sudo apt update
sudo apt install clamav clamav-daemon -y

# CentOS/AlmaLinux
sudo dnf install clamav clamd clamav-update -y

Virüs Veritabanını Güncelleme

hljs bash
# ClamAV servisini durdur (güncelleme için)
sudo systemctl stop clamav-freshclam

# Veritabanını manuel güncelle
sudo freshclam

# Servisi yeniden başlat
sudo systemctl start clamav-freshclam
sudo systemctl enable clamav-freshclam

# Güncelleme durumunu kontrol et
sudo freshclam --verbose

ClamAV ile Tarama

hljs bash
# Tek dizin taraması
sudo clamscan -r /home

# Tüm sistem taraması (yavaş olabilir)
sudo clamscan -r / --exclude-dir="^/sys" --exclude-dir="^/proc" --exclude-dir="^/dev"

# Yalnızca enfekte dosyaları göster
sudo clamscan -r /var/www --infected

# Enfekte dosyaları kaldır (dikkatli kullanın!)
sudo clamscan -r /home --infected --remove

# Enfekte dosyaları karantinaya al
sudo clamscan -r /home --infected --move=/quarantine

# Tarama sonuçlarını dosyaya kaydet
sudo clamscan -r / --log=/var/log/clamav-scan.log --exclude-dir="^/sys" --exclude-dir="^/proc"

ClamAV Daemon (clamd) Kullanımı

clamd, arka planda çalışan ClamAV servisidir ve tekrarlayan taramalar için çok daha hızlıdır.

hljs bash
# clamd yapılandırması
sudo nano /etc/clamav/clamd.conf
# /etc/clamav/clamd.conf
LocalSocket /var/run/clamav/clamd.ctl
User clamav
ScanMail true
ScanArchive true
ArchiveBlockEncrypted false
MaxDirectoryRecursion 20
FollowDirectorySymlinks false
FollowFileSymlinks false
ReadTimeout 180
MaxThreads 12
MaxConnectionQueueLength 15
LogSyslog false
LogFile /var/log/clamav/clamav.log
LogFileMaxSize 2M
LogTime true
LogClean false
LogVerbose false
DatabaseDirectory /var/lib/clamav
hljs bash
# clamd servisini başlat
sudo systemctl start clamav-daemon
sudo systemctl enable clamav-daemon

# clamdscan ile hızlı tarama
sudo clamdscan -r /home

Zamanlanmış Tarama Kurulumu

Cron ile Otomatik Tarama

hljs bash
# Cron dosyası oluştur
sudo nano /etc/cron.d/security-scan
hljs bash
# /etc/cron.d/security-scan

# Her gece 02:00'de rkhunter taraması
0 2 * * * root /usr/bin/rkhunter --check --skip-keypress --report-warnings-only 2>&1 | mail -s "[rkhunter] $(hostname) Günlük Rapor" admin@example.com

# Her Pazar 03:00'de ClamAV tam tarama
0 3 * * 0 root /usr/bin/clamscan -r / --exclude-dir="^/sys" --exclude-dir="^/proc" --exclude-dir="^/dev" --infected --log=/var/log/clamav-weekly.log

# Her gün ClamAV veritabanı güncelleme
0 1 * * * root /usr/bin/freshclam --quiet

Tarama Scripti Oluşturma

hljs bash
sudo nano /usr/local/bin/security-scan.sh
hljs bash
#!/bin/bash
# Kapsamlı güvenlik tarama scripti

DATE=$(date +%Y%m%d_%H%M%S)
LOG_DIR="/var/log/security-scans"
REPORT="$LOG_DIR/scan_$DATE.txt"

mkdir -p $LOG_DIR

echo "=== Güvenlik Tarama Raporu: $DATE ==" > $REPORT
echo "Sunucu: $(hostname)" >> $REPORT
echo "" >> $REPORT

# rkhunter taraması
echo "--- rkhunter Taraması ---" >> $REPORT
rkhunter --check --skip-keypress --report-warnings-only >> $REPORT 2>&1

# ClamAV taraması
echo "" >> $REPORT
echo "--- ClamAV Taraması ---" >> $REPORT
clamscan -r /home /var/www /tmp --infected >> $REPORT 2>&1

# Sonuçları e-posta ile gönder
if grep -q "Warning\|FOUND" $REPORT; then
    mail -s "[UYARI] Güvenlik Tarama Raporu - $(hostname)" admin@example.com < $REPORT
fi

echo "Tarama tamamlandı: $REPORT"
hljs bash
sudo chmod +x /usr/local/bin/security-scan.sh

Olay Müdahalesi (Incident Response)

Eğer tarama sonucunda tehdit tespit edilirse:

1. Sistemi İzole Et

hljs bash
# Ağ bağlantılarını kontrol et
sudo ss -tlnp
sudo netstat -tlnp

# Şüpheli bağlantıları bul
sudo ss -anp | grep ESTABLISHED

# Gerekirse ağ erişimini kısıtla
sudo ufw default deny incoming
sudo ufw default deny outgoing
sudo ufw allow ssh  # SSH erişimini koru

2. Kanıt Topla

hljs bash
# Çalışan süreçleri kaydet
ps aux > /tmp/processes_$(date +%Y%m%d).txt

# Ağ bağlantılarını kaydet
ss -anp > /tmp/connections_$(date +%Y%m%d).txt

# Son değiştirilen dosyaları bul
find / -mtime -1 -type f 2>/dev/null | grep -v proc | grep -v sys

# Cron job'ları kontrol et
crontab -l
ls -la /etc/cron*

3. Temizlik ve Kurtarma

hljs bash
# Şüpheli dosyaları karantinaya al
mkdir -p /quarantine
mv /path/to/suspicious/file /quarantine/

# Sistem dosyalarını doğrula
sudo debsums -c  # Debian/Ubuntu
sudo rpm -Va     # CentOS/RHEL

# Rootkit temizleme (son çare: yeniden kurulum)
# Ciddi enfeksiyonlarda sunucuyu yeniden kurun

Ciddi bir rootkit enfeksiyonu tespit edildiğinde, en güvenli çözüm sunucuyu sıfırdan yeniden kurmaktır. Rootkit'ler sistem araçlarını değiştirebildiğinden, temizleme işlemi her zaman güvenilir olmayabilir.

Sonuç

Düzenli malware ve rootkit taraması, sunucu güvenliğinin temel bileşenlerinden biridir. rkhunter ve ClamAV'ı birlikte kullanarak kapsamlı bir koruma katmanı oluşturabilirsiniz. Zamanlanmış taramalar ve e-posta bildirimleri sayesinde güvenlik tehditlerini erken tespit edebilirsiniz.