Konuyu Açan #1
ipset ile Adres Kümesi Yönetimi

Giriş
Bir sunucu güvenliğini sağlamanın temel yollarından biri, trafiği etkili biçimde sınırlamak ve yönetmektir. ipset, iptables/nftables ile birlikte çalışarak binlerce IP adresini verimli bir şekilde temsil etmenize olanak verir. Bu araç, özellikle saldırı önleme, binge geçiriş kontrolleri ve coğrafi kısıtlamalar gibi senaryolarda büyük performans avantajı sağlar. Aşağıda, temel kavramları ve pratik adımları sade ve uygulanabilir bir dille ele alıyorum.


[LIST]
  • Adres Kümesi nedir ve neden kullanılır
    Bir adres kümesi, birden çok IP adresini tek bir kimlik olarak ele almanıza olanak tanır. Örneğin belirli bir yayıcıya (range) sahip IPv4 adreslerini veya bir güvenilir sağlayıcının çok sayıda müşterisini tek bir kümede toplarsınız. ipset ile bu kümelerin kaydı, güncellenmesi ve iptables/nftables ile entegre kullanımı çok daha verimli hale gelir. Büyük kümesi olan kurallar, tek bir karşılaştırma üzerinden uygulanabildiği için CPU yükü önemli ölçüde düşer.

  • Temel kavramsal yapı
    ipset dışa açık bir koleksiyon tipine sahiptir: hash, bitmap, resemble ve anat etc. En sık kullanılanlar:
    • hash: adresleri anahtar olarak saklar ve hızlı eşleşme sağlar.
    • nethash: CIDR tabanlı adresler için yaygın kullanılır.
    • bitmap: çok sayıda alt ağ için sabit boyutlu indeksler kullanır; çok büyük listelerde bellek ağırlığını düşürür.


  • Temel adımlar
    1) Küme oluşturma
    KOD
    1ipset create[space] BOS_KUME[space] hash:ip,port

    Bu örnek, IP adresleriyle ilişkili bir küme yaratır. Gerçek dünyada netmask ile CIDR kullanımı için nethash veyabitmap tipleri tercih edilir.

    2) Küme doldurma
    KOD
    123ipset add BOS_KUME 192.0.2.1
    ipset add BOS_KUME 198.51.100.0/24
    ipset add BOS_KUME 203.0.113.45

    CIDR aralığı eklemek, çok sayıda tekil adresi yönetmekten daha verimlidir.

    3) Küme kontrolü
    KOD
    12ipset test BOS_KUME 192.0.2.1
    ipset test BOS_KUME 192.0.2.100


    4) Kural entegrasyonu
    iptables ile entegrasyon örneği:
    KOD
    12iptables -A INPUT -m set --match-set BOS_KUME src -j ACCEPT
    iptables -A INPUT -m set --match-set BOS_KUME src -j DROP
    

    ntables (yeni sürümlerde nft) tarafında:
    KOD
    123nft add table ip filter
    nft add set ip filter BOS_KUME { type ipv4_addr; }  # küme olarak kullanılır
    nft add rule ip filter input ip saddr @BOS_KUME accept
    


  • İş akışı ve bakım
    Kümeler dinamik olarak güncellenebilir. Örneğin bir tehdit kaynağı belirlendiğinde tek bir küme güncellenir ve ilgili kurallar otomatik olarak etkili olur. Versiyon kontrolüyle değişiklik geçmişinizi tutmak, loglar ve audit için önemlidir. Ayrıca bellek kullanımı için küme tipinin uygun seçildiğinden emin olun: çok sayıda IP için bitmap veya nethash tercih edilir.

  • Güvenlik ve performans ipuçları
    • CIDR bloklarını mümkün olduğunca kullanın; tek tek IP yerine küme performansı önemli ölçüde artar.
    • Kümeyi sadece gerekli olan akışlar için kullanın; gereksiz trafiği engellemek adına mantıksal ayrımlar yapın.
    • Güncellemeleri dağıtık sistemlerde atomik şekilde uygulayın; basit bir flush işlemiyle tüm kuralları resetlemekten kaçının.
    • Loglar üzerinden istatistik çıkarın: hangi IP blokları en çok deneme yapıyor, hangi kümeyle en çok eşleşme var gibi metrikler, güvenlik politikalarını iyileştirmede yol gösterir.


    Sonuç
    ipset ile adres kümesi yönetimi, büyük ve değişken adres listelerini etkin şekilde kontrol etmeyi sağlar. Doğru küme tipi ve entegre kurallarla, güvenlik duvarı performansını sürdürülebilir biçimde yükseltebilirsiniz. Bu yaklaşım hakkında hangi senaryolarda hangi küme tipini kullandığınızı ve pratik darboğazlarınızı paylaşmak ister misiniz?
  • Yanıt vermek için giriş yapmış olmalısınız.

    Bu konuyu görüntüleyen kullanıcılar (Toplam: 1, Üyeler: 1, Misafirler: 0)
    Toplam: 1 (üyeler: 1, misafirler: 0)
    0 alıntı seçildi