nftables packet filter release 0.9.4

lomia faasalalau fa'amama fa'amama afifi nfttables 0.9.4, fa'atupuina e fai ma sui mo iptables, ip6table, arptables ma ebtables e ala i le tu'ufa'atasia o feso'ota'iga fa'amama pusa mo IPv4, IPv6, ARP ma alalaupapa feso'otaiga. O le afifi nftables e aofia ai vaega faamama packet o loʻo taʻavale i avanoa faʻaoga, ae o le galuega o le kernel-level e saunia e le nf_tables subsystem, lea na avea ma vaega o le Linux kernel talu mai le faʻamalolo 3.13. O suiga e mana'omia mo le fa'asa'olotoina o le nftables 0.9.4 e galue o lo'o aofia i le lala o le fatu i le lumana'i Linux 5.6.

Ole maualuga ole kernel e maua ai na'o se fa'aoga tuto'atasi tuto'atasi lautele e maua ai galuega fa'avae mo le su'eina o fa'amaumauga mai fa'amaumauga, fa'atinoina o fa'amaumauga, ma le pulea o le tafe. O tulafono faʻapipiʻi ma faʻataʻitaʻiga faʻapitoa e tuʻufaʻatasia i le bytecode i avanoa faʻaoga, a maeʻa ona utaina lea o le bytecode i totonu o le fatu e faʻaaoga ai le Netlink interface ma faʻatinoina i totonu o le fatu i totonu o se masini faʻapitoa faʻapitoa e manatua ai le BPF (Berkeley Packet Filters). O lenei faiga e mafai ai e oe ona faʻaititia tele le tele o le faʻamaʻiina o le code o loʻo taʻavale i le kernel level ma faʻagaoioia galuega uma o le faʻavasegaina o tulafono ma le faʻaogaina mo le galulue faʻatasi ma protocols i avanoa faʻaoga.

Autu fa'afouga:

  • Lagolago mo laina i fesoʻotaʻiga (concatenation, faʻapipiʻi o tuatusi ma ports e faʻafaigofie ai faʻatusatusaga). Mo se faʻataʻitaʻiga, mo se seti "whitelist" o ona elemene o se faʻapipiʻi, faʻamaonia le "ava" fuʻa o le a faʻaalia ai o le seti e mafai ona aofia ai laina i totonu o le faʻapipiʻi (mo le faʻapipiʻi "ipv4_addr . ipv4_addr . inet_service" na mafai muamua ona lisi saʻo. fetaui o le fomu "192.168.10.35. 192.68.11.123", ma o lea e mafai ona e faʻamaonia vaega o tuatusi "80-192.168.10.35-192.168.10.40").

    laulau ip foo {
    seti le lisi papa'e {
    type ipv4_addr . ipv4_addr. inet_service
    va o fu'a
    elemene = { 192.168.10.35-192.168.10.40 . 192.68.11.123-192.168.11.125. 80}
    }

    filifili pa {
    fa'aigoa fa'amama fa'aa'oa muamua fa'aa'e fa'amuamua faamama; pa'u o faiga faavae;
    ip saddr. ip tama. tcp dport @whitelist talia
    }
    }

  • I seti ma lisi faʻafanua, e mafai ona faʻaogaina le "ituaiga" faʻatonuga, lea e fuafua ai le faatulagaga o le elemene pe a fetaui.
    Mo se faʻataʻitaʻiga:

    laulau ip foo {
    seti le lisi papa'e {
    ituaiga ip saddr
    elemene = { 192.168.10.35, 192.168.10.101, 192.168.10.135 }
    }

    filifili pa {
    fa'aigoa fa'amama fa'aa'oa muamua fa'aa'e fa'amuamua faamama; pa'u o faiga faavae;
    ip daddr @whitelist talia
    }
    }

    laulau ip foo {
    fa'afanua addr2mark {
    typeof ip saddr: faʻailoga meta
    elemene = { 192.168.10.35 : 0x00000001, 192.168.10.135 : 0x00000002 }
    }
    }

  • Faʻaopoopo le tomai e faʻaoga faʻatasi i le NAT bindings, lea e mafai ai ona e faʻamaonia se tuatusi ma se taulaga pe a faʻamalamalamaina suiga NAT e faʻavae i luga o lisi faʻafanua poʻo seti igoa:

    nft faaopoopo tulafono ip nat pre dnat ip addr . uafu i ip saddr faafanua {1.1.1.1 : 2.2.2.2. tolu sefulu }

    nft fa'aopoopo fa'afanua ip nat taunu'uga {ituaiga ipv4_addr. inet_service: ipv4_addr. inet_service \\; }
    nft faaopoopo tulafono ip nat pre dnat ip addr . uafu i ip saddr. tcp dport faafanua @destinations

  • Lagolago mo le faʻavaveina o meafaigaluega faʻatasi ai ma nisi o galuega faʻamamaina o loʻo faʻatinoina e le network card. E mafai ona fa'avavevave e ala i le ethtool utility ("ethtool -K eth0 hw-tc-offload on"), a mae'a ona fa'agaoioia i nftables mo le filifili autu e fa'aaoga ai le fu'a "offload". Pe a fa'aogaina le Linux kernel 5.6, e lagolagoina le fa'avavevave o meafaigaluega mo le fa'atusaina o le fa'auluuluga ma le su'esu'ega o feso'ota'iga fa'atasi ma le mauaina, lafoa'iina, fa'aluaina (dup), ma le lafo atu (fwd) pepa. I le faʻataʻitaʻiga o loʻo i lalo, o gaioiga o le tuʻuina o paʻu e sau mai le tuatusi 192.168.30.20 o loʻo faia i le tulaga o le network card, e aunoa ma le pasiina o pepa i le fatu:

    # pusi faila.nft
    laulau netdev x {
    filifili y {
    ituaiga faamama matau masini eth0 faamuamua 10; fu'a ave'esea;
    ip saddr 192.168.30.20 pa'u
    }
    }
    # nft -f faila.nft

  • Faʻaleleia faʻamatalaga e uiga i le nofoaga o se mea sese i tulafono.

    # nft tape le tulafono ip yz au 7
    Sese: Le mafai ona fa'agasolo tulafono: Leai se faila po'o se fa'atonuga
    tape le tulafono ip yz au 7
    ^

    # nft tape le tulafono ip xx au 7
    Sese: Le mafai ona fa'agasolo tulafono: Leai se faila po'o se fa'atonuga
    tape le tulafono ip xx au 7
    ^

    # nft tape le laulau twst
    Sese: Leai se faila po'o se lisi; o le uiga o lau laulau 'su'ega' ile aiga ip?
    tape le laulau twst
    ^^^^

    O le faʻataʻitaʻiga muamua o loʻo faʻaalia ai o le laulau "y" e leʻo i totonu o le polokalama, o le lona lua o loʻo misi le "7", ma le lona tolu o loʻo faʻaalia se faʻataʻitaʻiga pe a taina le igoa ole laulau.

  • Faʻaopoopo le lagolago mo le siakiina o le atinaʻe pologa e ala i le faʻamaonia o le "meta sdif" poʻo le "meta sdifname":

    ... meta sdifname vrf1 ...

  • Fa'aopoopo le lagolago mo fa'agaioiga sifi taumatau po'o agavale. Mo se faʻataʻitaʻiga, ia fesuiaʻi se pepa faʻailoga o loʻo i ai nei e tuʻu i le 1 bit ma seti le laʻititi i le 1:

    ... fa'ailoga meta seti fa'ailoga meta lshift 1 po'o le 0x1 ...

  • Fa'atinoina le filifiliga "-V" e fa'aalia ai fa'amatalaga fa'alautele.

    # nft -V
    nftables v0.9.4 (Jive i le Lima)
    cli:readline
    json: ioe
    migmp: leai
    libxtables: ioe

  • E tatau ona fa'amaoti mai nei filifiliga laina fa'atonu a'o le'i fa'atonuina. Mo se faʻataʻitaʻiga, e tatau ona e faʻamaonia le "nft -a lisi lisi tulafono", ma le faʻaogaina o le "nft lisi tulafono -a" o le a iʻu ai i se mea sese.

    puna: opennet.ru

Faaopoopo i ai se faamatalaga