nftables pakkasía 1.0.3 útgáfa

Útgáfa pakkasíunnar nftables 1.0.3 hefur verið gefin út, sem sameinar pakkasíuviðmót fyrir IPv4, IPv6, ARP og netbrýr (sem miða að því að skipta út iptables, ip6table, arptables og ebtables). Breytingarnar sem þarf til að nftables 1.0.3 útgáfan virki eru innifalin í Linux 5.18 kjarnanum.

nftables pakkinn inniheldur pakkasíuhluti sem keyra í notendarými, en kjarnastigsvinnan er veitt af nf_tables undirkerfinu, sem hefur verið hluti af Linux kjarnanum frá útgáfu 3.13. Kjarnastigið veitir aðeins almennt samskiptaóháð viðmót sem veitir grunnaðgerðir til að vinna gögn úr pökkum, framkvæma gagnaaðgerðir og flæðisstýringu.

Síureglurnar sjálfar og siðareglur sértækar meðhöndlarar eru settar saman í notendarými bækióða, eftir það er þessum bætikóða hlaðið inn í kjarnann með því að nota Netlink viðmótið og keyrt í kjarnanum í sérstakri sýndarvél sem líkist BPF (Berkeley Packet Filters). Þessi nálgun gerir það mögulegt að minnka verulega stærð síunarkóðans sem keyrir á kjarnastigi og færa allar aðgerðir þáttunarreglna og rökfræði þess að vinna með samskiptareglur inn í notendarýmið.

Helstu nýjungar:

  • Setlistar styðja nú samsvörun netviðmótsheita með grímu, til dæmis, tilgreind með „*“ tákninu: table inet testifsets { set simple_wild { type ifname flags interval elements = { “abcdef*”, “othername”, “ppp0” } } keðja v4icmp { tegund filter krók inntak forgangur 0; stefna samþykkja; iifname @simple_wild teljarapakkar 0 bæti 0 iifname { “abcdef*”, “eth0” } teljarapakkar 0 bæti 0 } }
  • Innleiddi sjálfvirka sameiningu skerandi þátta settlista meðan á notkun stendur. Áður, þegar „sjálfvirk sameining“ valmöguleikinn var stilltur, var sameiningin framkvæmd á því stigi að lýsa yfir reglunum, en nú virkar það líka þegar nýjum þáttum er bætt við smám saman við notkun. Til dæmis, á yfirlýsingastigi, listinn setti y { flags interval auto-merge elements = { 1.2.3.0, 1.2.3.255, 1.2.3.0/24, 3.3.3.3, 4.4.4.4, 4.4.4.4-4.4.4.8 , 3.3.3.4 , 3.3.3.5 } } verður breytt í þætti = { 1.2.3.0/24, 3.3.3.3-3.3.3.5, 4.4.4.4-4.4.4.8 } og síðan ef þú bætir við nýjum þáttum # nft add element ip x y { 1.2.3.0 -1.2.4.255, 3.3.3.6 } mun líta út eins og þættir = { 1.2.3.0-1.2.4.255, 3.3.3.3-3.3.3.6, 4.4.4.4-4.4.4.8}

    Þegar þú fjarlægir einstök atriði af listanum sem falla innan núverandi sviðsþátta, styttist svið eða er skipt.

  • Stuðningur við að sameina reglur um þýðingu á mörgum heimilisfangum (NAT) í kortalista hefur verið bætt við reglufínstillinguna, kallaður þegar „-o/—optimize“ valkosturinn er tilgreindur. Til dæmis, fyrir settið # cat ruleset.nft töfluna ip x { chain y { type nat hook postrouting priority srcnat; stefnufall; ip saddr 1.1.1.1 tcp dport 8000 snat í 4.4.4.4:80 ip saddr 2.2.2.2 tcp dport 8001 snat til 5.5.5.5:90 } }

    með því að framkvæma „nft -o -c -f ruleset.nft“ mun aðskildum „ip saddr“ reglum breytast í kortalista: snat til ip saddr . tcp dport kort {1.1.1.1. 8000: 4.4.4.4. 80, 2.2.2.2. 8001: 5.5.5.5. 90}

    Að sama skapi er hægt að breyta hráum tjáningum í kortalista: # cat ruleset.nft table ip x { […] chain nat_dns_acme { udp length 47-63 @th,160,128 0x0e373135363130333131303735353203 goto 62 78 160,128x0e0e goto nat_dns_this_31393032383939353831343037320 udp lengd 5301-62 @th,78 160,128x0e0e goto nat_dns_saturn_31363436323733373931323934300 udp lengd 5301-62 @þ78 160,128 0 0 32393535373539353636383732310 5302 62, 78 160,128, 0 0, 38353439353637323038363633390 5303, XNUMX XNUMX, XNUMX XNUMX, XNUMX XNUMX, XNUMX XNUMX XNUMXe goto nat_dns_saturn_XNUMX udp lengd XNUMX-XNUMX @th,XNUMX XNUMXxXNUMXeXNUMXe goto nat_dns_saturn_XNUMX drop

    eftir fínstillingu fáum við kortalista: udp length . @th,160,128 vmap {47-63. 0x0e373135363130333131303735353203 : goto nat_dns_dnstc, 62-78 . 0x0e31393032383939353831343037320e : goto nat_dns_this_5301, 62-78 . 0x0e31363436323733373931323934300e : goto nat_dns_saturn_5301, 62-78 . 0x0e32393535373539353636383732310e : goto nat_dns_saturn_5302, 62-78 . 0x0e38353439353637323038363633390e: goto nat_dns_saturn_5303 }

  • Notkun á hráum orðatiltækjum í samtengingaraðgerðum er leyfð. Til dæmis: # nft bæta við reglu x y ip saddr . @ih,32,32 { 1.1.1.1. 0x14, 2.2.2.2. 0x1e } eða tafla x { set y { typeof ip saddr . @ih,32,32 þættir = { 1.1.1.1. 0x14 } } }
  • Bætt við stuðningi við að tilgreina heiltöluhausareiti í samtengingaraðgerðum: tafla inet t { map m1 { typeof udp length . @ih,32,32: dómfánar millibilsþættir = { 20-80. 0x14: samþykkja, 1-10. 0xa : falla } } keðja c { gerð síu krókar inntaksforgangur 0; stefnufall; udp lengd. @ih,32,32 vmap @m1 } }
  • Bætt við stuðningi við að endurstilla TCP valkosti (virkar aðeins með Linux kjarna 5.18+): tcp flags syn reset tcp option sack-perm
  • Framkvæmd keðjuúttaksskipana („nft list chain x y“) hefur verið flýtt.

Heimild: opennet.ru

Bæta við athugasemd