Sunucu Güvenlik Sıkılaştırma
Linux sunucusu için kapsamlı güvenlik sıkılaştırma kontrolü yapar ve uyarılar verir.
Yayınlanma: 30.04.2024
Detaylı Bilgi
Bu script, Linux sunucusu için kapsamlı bir güvenlik denetimi yapar ve güvenlik sorunlarını tespit eder. Sunucunuzun güvenlik durumunu hızlıca değerlendirmenize yardımcı olur.
Script Ne İşe Yarar?
Bu script, güvenlik denetimi yapar:
- SSH root girişini kontrol eder
- SSH şifre kimlik doğrulamasını kontrol eder
- Firewall durumunu kontrol eder
- Fail2ban durumunu kontrol eder
- Otomatik güncellemeleri kontrol eder
- Açık portları listeler
- Güvenlik sorunlarını raporlar
Neden Kullanmalısınız?
Güvenlik denetimi, sunucu güvenliği için kritiktir:
- Hızlı Değerlendirme: Sunucu güvenlik durumunu hızlıca görün
- Sorun Tespiti: Güvenlik açıklarını tespit edin
- Düzenli Kontrol: Düzenli güvenlik denetimi yapın
Nasıl Kullanılır?
Adım Adım Kullanım Kılavuzu
1. Scripti Çalıştırın
sudo chmod +x security_audit.sh
sudo ./security_audit.sh
2. Sonuçları İnceleyin
Script, güvenlik durumunu raporlar ve sorunları listeler.
3. Sorunları Düzeltin
Raporlanan sorunları düzeltmek için ilgili scriptleri kullanın.
Gereksinimler
Gereksinimler
- Root Yetkisi: Bazı kontroller için gerekli
- netstat: Port kontrolü için
Kullanım Senaryoları
Kullanım Senaryoları
1. Yeni Sunucu Denetimi
Yeni bir sunucu kurduğunuzda güvenlik durumunu kontrol edin.
2. Düzenli Güvenlik Kontrolü
Düzenli olarak sunucu güvenliğini kontrol edin.
Örnekler
Kullanım Örnekleri
Örnek 1: Temel Kullanım
sudo ./security_audit.sh Kod
#!/bin/bash
# Server Security Hardening Checklist
echo "======================================"
echo " SERVER SECURITY AUDIT"
echo "======================================"
echo ""
ISSUES=0
echo "[1] Checking root login..."
if grep -q "^PermitRootLogin yes" /etc/ssh/sshd_config 2>/dev/null; then
echo "⚠️ WARNING: Root login is enabled"
ISSUES=$((ISSUES+1))
else
echo "✓ Root login is disabled"
fi
echo "[2] Checking password authentication..."
if grep -q "^PasswordAuthentication yes" /etc/ssh/sshd_config 2>/dev/null; then
echo "⚠️ WARNING: Password authentication is enabled"
ISSUES=$((ISSUES+1))
else
echo "✓ Password authentication is disabled"
fi
echo "[3] Checking firewall..."
if command -v ufw &> /dev/null; then
if ufw status | grep -q "Status: active"; then
echo "✓ UFW firewall is active"
else
echo "⚠️ WARNING: UFW firewall is inactive"
ISSUES=$((ISSUES+1))
fi
else
echo "⚠️ WARNING: UFW is not installed"
ISSUES=$((ISSUES+1))
fi
echo "[4] Checking Fail2ban..."
if systemctl is-active --quiet fail2ban; then
echo "✓ Fail2ban is active"
else
echo "⚠️ WARNING: Fail2ban is not active"
ISSUES=$((ISSUES+1))
fi
echo "[5] Checking automatic updates..."
if [ -f /etc/apt/apt.conf.d/50unattended-upgrades ]; then
echo "✓ Automatic updates configured"
else
echo "⚠️ WARNING: Automatic updates not configured"
ISSUES=$((ISSUES+1))
fi
echo "[6] Checking open ports..."
OPEN_PORTS=$(netstat -tuln | grep LISTEN | wc -l)
echo "Open ports: $OPEN_PORTS"
echo ""
echo "======================================"
echo " AUDIT SUMMARY"
echo "======================================"
echo "Issues found: $ISSUES"
if [ $ISSUES -eq 0 ]; then
echo "✓ Server security looks good!"
else
echo "⚠️ Please fix the issues above"
fi
Kullanım
sudo chmod +x security_audit.sh
sudo ./security_audit.sh
Sorun Giderme
Sorun Giderme
Problem: "netstat: command not found"
Çözüm: net-tools kurun:
sudo apt-get install net-tools