Sistem/DevOps•7 dk okuma

FortiGate Güvenlik Duvarında Kullanılmayan Kuralların Temizlenmesi ve Politika Optimizasyonu

Yıllar içinde yüzlerce kural birikerek çöplüğe dönen FortiGate güvenlik duvarlarında Policy Hits analizi, kullanılmayan nesnelerin tespiti, kural sırası optimizasyonu ve CPU yükünü hafifletme.

AE

Ahmet Ertekin

22 January 2023

FortiGate Güvenlik Duvarında Kullanılmayan Kuralların Temizlenmesi ve Politika Optimizasyonu

FortiGate Güvenlik Duvarında Kullanılmayan Kuralların Temizlenmesi ve Politika Optimizasyonu

Bir kurumda göreve başladığınızda karşılaşacağınız en yaygın manzaralardan biri, geçmiş 8 yılda görev yapmış farklı yöneticilerin açtığı, üzerinde "test", "gecici_kural", "ahmet_yazilim" gibi açıklamalar olan 600 satırlık bir güvenlik duvarı kural tablosudur. Güvenlik duvarları paketleri yukarıdan aşağıya doğru (top-down) sırayla işler. Şişmiş ve optimize edilmemiş bir kural tablosu hem cihazın işlemcisini (CPU) yorar hem de kapatılması unutulmuş devasa güvenlik açıkları barındırır.

1. Sıfır İsabet (Zero-Hit) Analizi ile Ölü Kuralları Yakalama

FortiGate üzerinde bir kuralın gerçekten kullanılıp kullanılmadığını anlamanın en kesin yolu Policy Hits (Sayaç) takibidir:

1. FortiOS arayüzünden: Policy & Objects -> Firewall Policy ekranına gelinir.
2. Tablo başlıklarına sağ tıklanarak 'Hit Count', 'Last Used' ve 'Bytes' sütunları görünür yapılır.
3. Kural sayaçları sıfırlanır ve sistem 30 ila 60 gün boyunca izlenir.

Eğer bir kural 60 gün boyunca 0 Hit almışsa, o kural ölüdür. Ya ilgili sunucu kaldırılmıştır ya da kuralın kapsadığı servis artık çalışmıyordur.

2. Kural Temizliğinde Güvenli Metodoloji (Önce Disable, Sonra Sil)

Tespit edilen ölü kurallar asla doğrudan silinmemelidir!

Adım 1: İlgili kuralın açıklamasına (Comment) tarih ve gerekçe yazılır:
        "30.01.2024 - Sıfır isabet nedeniyle devre dışı bırakıldı - Ahmet E."
Adım 2: Kural 'Disable' (Pasif) duruma getirilir.
Adım 3: 30 gün boyunca hiçbir departmandan "X uygulamamız çalışmıyor" şikayeti gelmezse kural kalıcı olarak silinir.

3. Kural Sıralaması (Rule Order) Optimizasyonu

Güvenlik duvarı her gelen paketi 1. kuraldan itibaren kontrol eder. Eğer şirket trafiğinin %70'ini oluşturan internet çıkış kuralı tablonun 450. sırasındaysa, her paket için işlemci 449 gereksiz kuralı sorgulamak zorunda kalır!

Optimizasyon Kuralı:

  • En çok eşleşen (En yüksek paket/bayt sayısına sahip) meşru kurallar tablonun en üst sıralarına taşınmalıdır.
  • Dar ve spesifik kurallar üstte, genel (Any-to-Any) kurallar altta yer almalıdır.
# FortiGate CLI üzerinden kullanılmayan nesneleri (Unused Address Objects) listeleme
diagnose sys checkused firewall.address

Karşılaşılan Kritik Hatalar ve Çözüm İpuçları

  • Geniş Port Aralıkları (Any Port Tuzağı): Geçmişte bir yazılımcının "Uygulama çalışmadı" demesi üzerine açılan Service: ALL kurallarını derhal tespit edin. FortiView veya Log & Report ekranından o IP'nin gerçekte yalnızca hangi portları (örn: sadece TCP 1433 ve 443) kullandığını filtreleyin ve kuralı spesifik portlarla sınırlandırın.
  • Shadow Rules (Gölge Kurallar): Üst sırada yer alan genel bir kural, alt sırada yer alan daha kısıtlayıcı bir kuralı hükümsüz kılabilir (Shadowing). FortiOS'un yerleşik "Policy Lookup" aracı kullanılarak test paketleri simüle edilmeli ve hangi kurala takıldığı doğrulanmalıdır.

Mühendis Notu

Yılda en az bir kez güvenlik duvarı kural denetimi (Firewall Audit) yapın. Her kuralın bir sahibi, bir iş amacı ve bir son geçerlilik tarihi olmalıdır. Kimin açtığı bilinmeyen hiçbir kural üretim ortamında yaşayamaz.