nftables pakiti chujio 1.0.7 kutolewa

Kutolewa kwa vichujio vya pakiti 1.0.7 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:

  • Kwa mifumo inayoendesha Linux kernel 6.2+, uwezo wa kutumia ramani za itifaki za vxlan, geneve, gre, na gretap umeongezwa, ikiruhusu usemi rahisi kuangalia vichwa katika pakiti zilizowekwa. Kwa mfano, ili kuangalia anwani ya IP katika kichwa cha pakiti iliyopangwa kutoka kwa VxLAN, sasa unaweza kutumia sheria (bila ya haja ya kwanza ya kufuta kichwa cha VxLAN na kuifunga chujio kwenye interface ya vxlan0): ... udp dport 4789 vxlan ip itifaki udp ... udp dport 4789 vxlan ip saddr 1.2.3.0. 24/4789 ... udp dport 1.2.3.4 vxlan ip saddr . vxlan ip daddr { 4.3.2.1 . XNUMX }
  • Usaidizi wa kuunganisha kiotomatiki kwa masalio baada ya kufuta sehemu ya kipengele cha orodha-seti kumetekelezwa, ambayo hukuruhusu kufuta kipengele au sehemu ya masafa kutoka kwa masafa yaliyopo (hapo awali, masafa yanaweza kufutwa kabisa). Kwa mfano, baada ya kuondoa kipengele cha 25 kutoka kwa orodha iliyowekwa na safu 24-30 na 40-50, orodha itabaki 24, 26-30 na 40-50. Marekebisho yanayohitajika ili kuunganisha kiotomatiki kufanya kazi yatatolewa katika matoleo ya matengenezo ya matawi thabiti ya 5.10+ kernel. Jedwali # la kanuni ya orodha ya nft ip x { set y { typeof tcp dport bendera muda wa kuunganisha vipengele otomatiki = { 24-30, 40-50 } } } # nft kufuta kipengele ip xy { 25 } # nft orodha kanuni jedwali ip x { kuweka y { typeof tcp dport bendera muda wa vipengele vya kuunganisha otomatiki = { 24, 26-30, 40-50 } }
  • Huruhusu matumizi ya waasiliani na masafa wakati wa kupanga tafsiri ya anwani (NAT). table ip nat { chain prerouting { type nat hook prerouting priority dstnat; kukubali sera; dnat kwa ip baba. ramani ya tcp dport { 10.1.1.136 . 80: 1.1.2.69. 1024, 10.1.1.10-10.1.1.20. 8888-8889: 1.1.2.69. 2048-2049 } endelevu }}
  • Msaada ulioongezwa kwa usemi wa "mwisho", ambao hukuruhusu kujua wakati wa matumizi ya mwisho ya kipengee cha sheria au orodha iliyowekwa. Kipengele hiki kinatumika kuanzia na Linux kernel 5.14. jedwali ip x { set y { typeof ip daddr . tcp dport size 65535 bendera zinazobadilika, muda umeisha mwisho wa saa 1h } mnyororo z {aina chujio cha pato la kichujio cha kipaumbele cha ndoano; kukubali sera; sasisha @y { ip daddr . tcp dport } } } } orodha # ya nft weka ip xy jedwali ip x { set y { typeof ip daddr . tcp dport size 65535 hualamisha alama zinazobadilika, umeisha muda wa mwisho kuisha vipengele 1h = { 172.217.17.14 . Muda wa 443 uliotumika mwisho wa 1s591ms 1h unaisha 59m58s409ms, 172.67.69.19 . 443 ilitumika mara ya mwisho 4s636ms kuisha 1h inaisha 59m55s364ms, 142.250.201.72 . 443 ilitumika mara ya mwisho 4s748ms kuisha 1h inaisha 59m55s252ms, 172.67.70.134 . Muda wa 443 uliotumika mwisho wa 4s688ms 1h unaisha 59m55s312ms, 35.241.9.150 . 443 ilitumika mwisho 5s204ms timeout 1h inaisha 59m54s796ms, 138.201.122.174 . 443 ilitumika mara ya mwisho 4s537ms kuisha 1h inaisha 59m55s463ms, 34.160.144.191 . Muda wa 443 uliotumika mwisho wa 5s205ms 1h unaisha 59m54s795ms, 130.211.23.194 . Muda wa 443 uliotumika mwisho wa 4s436ms 1h unaisha 59m55s564ms }}}
  • Imeongeza uwezo wa kufafanua upendeleo katika orodha zilizowekwa. Kwa mfano, ili kubainisha kiasi cha trafiki kwa kila anwani ya IP inayolengwa, unaweza kubainisha: jedwali netdev x { set y { typeof ip daddr size 65535 mgawo zaidi ya 10000 mibytes } mlolongo y { aina chujio ndoano egress kifaa "eth0" kipaumbele kichujio; kukubali sera; ip daddr @y drop } } # nft ongeza kipengee inet xy { 8.8.8.8 } # ping -c 2 8.8.8.8 # nft orodha ya kanuni jedwali netdev x { set y { aina ipv4_addr ukubwa 65535 mgawo zaidi ya 10000 m.8.8.8.8 vipengele = 10000. Sehemu ya 196 zaidi ya 0 ya baiti imetumika baiti XNUMX } } mnyororo y {kichujio cha aina ya ndoano ya kifaa cha "ethXNUMX" kichujio cha kipaumbele; kukubali sera; ip baba @y drop }}
  • Matumizi ya mara kwa mara katika orodha zilizowekwa inaruhusiwa. Kwa mfano, unapotumia anwani lengwa na Kitambulisho cha VLAN kama ufunguo wa orodha, unaweza kubainisha moja kwa moja nambari ya VLAN (daddr . 123): table netdev t { set s { typeof ether saddr . vlan id size 2048 bendera dynamic, timeout timeout 1m } mnyororo c { type chujio ndoano ingress kifaa eth0 kipaumbele 0; kukubali sera; aina ya ether != 8021q sasisho @s { ether daddr . 123 } kihesabu }}
  • Imeongeza amri mpya ya "haribu" ili kufuta vitu bila masharti (tofauti na amri ya kufuta, haitoi ENOENT wakati wa kujaribu kufuta kitu kilichokosekana). Inahitaji angalau Linux kernel 6.3-rc kufanya kazi. haribu kichungi cha ip cha meza

Chanzo: opennet.ru

Kuongeza maoni