nftables paket filtre sürümü 0.9.3

yayınlanan paket filtre sürümü NFTables 0.9.3IPv6, IPv4, ARP ve ağ köprüleri için paket filtreleme arayüzlerini birleştirerek iptables, ip6table, arptables ve ebtables'ın yerine geçecek şekilde geliştiriliyor. Nftables paketi, kullanıcı alanı paket filtre bileşenlerini içerirken, çekirdek düzeyindeki çalışma, 3.13 sürümünden bu yana Linux çekirdeğinin bir parçası olan nf_tables alt sistemi tarafından sağlanıyor. Nftables 0.9.3 sürümünün çalışması için gereken değişiklikler, gelecek Linux 5.5 çekirdek dalına dahil edilmiştir.

Çekirdek düzeyi yalnızca paketlerden veri çıkarmak, veri işlemlerini gerçekleştirmek ve akış kontrolü için temel işlevleri sağlayan genel protokolden bağımsız bir arayüz sağlar. Filtreleme mantığının kendisi ve protokole özgü işleyiciler, kullanıcı alanında bayt kodu halinde derlenir, ardından bu bayt kodu Netlink arayüzü kullanılarak çekirdeğe yüklenir ve BPF'yi (Berkeley Paket Filtreleri) anımsatan özel bir sanal makinede yürütülür. Bu yaklaşım, çekirdek düzeyinde çalışan filtreleme kodunun boyutunu önemli ölçüde azaltmanıza ve protokollerle çalışmaya yönelik tüm ayrıştırma kuralları ve mantık işlevlerini kullanıcı alanına taşımanıza olanak tanır.

Ana yenilikler:

  • Paketleri zamana göre eşleştirme desteği. Kuralın tetikleneceği saat ve tarih aralıklarını tanımlayabilir ve tetiklemeyi haftanın ayrı günlerinde yapılandırabilirsiniz. Ayrıca çağ zamanını saniye cinsinden görüntülemek için yeni bir "-T" seçeneği eklendi.

    meta zamanı \»2019-12-24 16:00\" — \»2020-01-02 7:00\"
    meta saati \"17:00\" - \"19:00\"
    meta gün \"Cum\"

  • SELinux işaretlerini (secmark) kurtarma ve kaydetme desteği.

    ct secmark meta secmark'ı ayarla
    meta secmark seti ct secmark

  • Arka uç başına birden fazla kural tanımlamanıza olanak tanıyan synproxy harita listeleri desteği.

    tablo ip foo {
    synproxy https-synproxy {
    msn 1460
    wölçek 7
    zaman damgası çuval perma
    }

    eş anlamlı diğer eş anlamlı {
    msn 1460
    wölçek 5
    }

    zincir ön {
    tip filtre kancası ön yönlendirme önceliği ham; politika kabul;
    tcp dport 8888 tcp bayrakları syn nottrack
    }

    zincir çubuğu {
    tip filtre kancası ileri öncelik filtresi; politika kabul;
    ct durumu geçersiz, izlenmeyen synproxy adı ip saddr haritası { 192.168.1.0/24: “https-synproxy”, 192.168.2.0/24: “other-synproxy” }
    }
    }

  • Ayarlanan öğeleri paket işleme kurallarından dinamik olarak kaldırma yeteneği.

    nft kural ekle ... delete @set5 { ip6 saddr . ip6 daddr}

  • Ağ köprüsü arayüzü meta verilerinde tanımlanan kimlik ve protokole göre VLAN eşleme desteği;

    meta ibrpvid 100
    meta ibrvproto vlan

  • Kuralları görüntülerken küme kümelerinin öğelerini hariç tutmak için "-t" ("--terse") seçeneği. "nft -t list ruleset" komutunu çalıştırmak şu çıktıyı verecektir:

    tablo ip x {
    y'yi ayarla {
    ipv4_addr yazın
    }
    }

    Ve “nft list ruleset” ile

    tablo ip x {
    y'yi ayarla {
    ipv4_addr yazın
    elemanlar = { 192.168.10.2, 192.168.20.1,
    192.168.4.4, 192.168.2.34 }
    }
    }

  • Ortak filtreleme kurallarını birleştirmek için netdev zincirlerinde birden fazla cihazı belirtme yeteneği (yalnızca çekirdek 5.5 ile çalışır).

    netdev x tablosunu ekle
    zincir ekle netdev xy { \
    filtre kancası giriş aygıtlarını yazın = { eth0, eth1 } öncelik 0;
    }

  • Veri türlerinin açıklamalarını ekleyebilme.

    # nft ipv4_addr'yi tanımlıyor
    veri türü ipv4_addr (IPv4 adresi) (temel tür tamsayı), 32 bit

  • Libreadline yerine linenoise kütüphanesiyle bir CLI arayüzü oluşturma yeteneği.

    ./configure --with-cli=linenoise

Kaynak: opennet.ru

Yorum ekle