Lëshimi i filtrit të paketave nftables 1.0.2

Është publikuar lëshimi i filtrit të paketave nftables 1.0.2, duke unifikuar ndërfaqet e filtrimit të paketave për IPv4, IPv6, ARP dhe urat e rrjetit (që synojnë zëvendësimin e iptables, ip6table, arptables dhe ebtables). Ndryshimet e kërkuara për funksionimin e lëshimit të nftables 1.0.2 përfshihen në kernel Linux 5.17-rc.

Paketa nftables përfshin komponentët e filtrit të paketave që funksionojnë në hapësirën e përdoruesit, ndërsa puna në nivel kernel ofrohet nga nënsistemi nf_tables, i cili ka qenë pjesë e kernelit Linux që nga lëshimi 3.13. Niveli i kernelit siguron vetëm një ndërfaqe gjenerike të pavarur nga protokolli që ofron funksione bazë për nxjerrjen e të dhënave nga paketat, kryerjen e operacioneve të të dhënave dhe kontrollin e rrjedhës.

Rregullat e filtrimit dhe mbajtësit specifikë të protokollit përpilohen në bytecode në hapësirën e përdoruesit, pas së cilës ky bajtkod ngarkohet në kernel duke përdorur ndërfaqen Netlink dhe ekzekutohet në kernel në një makinë virtuale speciale që të kujton BPF (Berkeley Packet Filters). Kjo qasje ju lejon të zvogëloni ndjeshëm madhësinë e kodit të filtrimit që funksionon në nivelin e kernelit dhe të zhvendosni të gjitha funksionet e rregullave të analizimit dhe logjikës për të punuar me protokollet në hapësirën e përdoruesit.

Risitë kryesore:

  • Është shtuar një modalitet i optimizimit të rregullave, i mundësuar duke përdorur opsionin e ri "-o" ("--optimize"), i cili mund të kombinohet me opsionin "--kontrollo" për të kontrolluar dhe optimizuar ndryshimet në skedarin e grupit të rregullave pa e ngarkuar atë. . Optimizimi ju lejon të kombinoni rregulla të ngjashme, për shembull, rregullat: meta iifname eth1 ip saddr 1.1.1.1 ip daddr 2.2.2.3 pranoni meta iifname eth1 ip saddr 1.1.1.2 ip daddr 2.2.2.5 pranoni ip daddr .1.1.1.1 . .2.2.2.2 prano ip saddr 2.2.2.2 ip daddr 3.3.3.3 rënie

    do të kombinohet në meta iifname. ip sadr. ip daddr { eth1 . 1.1.1.1. 2.2.2.3, eth1. 1.1.1.2. 2.2.2.5 } pranoni ip saddr. ip daddr vmap {1.1.1.1. 2.2.2.2: pranoj, 2.2.2.2. 3.3.3.3: hidhni }

    Shembull i përdorimit: # nft -c -o -f ruleset.test Bashkim: ruleset.nft:16:3-37: ip daddr 192.168.0.1 counter pranoj ruleset.nft:17:3-37: ip daddr 192.168.0.2 counter prano ruleset.nft:18:3-37: ip daddr 192.168.0.3 numer pranoje ne: ip daddr { 192.168.0.1, 192.168.0.2, 192.168.0.3 } pako numerike 0 bajt 0 prano

  • Listat e grupeve zbatojnë aftësinë për të specifikuar opsionet ip dhe tcp, si dhe copat sctp: vendos s5 { tipof ip option ra value elementet = { 1, 1024 } } set s7 { type of sctp chunk init num-inbound-streams element = { 1, 4 } } zinxhir c5 { opsioni ip ra vlera @s5 prano } zinxhir c7 { sctp chunk init num-inbound-streams @s7 prano }
  • Mbështetje e shtuar për opsionet TCP fastopen, md5sig dhe mptcp.
  • Mbështetje e shtuar për përdorimin e nëntipit mp-tcp në hartografi: opsioni tcp mptcp nëntipi 1
  • Kodi i përmirësuar i filtrimit nga ana e kernelit.
  • Flowtable tani ka mbështetje të plotë për formatin JSON.
  • Është siguruar aftësia për të përdorur veprimin "refuzo" në operacionet e përputhjes së kornizës Ethernet. ether saddr aa:bb:cc:dd:ee:ff ip daddr 192.168.0.1 refuzo

Burimi: opennet.ru

Shto një koment