nftables pakkie filter 0.9.3 vrystelling

gepubliseer pakkie filter vrystelling nftables 0.9.3, ontwikkel as 'n plaasvervanger vir iptables, ip6table, arptables en ebtables deur pakketfiltrering-koppelvlakke vir IPv4, IPv6, ARP en netwerkbrûe te verenig. Die nftables-pakket bevat pakkiefilterkomponente wat in gebruikersruimte loop, terwyl die kernvlakwerk verskaf word deur die nf_tables-substelsel, wat sedert vrystelling 3.13 deel van die Linux-kern is. Die veranderinge wat nodig is vir die nftables 0.9.3-vrystelling om te werk, is ingesluit in die komende Linux 5.5 kerntak.

Die kernvlak bied slegs 'n generiese protokol-onafhanklike koppelvlak wat basiese funksies verskaf vir die onttrekking van data uit pakkies, die uitvoering van data-bewerkings en vloeibeheer. Die filterlogika self en protokol-spesifieke hanteerders word in greepkode in gebruikersruimte saamgestel, waarna hierdie greepkode met behulp van die Netlink-koppelvlak in die kern gelaai word en in 'n spesiale virtuele masjien uitgevoer word wat aan BPF (Berkeley Packet Filters) herinner. Hierdie benadering laat jou toe om die grootte van die filterkode wat op kernvlak loop, aansienlik te verminder en al die funksies van ontledingsreëls en logika vir die werk met protokolle na gebruikersruimte te skuif.

Belangrikste innovasies:

  • Ondersteuning vir bypassende pakkies volgens tyd. Jy kan beide tyd- en datumreekse definieer waarin die reël geaktiveer sal word, en aktiveer op individuele dae van die week opstel. Het ook 'n nuwe opsie "-T" bygevoeg om epogale tyd in sekondes te vertoon.

    metatyd \»2019-12-24 16:00\" — \»2020-01-02 7:00\"
    meta-uur \"17:00\" - \"19:00\"
    metadag \"Vry\"

  • Ondersteuning vir die herstel en stoor van SELinux-punte (sekmark).

    ct secmark stel meta secmark
    meta secmark stel ct secmark

  • Ondersteuning vir sinproxy-kaartlyste, sodat jy meer as een reël per backend kan definieer.

    tabel ip foo {
    sinproxy https-synproxy {
    mej 1460
    wskaal 7
    tydstempel sak-perm
    }

    sinproxy ander-sinproxy {
    mej 1460
    wskaal 5
    }

    ketting pre {
    tipe filter haak prerouting prioriteit rou; beleid aanvaar;
    tcp dport 8888 tcp vlae syn notrack
    }

    kettingstaaf {
    tipe filter haak vorentoe prioriteit filter; beleid aanvaar;
    ct-staat ongeldig, ongespoorde sinproxynaam ip saddr-kaart { 192.168.1.0/24 : “https-synproxy”, 192.168.2.0/24 : “ander-sinproxy” }
    }
    }

  • Die vermoë om vasgestelde elemente dinamies uit pakkieverwerkingsreëls te verwyder.

    nft voeg reël ... verwyder @set5 {ip6 saddr. ip6 daddr}

  • Ondersteuning vir VLAN-kartering deur ID en protokol gedefinieer in die netwerkbrugkoppelvlak-metadata;

    meta ibrpvid 100
    meta ibrvproto vlan

  • Opsie "-t" ("--terse") om elemente van stelstelle uit te sluit wanneer reëls vertoon word. As u "nft -t list reëlstel" uitvoer, sal dit uitstuur:

    tabel ip x {
    stel y {
    tik ipv4_addr
    }
    }

    En met "nft lys reëlstel"

    tabel ip x {
    stel y {
    tik ipv4_addr
    elemente = { 192.168.10.2, 192.168.20.1,
    192.168.4.4, 192.168.2.34 }
    }
    }

  • Vermoë om meer as een toestel in netdev-kettings te spesifiseer (werk slegs met kern 5.5) om algemene filterreëls te kombineer.

    voeg tabel netdev x by
    voeg ketting netdev xy { \
    tipe filter haak intrede toestelle = { eth0, eth1 } prioriteit 0;
    }

  • Vermoë om beskrywings van datatipes by te voeg.

    #nft beskryf ipv4_addr
    datatipe ipv4_addr (IPv4-adres) (basistipe heelgetal), 32 bisse

  • Vermoë om 'n CLI-koppelvlak te bou met die linenoise-biblioteek in plaas van libreadline.

    ./configure --with-cli=linenoise

Bron: opennet.ru

Voeg 'n opmerking