Nftables packet tātari tuku 0.9.4

whakaputaina tuku tātari pākete nfttables 0.9.4, kei te whanake hei whakakapi mo nga iptables, ip6table, arptables me nga ebtables ma te whakakotahi i nga atanga tātari paatete mo IPv4, IPv6, ARP me nga piriti whatunga. Kei roto i te kete nftables nga waahanga tātari packet e rere ana i te waahi kaiwhakamahi, i te mea ko te taumata kernel e whakaratohia ana e te nf_tables subsystem, he waahanga o te kernel Linux mai i te tukunga 3.13. Ko nga huringa e hiahiatia ana mo te tukunga o nga nftables 0.9.4 ki te mahi kei roto i te peka kernel a meake nei Linux 5.6.

I te taumata kernel, ka whakaratohia he atanga kawa-motuhake noa e whakarato ana i nga mahi taketake mo te tango raraunga mai i nga paatete, te whakahaere i nga mahi i runga i nga raraunga, me te whakahaere i te rere. Ko nga ture tātari ma ratou ano me nga kaikawe kawa motuhake ka whakahiatohia ki te bytecode mokowā-kaiwhakamahi, muri iho ka utaina tenei bytecode ki roto i te kernel ma te whakamahi i te atanga Netlink ka mahia i roto i te kernel i roto i te miihini mariko motuhake e rite ana ki te BPF (Berkeley Packet Filters). Ma tenei huarahi ka taea te whakaiti i te rahi o te waehere tātari e rere ana i te taumata kernel me te neke i nga mahi katoa o nga ture parsing me te arorau o te mahi me nga kawa ki te waahi kaiwhakamahi.

Nga mahi hou:

  • Tautoko mo nga awhe i roto i nga hononga (te hono, etahi herenga o nga wahitau me nga tauranga e ngawari ana te whakahoa). Hei tauira, mo te huinga "whitelist" he apitihanga ona huānga, ka tohu te haki "wawhanga" ka taea e te huinga te whakauru awhe i roto i te taapiri (mo te taapiri "ipv4_addr. ipv4_addr. rite "192.168.10.35. 192.68.11.123", a inaianei ka taea e koe te tautuhi i nga roopu o nga wahitau "80-192.168.10.35-192.168.10.40".

    tepu ip foo {
    tautuhi rārangi ma {
    momo ipv4_addr . ipv4_addr . ratonga_inet
    wā haki
    huānga = {192.168.10.35-192.168.10.40. 192.68.11.123-192.168.11.125 . 80}
    }

    pae mekameka {
    momo tātari matau tātari matua arataki mua; takahanga kaupapa here;
    ip saddr. ip papa. tcp dport@whitelist whakaae
    }
    }

  • I roto i nga huinga me nga raarangi-mapi, ka taea te whakamahi i te "typeof" tohutohu, e whakatau ana i te whakatakotoranga o te huānga i te wa e mapi ana.
    Hei tauira:

    tepu ip foo {
    tautuhi rārangi ma {
    momo ip saddr
    huānga = {192.168.10.35, 192.168.10.101, 192.168.10.135 }
    }

    pae mekameka {
    momo tātari matau tātari matua arataki mua; takahanga kaupapa here;
    ip daddr @whitelist whakaae
    }
    }

    tepu ip foo {
    mahere addr2mark {
    momo ip saddr: tohu meta
    huānga = { 192.168.10.35 : 0x00000001, 192.168.10.135 : 0x00000002 }
    }
    }

  • Kua taapirihia te kaha ki te whakamahi i nga taapiri i roto i nga hononga NAT, ka taea e koe te tautuhi i tetahi wahitau me te tauranga i te wa e tautuhi ana i nga whakamaoritanga NAT i runga i nga rarangi mahere, i nga huinga ingoa ranei:

    nft tāpiri ture ip nat mua dnat ip addr . tauranga ki ip saddr map {1.1.1.1: 2.2.2.2. toru tekau }

    nft tāpiri mapi ip nat ūnga { momo ipv4_addr . ratonga_inet: ipv4_addr. ratonga_inet\\; }
    nft tāpiri ture ip nat mua dnat ip addr . tauranga ki ip saddr. tcp dport map @destinations

  • Tautoko mo te whakatere taputapu me te tango i etahi mahi tātari i runga i nga pokohiwi o te kaari whatunga. Ka taea te whakatere ma te taputapu ethtool ("ethtool -K eth0 hw-tc-offload on"), muri iho ka whakahohehia i roto i nga nftables mo te mekameka matua ma te whakamahi i te haki "offload". I te wa e whakamahi ana i te kakano Linux 5.6, ka tautokohia te whakaterenga taputapu mo te whakahoahoa pane pane me te tirotiro atanga taumai me te tango, te whakaheke, te taarua (ruarua), me te tuku whakamua (fwd). I roto i te tauira i raro nei, ka mahia nga mahi mo te whakaheke i nga paatete mai i te wahitau 192.168.30.20 i te taumata kaari whatunga, me te kore e tukuna nga paakete ki te kernel:

    # ngeru file.nft
    ripanga netdev x {
    mekameka y {
    momo tātari matau taputapu whakauru eth0 kaupapa matua 10; nga haki whakaheke;
    ip saddr 192.168.30.20 taka
    }
    }
    # nft -f kōnae.nft

  • He pai ake nga korero mo te waahi o te hapa i roto i nga ture.

    # nft muku ture ip yz kakau 7
    Hapa: Kaore i taea te whakahaere ture: Karekau he konae, he whaiaronga ranei
    muku ture ip yz kakau 7
    ^

    # nft muku ture ip xx kakau 7
    Hapa: Kaore i taea te whakahaere ture: Karekau he konae, he whaiaronga ranei
    muku ture ip xx kakau 7
    ^

    # nft muku te ripanga twst
    Hapa: Karekau he konae, he whaiaronga ranei; Ko te tikanga o te ripanga he "whakamatautau" i te ip whanau?
    ūkuia te awhi tepu
    ^^^^

    Ko te tauira tuatahi e whakaatu ana karekau te ripanga 'y' i roto i te punaha, ko te tuarua e whakaatu ana kei te ngaro te kaihautu '7', ko te tuatoru ka whakaatu he tohu patopato ina patohia te ingoa ripanga.

  • He tautoko taapiri mo te tirotiro i te atanga taurekareka ma te tohu "meta sdif" ranei "meta sdifname":

    ... meta sdifname vrf1 ...

  • He tautoko taapiri mo te mahi neke ki matau, maui ranei. Hei tauira, ki te nuku i te tapanga o te paatete kua waiho ma te 1 moka ka tautuhi i te moka raro ki te 1:

    … tautuhi tohu meta tohu tohu lshift 1, 0x1 ranei…

  • I whakatinanahia te whiringa "-V" hei whakaatu i nga korero putanga roa.

    #nft -V
    nftables v0.9.4 (Jive at Five)
    cli:readline
    json: ae
    minigmp: kahore
    libxtables: ae

  • Ko nga whiringa raina whakahau he whakahau i mua i nga whakahau. Hei tauira, me tohu koe "nft -a rarangi rarangi ture", me te whakahaere "nft list ruleset -a" ka puta he hapa.

    Source: opennet.ru

Tāpiri i te kōrero