nftables pakkefilter 1.0.2 utgivelse

nftables 1.0.2-pakkefilterutgivelsen har blitt publisert, og forener pakkefiltreringsgrensesnitt for IPv4, IPv6, ARP og nettverksbroer (rettet mot å erstatte iptables, ip6table, arptables og ebtables). Endringer som kreves for at nftables 1.0.2-utgivelsen skal fungere er inkludert i Linux-kjernen 5.17-rc.

nftables-pakken inkluderer pakkefilterkomponenter som kjører i brukerrom, mens kjernenivået leveres av nf_tables-undersystemet, som har vært en del av Linux-kjernen siden utgivelse 3.13. På kjernenivå er det bare et generisk protokolluavhengig grensesnitt som gir grunnleggende funksjoner for å trekke ut data fra pakker, utføre operasjoner på data og kontrollere flyten.

Selve filtreringsreglene og protokollspesifikke behandlere kompileres til brukerromsbytekode, hvoretter denne bytekoden lastes inn i kjernen ved hjelp av Netlink-grensesnittet og kjøres i kjernen i en spesiell virtuell maskin som ligner BPF (Berkeley Packet Filters). Denne tilnærmingen gjør det mulig å redusere størrelsen på filtreringskoden som kjører på kjernenivå betydelig og flytte alle funksjonene til parsingsregler og logikken for å jobbe med protokoller inn i brukerområdet.

Hovedinnovasjoner:

  • Regeloptimeringsmodus er lagt til, aktivert med et nytt "-o" ("--optimize") alternativ, som kan kombineres med alternativet "--check" for å sjekke og optimalisere endringer i regelsettfilen uten å laste den inn. Optimalisering lar deg kombinere lignende regler, for eksempel reglene: meta iifname eth1 ip saddr 1.1.1.1 ip daddr 2.2.2.3 akseptere meta iifname eth1 ip saddr 1.1.1.2 ip daddr 2.2.2.5 akseptere ip saddr 1.1.1.1. .2.2.2.2 godta ip saddr 2.2.2.2 ip daddr 3.3.3.3 drop

    vil bli slått sammen til meta iifname . ip saddr. ip daddr { eth1 . 1.1.1.1. 2.2.2.3, eth1. 1.1.1.2. 2.2.2.5 } godta ip saddr . ip daddr vmap { 1.1.1.1 . 2.2.2.2 : godta, 2.2.2.2 . 3.3.3.3 : slipp

    Brukseksempel: # nft -c -o -f ruleset.test Sammenslåing: ruleset.nft:16:3-37: ip daddr 192.168.0.1 teller akseptere ruleset.nft:17:3-37: ip daddr 192.168.0.2 counter accept ruleset.nft:18:3-37: ip daddr 192.168.0.3 teller godta inn i: ip daddr { 192.168.0.1, 192.168.0.2, 192.168.0.3 } tellerpakker 0 byte 0 akseptere

  • Set-lister implementerer muligheten til å spesifisere ip- og tcp-alternativer, så vel som sctp-biter: set s5 { typeof ip option ra value elements = { 1, 1024 } } set s7 { typeof sctp-chunk init num-inbound-streams-elementer = { 1, 4 } } kjede c5 { ip alternativ ra verdi @s5 aksepter } kjede c7 { sctp chunk init num-inbound-streams @s7 accept }
  • Lagt til støtte for fastopen, md5sig og mptcp TCP-alternativer.
  • Lagt til støtte for bruk av mp-tcp-undertype i tilordninger: tcp-alternativ mptcp-undertype 1
  • Forbedret filtreringskode som kjører på kjernesiden.
  • Flowtable har full støtte for JSON-format.
  • Gir muligheten til å bruke "avvis"-handlingen i Ethernet-rammetilpasningsoperasjoner. ether saddr aa:bb:cc:dd:ee:ff ip daddr 192.168.0.1 avvisning

Kilde: opennet.ru

Legg til en kommentar