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

Etiketler

security hardening audit güvenlik kontrolü