hardening - sistem sertleşmesi

 

🔐 1. NEDİR: Sistem Sertleşmesi (Hardening)

Sistem sertleşmesi (system hardening), bir sistemin saldırılara karşı daha dayanıklı hale getirilmesi amacıyla yapılan yapılandırma, sınırlandırma ve denetim adımlarının bütünüdür.
Hedef: Saldırganın istismar edebileceği zayıflıkları minimuma indirmektir.


🎯 2. TEMEL HEDEF: Saldırı Yüzeyini Azaltmak

Güvenlik KatmanıÖrnek ZafiyetSertleşme Müdahalesi
İşletim SistemiAçık portlarKullanılmayan portları kapat
ServislerEski/boşta çalışan servislerGereksiz servisleri durdur
Kullanıcı ErişimiRoot ile uzaktan girişRoot girişi yasakla, sudo kullan
UygulamalarVarsayılan ayarlarConfig dosyalarını düzenle
Ağ GüvenliğiGeniş açık firewall kurallarıYalnızca gerekli portları aç

🧰 3. SERTLEŞTİRME AŞAMALARI (Genel)

🔸 3.1. İşletim Sistemi Sertleşmesi

Windows:

  • Güncellemeler: Windows Update açık olmalı, düzenli yama uygulanmalı.

  • PowerShell üzerinden script kontrolü yapılmalı: Get-WindowsFeature, Get-EventLog

  • Defender ve Firewall aktif olmalı

  • Local Security Policy (secpol.msc) ayarları gözden geçirilmeli

  • Sistem restore point oluşturulmalı

Linux:

  • SSH üzerinden root erişimi engellenmeli:
    /etc/ssh/sshd_config içinde:
    PermitRootLogin no

  • SSH portu değiştirilip sadece whitelist’ten bağlantı kabul edilmeli.

  • Gereksiz servisler kontrol edilmeli:
    systemctl list-units --type=service

  • Loglama sistemi kurulmalı (rsyslog, auditd)

  • SELinux/AppArmor aktif olmalı.


🔸 3.2. Ağ Sertleşmesi

  • Kullanılmayan portlar kapatılmalı:
    Linux: ufw, iptables
    Windows: Windows Firewall with Advanced Security

  • Gelen/giden trafiğe filtre uygulanmalı.

  • Port taramasına karşı IDS/IPS (Snort, Suricata) kurulmalı.

  • MAC adres filtreleme uygulanmalı.

  • ICMP (ping) cevapları kapatılmalı (gizlilik için).


🔸 3.3. Servis & Uygulama Sertleşmesi

  • Apache/Nginx:

    • ServerTokens Prod → Sürüm bilgisi gösterilmez

    • DirectoryIndex kapatılır

    • X-Frame-Options, X-Content-Type-Options gibi başlıklar eklenir

  • Veritabanı:

    • Varsayılan kullanıcılar silinmeli (örneğin: root, test)

    • bind-address sadece localhost olmalı

    • SQL injection’a karşı parametreli sorgular kullanılmalı


🔸 3.4. Kullanıcı Hesap Sertleşmesi

  • Parola politikası uygulanmalı:

    • En az 12 karakter

    • Karmaşık yapı (harf, sayı, sembol)

  • 2FA (Two-Factor Authentication) etkinleştirilmeli.

  • Kullanıcılar gereksiz yetkilere sahip olmamalı (minimum yetki prensibi).

  • sudo kullanımı loglanmalı.

  • last, who, w komutları ile giriş geçmişi kontrol edilmeli.


🔸 3.5. Dosya Sistemi ve Log Sertleşmesi

  • /etc/fstab içinde nosuid, nodev, noexec seçenekleri uygulanmalı.

  • Loglar ayrı bir diskte tutulmalı ve yalnızca root yazma iznine sahip olmalı.

  • logrotate ile log arşivleme yapılmalı.

  • Dosya/dizin izinleri:

    • chmod ve chown ile kontrol edilmeli

    • Yalnızca yetkili kullanıcılar erişebilmeli


🔸 3.6. BIOS ve Donanım Sertleşmesi

  • BIOS’a parola konmalı.

  • USB portları BIOS üzerinden devre dışı bırakılabilir (veri sızıntısı önlemi).

  • Secure Boot aktif edilmeli.


🧪 4. OTOMASYON & ARAÇLAR

AmaçAraçlar
Zafiyet taramaLynis, OpenVAS, Nessus
Log izlemeSyslog, Logwatch, ELK Stack
Sertleşme testiLynis, osquery
Dosya izlemeAIDE, Tripwire

✅ 5. CHECKLIST (Kontrol Listesi)

İşlemYapıldı mı?
SSH root girişi kapalı mı?
Kullanılmayan servisler kapalı mı?
Sistem güncel mi?
Firewall yapılandırıldı mı?
Loglar güvenli ve yedekleniyor mu?
Parola politikası uygulandı mı?