nftables pakiti chujio 1.0.6 kutolewa

Kutolewa kwa vichujio vya pakiti 1.0.6 kumechapishwa, kuunganisha violesura vya vichujio vya pakiti kwa IPv4, IPv6, ARP na madaraja ya mtandao (inayolenga kuchukua nafasi ya iptables, ip6table, arptables na ebtables). Kifurushi cha nftables ni pamoja na vipengee vya kichujio cha pakiti ambacho hutumika katika nafasi ya mtumiaji, wakati kazi ya kiwango cha kernel inatolewa na mfumo mdogo wa nf_tables, ambao umekuwa sehemu ya kernel ya Linux tangu kutolewa kwa 3.13. Kiwango cha kernel hutoa kiolesura cha kawaida kinachojitegemea cha itifaki ambacho hutoa kazi za kimsingi za kutoa data kutoka kwa pakiti, kutekeleza shughuli za data na udhibiti wa mtiririko.

Sheria za kuchuja na vidhibiti mahususi vya itifaki hukusanywa kuwa bytecode katika nafasi ya mtumiaji, baada ya hapo bytecode hii hupakiwa kwenye kerneli kwa kutumia kiolesura cha Netlink na kutekelezwa kwenye kernel katika mashine maalum ya pepe inayowakumbusha BPF (Berkeley Packet Filters). Njia hii hukuruhusu kupunguza kwa kiasi kikubwa saizi ya msimbo wa kuchuja unaoendesha kwenye kiwango cha kernel na kusonga kazi zote za kanuni na mantiki ya kufanya kazi na itifaki kwenye nafasi ya mtumiaji.

Mabadiliko kuu:

  • Kiboresha sheria, kinachoitwa wakati chaguo la "-o/β€”optimize" limebainishwa, kina ufungashaji otomatiki wa sheria kwa kuzichanganya na kuzibadilisha kuwa ramani na orodha zilizowekwa. Kwa mfano, sheria # cat ruleet.nft jedwali ip x { chain y { aina chujio pembejeo pembejeo kipaumbele chujio; kushuka kwa sera; meta iifname eth1 ip saddr 1.1.1.1 ip daddr 2.2.2.3 kubali meta iifname eth1 ip saddr 1.1.1.2 ip daddr 2.2.2.4 kubali meta iifname eth1 ip saddr 1.1.1.2if.2.2.3.0 ip kubali ip 24if1 ip daddr 1.1.1.2. 2.2.4.0 ip saddr 2.2.4.10 .2 ip daddr 1.1.1.3-2.2.2.5 kubali meta iifname eth4 ip saddr 17 ip daddr 74 kubali } } baada ya kutekeleza "nft -o -c -f ruleet.nft" itabadilishwa: kanuni nft:1:1.1.1.1-2.2.2.3: meta iifname eth5 ip saddr 17 ip daddr 74 kubali kanuni.nft:1:1.1.1.2-2.2.2.4: meta iifname eth6 ip saddr 17 ip daddr 77ft kubali sheria. : 1:1.1.1.2-2.2.3.0: meta iifname eth24 ip saddr 7 ip daddr 17/83 kubali kanuni.nft:1:1.1.1.2-2.2.4.0: meta iifname eth2.2.4.10 ip saddr 8 ip daddr.17-74. kubali kanuni.nft:2:1.1.1.3-2.2.2.5: meta iifname eth1 ip saddr 1.1.1.1 ip daddr 2.2.2.3 kubali kwenye: iifname . ip saddr. ip baba { eth1 . 1.1.1.2. 2.2.2.4, eth1 . 1.1.1.2. 2.2.3.0, eth24 . 1. 1.1.1.2/2.2.4.0, eth2.2.4.10 . 2. 1.1.1.3-2.2.2.5, ethXNUMX. XNUMX. XNUMX } kubali
  • Kiboreshaji kinaweza pia kubadilisha sheria ambazo tayari hutumia orodha zilizowekwa rahisi kuwa fomu iliyoshikana zaidi, kwa mfano sheria: # cat ruleset.nft meza kichujio cha ip { ingizo la mnyororo { kichujio cha kichujio cha pembejeo cha kipaumbele cha pembejeo; kushuka kwa sera; iifname "lo" kubali hali ya ct imeanzishwa, inayohusiana kubali maoni "Katika trafiki tunayotoka, tunaamini" iifname "enp0s31f6" ip saddr { 209.115.181.102, 216.197.228.230 } ip daddr 10.0.0.149 123p32768p65535p0p31p6p64.59.144.17 udport 64.59.150.133 udport 10.0.0.149 udport 53 udport 32768 udport 65535 kukubali iifname "enp6s22f149" ip saddr { 0, 31 } ip daddr 6 udp sport 209.115.181.102 udp dport 216.197.228.230-10.0.0.149} -etcft sheria -ft -etcft -etcft itakubali. d kama ifuatavyo : ruleet.nft:123:32768-65535: iifname "enp7s22f143" ip saddr { 0, 31 } ip daddr 6 udp64.59.144.17 usport 64.59.150.133 10.0.0.149 53 kubali 32768 65535 ft:0:31- 6: iifname "enp209.115.181.102s10.0.0.149f123" ip saddr { 32768, 65535 } ip daddr 0 udp sport 31 udp dport 6-216.197.228.230 kubali kwenye. ip saddr. ip baba. udp mchezo. udp dport { enp10.0.0.149s123f32768 . 65535. 0. 31. 6-64.59.144.17, enp10.0.0.149s53f32768. 65535. 0. 31. 6-64.59.150.133, enp10.0.0.149s53f32768. 65535. XNUMX. XNUMX. XNUMX-XNUMX, enpXNUMXsXNUMXfXNUMX. XNUMX. XNUMX. XNUMX. XNUMX-XNUMX } ukubali
  • Tatizo lililotatuliwa la kutengeneza bytecode kwa kuunganisha vipindi vinavyotumia aina zilizo na mpangilio tofauti wa baiti, kama vile IPv4 (mpangilio wa baiti ya mtandao) na alama ya meta (mpangilio wa baiti ya mfumo). jedwali ip x {ramani w { typeof ip saddr . alama ya meta : bendera ya uamuzi vipengele vya kaunta vya muda = {127.0.0.1-127.0.0.4 . 0x123434-0xb00122 : kukubali, 192.168.0.10-192.168.1.20 . 0x0000aa00-0x0000aaff : kukubali, } } mnyororo k { aina chujio pembejeo pembejeo kipaumbele chujio; kushuka kwa sera; ip saddr. meta alama vmap @w }}
  • Ulinganisho ulioboreshwa wa itifaki adimu unapotumia misemo ghafi, kwa mfano: meta l4proto 91 @th,400,16 0x0 kubali.
  • Matatizo ya kuwezesha sheria kwa vipindi yametatuliwa: weka sheria xy tcp sport { 3478-3497, 16384-16387 } kubali kaunta
  • API ya JSON imeboreshwa ili kujumuisha usaidizi wa misemo katika seti na orodha za ramani.
  • Viendelezi kwa maktaba ya nftables python huruhusu upakiaji wa seti za sheria kwa usindikaji katika hali ya uthibitishaji ("-c") na kuongeza msaada kwa ufafanuzi wa nje wa vigeu.
  • Kuongeza maoni kunaruhusiwa katika vipengele vya orodha vilivyowekwa.
  • Kiwango cha wastani cha Byte kinaruhusu kubainisha thamani ya sifuri.

Chanzo: opennet.ru

Kuongeza maoni