nftables pakettfiltri 1.0.2 väljalase

Avaldatud on paketifiltri nftables 1.0.2 väljalase, mis ühendab IPv4, IPv6, ARP ja võrgusildade pakettfiltri liidesed (eesmärgiks iptables, ip6table, arptables ja ebtables asendamine). Nftables 1.0.2 väljalaske toimimiseks vajalikud muudatused sisalduvad Linuxi kernelis 5.17-rc.

Pakett nftables sisaldab pakettfiltri komponente, mis töötavad kasutajaruumis, samas kui kerneli tasemel töö tagab alamsüsteem nf_tables, mis on Linuxi kerneli osa olnud alates versioonist 3.13. Kerneli tase pakub ainult üldist protokollist sõltumatut liidest, mis pakub põhifunktsioone pakettidest andmete eraldamiseks, andmetoimingute tegemiseks ja voo juhtimiseks.

Filtreerimisreeglid ja protokollispetsiifilised töötlejad kompileeritakse kasutajaruumis baitkoodiks, misjärel laaditakse see baitkood Netlink liidese abil kernelisse ja käivitatakse kernelis spetsiaalses BPF-i meenutavas virtuaalmasinas (Berkeley Packet Filters). Selline lähenemine võimaldab oluliselt vähendada kerneli tasemel töötava filtreerimiskoodi suurust ning teisaldada kõik sõelumisreeglite ja protokollidega töötamise loogika funktsioonid kasutajaruumi.

Peamised uuendused:

  • Lisatud on reeglite optimeerimise režiim, mis on lubatud uue valiku "-o" ("--optimize") abil, mida saab kombineerida valikuga "--check", et kontrollida ja optimeerida reeglistiku faili muudatusi ilma seda tegelikult laadimata . Optimeerimine võimaldab kombineerida sarnaseid reegleid, näiteks reegleid: meta iifname eth1 ip saddr 1.1.1.1 ip daddr 2.2.2.3 aktsepteeri meta iifname eth1 ip saddr 1.1.1.2 ip daddr 2.2.2.5 aktsepteeri ip saddr 1.1.1.1d2.2.2.2 ip saddr .2.2.2.2d3.3.3.3. .XNUMX aktsepteeri ip saddr XNUMX ip daddr XNUMX drop

    ühendatakse meta iifname . ip saddr. ip isa { eth1 . 1.1.1.1. 2.2.2.3, eth1 . 1.1.1.2. 2.2.2.5 } aktsepteeri ip saddr . ip daddr vmap { 1.1.1.1 . 2.2.2.2 : aktsepteerima, 2.2.2.2 . 3.3.3.3 : langus }

    Kasutusnäide: # nft -c -o -f ruleset.test Ühendamine: ruleset.nft:16:3-37: ip daddr 192.168.0.1 counter aktsepteeri reeglid.nft:17:3-37: ip daddr 192.168.0.2 counter aktsepteeri ruleset.nft:18:3-37: ip daddr 192.168.0.3 loendur aktsepteerima: ip daddr { 192.168.0.1, 192.168.0.2, 192.168.0.3 } loenduri paketid 0 baiti 0 aktsepteeri

  • Komplektide loendid rakendavad võimalust määrata IP- ja tcp-suvandid, aga ka sctp-tükid: set s5 { typeof ip option ra value elements = { 1, 1024 } } set s7 { sctp chunk typeof sctp chunk init num-inbound-streams elements = { 1, 4 } } ahel c5 { ip variant ra väärtus @s5 aktsepteeri } kett c7 { sctp chunk init num-inbound-streams @s7 aktsepteeri }
  • Lisatud on tugi TCP-suvanditele fastopen, md5sig ja mptcp.
  • Lisatud tugi mp-tcp alamtüübi kasutamiseks vastendustes: tcp valik mptcp alamtüüp 1
  • Täiustatud kernelipoolne filtreerimiskood.
  • Flowtable toetab nüüd JSON-vormingut.
  • Etherneti kaadri sobitamise toimingutes on võimalik kasutada tagasilükkamise toimingut. eeter saddr aa:bb:cc:dd:ee:ff ip daddr 192.168.0.1 keeldu

Allikas: opennet.ru

Lisa kommentaar