nftables pakkasía 0.9.4 útgáfa

birt losun pakkasíu nftables 0.9.4, þróast í staðinn fyrir iptables, ip6table, arptables og ebtables með því að sameina pakkasíuviðmót fyrir IPv4, IPv6, ARP og netbrýr. 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. Breytingarnar sem nauðsynlegar eru til að nftables 0.9.4 útgáfan virki eru innifalin í framtíðarkjarnagreininni Linux 5.6.

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 og samskiptareglurnar eru settar saman í bækakóða í notendarýminu, 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 minnir á BPF (Berkeley Packet Filters). Þessi nálgun gerir þér kleift að minnka verulega stærð síunarkóðans sem keyrir á kjarnastigi og færa allar aðgerðir þáttunarreglna og rökfræði til að vinna með samskiptareglur inn í notendarýmið.

Helstu nýjungar:

  • Stuðningur við svið í tengingum (samtenging, ákveðin búnt af vistföngum og tengi sem einfalda samanburð). Til dæmis, fyrir sett "whitelist" þar sem þættir eru viðhengi, mun það að tilgreina "millibil" fánann gefa til kynna að mengið geti innihaldið svið í viðhenginu (fyrir viðhengið "ipv4_addr . ipv4_addr . inet_service" var áður hægt að skrá nákvæmlega samsvörun á forminu "192.168.10.35. 192.68.11.123", og nú er hægt að tilgreina hópa af heimilisföngum "80-192.168.10.35-192.168.10.40"):192.68.11.123").

    borð ip foo {
    setja hvíta lista {
    sláðu inn ipv4_addr. ipv4_addr. inet_þjónusta
    millibili fána
    þættir = { 192.168.10.35-192.168.10.40 . 192.68.11.123-192.168.11.125. 80}
    }

    keðjustangir {
    gerð síu krókur prerouting forgangssía; stefnufall;
    ip saddr. ip daddr. tcp dport @whitelist samþykkja
    }
    }

  • Í settum og kortalistum er hægt að nota „tegund af“ tilskipuninni, sem ákvarðar snið frumefnisins við samsvörun.
    Til dæmis:

    borð ip foo {
    setja hvíta lista {
    tegund af ip saddr
    þættir = { 192.168.10.35, 192.168.10.101, 192.168.10.135 }
    }

    keðjustangir {
    gerð síu krókur prerouting forgangssía; stefnufall;
    ip daddr @hvítalisti samþykkja
    }
    }

    borð ip foo {
    map addr2mark {
    tegund ip saddr: metamerki
    þættir = { 192.168.10.35 : 0x00000001, 192.168.10.135 : 0x00000002 }
    }
    }

  • Bætti við möguleikanum á að nota joins í NAT-bindingum, sem gerir þér kleift að tilgreina heimilisfang og gátt þegar þú skilgreinir NAT umbreytingar byggðar á kortalistum eða nefndum settum:

    nft add regla ip nat pre dnat ip adr. port til ip saddr kort {1.1.1.1: 2.2.2.2. þrjátíu}

    nft bæta við korti ip nat áfangastaði {tegund ipv4_addr. inet_service: ipv4_addr. inet_þjónusta \\; }
    nft add regla ip nat pre dnat ip adr. port til ip saddr. tcp dport kort @áfangastaðir

  • Stuðningur við vélbúnaðarhröðun með sumum síunaraðgerðum sem framkvæmdar eru af netkortinu. Hröðun er virkjuð í gegnum ethtool tólið ("ethtool -K eth0 hw-tc-offload on"), eftir það er það virkjað í nftables fyrir aðalkeðjuna með því að nota "offload" fána. Þegar Linux kjarna 5.6 er notað er vélbúnaðarhröðun studd fyrir samsvörun haussviða og skoðun á innkomnum viðmótum ásamt móttöku, fleygi, afritun (dup) og framsendingu (fwd) pökkum. Í dæminu hér að neðan eru aðgerðirnar að sleppa pökkum sem koma frá heimilisfanginu 192.168.30.20 fram á netkortastigi, án þess að senda pakkana til kjarnans:

    # köttur skrá.nft
    borð netdev x {
    keðja y {
    gerð síu króks inngöngutæki eth0 forgangur 10; fánar afskipun;
    ip saddr 192.168.30.20 falla
    }
    }
    # nft -f skrá.nft

  • Bættar upplýsingar um staðsetningu villu í reglunum.

    # nft eyða reglu ip yz höndla 7
    Villa: Gat ekki unnið úr reglu: Engin slík skrá eða skrá
    eyða reglu ip yz handfangi 7
    ^

    # nft eyða reglu ip xx handfang 7
    Villa: Gat ekki unnið úr reglu: Engin slík skrá eða skrá
    eyða reglu ip xx handfang 7
    ^

    # nft eyða töflu twst
    Villa: Engin slík skrá eða skrá; varstu að meina töflu „próf“ í fjölskyldu-ip?
    eyða töflu twst
    ^^^^

    Fyrsta dæmið sýnir að taflan „y“ er ekki í kerfinu, annað að „7“ meðhöndlun vantar og það þriðja að innsláttarvilla birtist þegar töfluheitið er slegið inn.

  • Bætti við stuðningi við að athuga þrælsviðmótið með því að tilgreina „meta sdif“ eða „meta sdifname“:

    ... meta sdifname vrf1 ...

  • Bætt við stuðningi við hægri eða vinstri vaktaaðgerðir. Til dæmis, til að færa núverandi pakkamerki til vinstri um 1 bita og stilla minnihlutann á 1:

    … meta mark sett meta mark lshift 1 eða 0x1 …

  • Innleiddur "-V" valmöguleiki til að birta útbreiddar útgáfuupplýsingar.

    # nft -V
    nftables v0.9.4 (Jive at Five)
    cli: leslína
    json: já
    minigmp: nei
    libxtables: já

  • Skipanalínuvalkostir verða nú að vera tilgreindir á undan skipunum. Til dæmis þarftu að tilgreina „nft -a list reglusett“ og að keyra „nft list reglusett -a“ mun leiða til villu.

    Heimild: opennet.ru

Bæta við athugasemd