Fail2Ban Yapılandırma: SSH Brute-Force Koruması Rehberi
Fail2Ban ile SSH brute-force saldırılarına karşı sunucunuzu koruyun. Kurulum, jail.local yapılandırması, Nginx/Apache jail'leri, IP beyaz listesi ve e-posta bildirimleri.
Linux sunucunuzu malware ve rootkit'lere karşı koruyun. rkhunter ve ClamAV kurulumu, tarama yapılandırması, sonuç yorumlama ve zamanlanmış tarama 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 (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.
# 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
# İ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.
# 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
sudo nano /etc/rkhunter.conf
# /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 çıktısında üç durum görebilirsiniz:
# 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, 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.
# Ubuntu/Debian
sudo apt update
sudo apt install clamav clamav-daemon -y
# CentOS/AlmaLinux
sudo dnf install clamav clamd clamav-update -y
# 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
# 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"
clamd, arka planda çalışan ClamAV servisidir ve tekrarlayan taramalar için çok daha hızlıdır.
# 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
# clamd servisini başlat
sudo systemctl start clamav-daemon
sudo systemctl enable clamav-daemon
# clamdscan ile hızlı tarama
sudo clamdscan -r /home
# Cron dosyası oluştur
sudo nano /etc/cron.d/security-scan
# /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
sudo nano /usr/local/bin/security-scan.sh
#!/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"
sudo chmod +x /usr/local/bin/security-scan.sh
Eğer tarama sonucunda tehdit tespit edilirse:
# 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
# Ç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*
# Şü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.
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.
Bazı uyarılar yanlış pozitif olabilir. Özellikle sistem güncellemelerinden sonra dosya hash'leri değişir. Güncelleme sonrası 'sudo rkhunter --propupd' komutunu çalıştırarak referans değerleri güncelleyin. Her uyarıyı manuel olarak doğrulayın.
Disk boyutuna ve dosya sayısına bağlı olarak birkaç saatten bir güne kadar sürebilir. Günlük taramalar için /home, /var/www ve /tmp gibi kritik dizinleri tarayın. Tam sistem taramasını haftalık olarak planlayın.
rkhunter, sistem dosyalarını ve yapılandırmalarını kontrol ederek rootkit ve backdoor tespit eder. ClamAV ise virüs imzası tabanlı bir antivirüs motorudur ve dosya içeriklerini tarar. İkisi birbirini tamamlar, birlikte kullanılması önerilir.
Evet, özellikle ClamAV tam sistem taraması CPU ve disk I/O kullanımını artırır. Bu nedenle taramaları gece saatlerinde veya düşük trafik dönemlerinde planlayın. 'nice' komutu ile önceliği düşürebilirsiniz: 'sudo nice -n 19 clamscan -r /'
Önce dosyayı karantinaya alın (silmeyin). Dosyanın ne olduğunu araştırın - yanlış pozitif olabilir. Gerçek bir tehdit ise sistemi izole edin, kanıt toplayın ve gerekirse sunucuyu yeniden kurun. Ciddi enfeksiyonlarda hosting sağlayıcınıza (REXE destek) bildirin.
Fail2Ban ile SSH brute-force saldırılarına karşı sunucunuzu koruyun. Kurulum, jail.local yapılandırması, Nginx/Apache jail'leri, IP beyaz listesi ve e-posta bildirimleri.
WireGuard VPN sunucusu kurun: anahtar üretimi, sunucu ve istemci yapılandırması, IP yönlendirme, firewall kuralları ve Windows/Linux/Android istemci kurulumu.
Zero Trust ağ güvenliği ilkeleri ve pratik uygulama: asla güvenme her zaman doğrula, mikro-segmentasyon, kimlik tabanlı erişim ve mevcut araçlarla uygulama rehberi.