nftables pakkefilter 0.9.3 utgivelse

publisert pakkefilterfrigjøring nftables 0.9.3, utvikles som en erstatning for iptables, ip6table, arptables og ebtables ved å forene pakkefiltreringsgrensesnitt for IPv4, IPv6, ARP og nettverksbroer. nftables-pakken inkluderer pakkefilterkomponenter som kjører i brukerrom, mens arbeidet på kjernenivå leveres av nf_tables-undersystemet, som har vært en del av Linux-kjernen siden utgivelse 3.13. Endringene som kreves for at nftables 0.9.3-utgivelsen skal fungere er inkludert i den kommende Linux 5.5-kjernegrenen.

Kjernenivået gir bare et generisk protokolluavhengig grensesnitt som gir grunnleggende funksjoner for å trekke ut data fra pakker, utføre dataoperasjoner og flytkontroll. Selve filtreringslogikken og protokollspesifikke behandlere kompileres til bytekode i brukerrommet, hvoretter denne bytekoden lastes inn i kjernen ved hjelp av Netlink-grensesnittet og kjøres i en spesiell virtuell maskin som minner om BPF (Berkeley Packet Filters). Denne tilnærmingen lar deg redusere størrelsen på filtreringskoden som kjører på kjernenivå betraktelig og flytte alle funksjonene til parsingsregler og logikk for arbeid med protokoller inn i brukerområdet.

Hovedinnovasjoner:

  • Støtte for å matche pakker etter tid. Du kan definere både klokkeslett og datoperioder der regelen skal utløses, og konfigurere utløsning på individuelle ukedager. La også til et nytt alternativ "-T" for å vise epoketid i sekunder.

    metatid \»2019-12-24 16:00\" — \»2020-01-02 7:00\"
    meta time \"17:00\" - \"19:00\"
    metadag \"fre\"

  • Støtte for å gjenopprette og lagre SELinux-merker (secmark).

    ct secmark sett meta secmark
    meta secmark sett ct secmark

  • Støtte for synproxy-kartlister, slik at du kan definere mer enn én regel per backend.

    table ip foo {
    synproxy https-synproxy {
    mss 1460
    wskala 7
    tidsstempel sekk-perm
    }

    synproxy annen-synproxy {
    mss 1460
    wskala 5
    }

    kjede pre {
    type filter krok prerouting prioritet rå; politikk akseptere;
    tcp dport 8888 tcp flagger syn notrack
    }

    kjedestang {
    type filter krok fremover prioritet filter; politikk akseptere;
    ct-tilstand ugyldig, usporet synproxynavn ip saddr map { 192.168.1.0/24 : “https-synproxy”, 192.168.2.0/24 : “other-synproxy” }
    }
    }

  • Muligheten til å dynamisk fjerne settelementer fra pakkebehandlingsregler.

    nft add rule ... slett @set5 {ip6 saddr. ip6 daddr}

  • Støtte for VLAN-kartlegging etter ID og protokoll definert i nettverksbrogrensesnittets metadata;

    meta ibrpvid 100
    meta ibrvproto vlan

  • Alternativ "-t" ("--terse") for å ekskludere elementer i settsett når regler vises. Å kjøre "nft -t list ruleset" vil gi ut:

    tabell ip x {
    sett y {
    skriv ipv4_addr
    }
    }

    Og med "nft list ruleset"

    tabell ip x {
    sett y {
    skriv ipv4_addr
    elementer = { 192.168.10.2, 192.168.20.1,
    192.168.4.4, 192.168.2.34 }
    }
    }

  • Evne til å spesifisere mer enn én enhet i netdev-kjeder (fungerer bare med kjerne 5.5) for å kombinere vanlige filtreringsregler.

    legg til tabell netdev x
    legg til kjede netdev xy { \
    type filter krok inngående enheter = { eth0, eth1 } prioritet 0;
    }

  • Evne til å legge til beskrivelser av datatyper.

    # nft beskriv ipv4_addr
    datatype ipv4_addr (IPv4-adresse) (basetype heltall), 32 biter

  • Evne til å bygge et CLI-grensesnitt med linenoise-biblioteket i stedet for libreadline.

    ./configure --with-cli=linenoise

Kilde: opennet.ru

Legg til en kommentar