nftables packet filter 0.9.4 nga pagpagawas

gipatik pagpagawas sa packet filter nftables 0.9.4, naugmad isip puli sa iptables, ip6table, arptables ug ebtables pinaagi sa paghiusa sa packet filtering interfaces para sa IPv4, IPv6, ARP ug network bridges. Ang nftables package naglakip sa packet filter components nga nagdagan sa user space, samtang ang kernel-level work gihatag sa nf_tables subsystem, nga nahimong bahin sa Linux kernel sukad sa pagpagawas sa 3.13. Ang mga pagbag-o nga gikinahanglan alang sa pagpagawas sa nftables 0.9.4 aron magtrabaho gilakip sa umaabot nga sanga sa kernel Linux 5.6.

Ang lebel sa kernel naghatag lamang sa usa ka generic nga protocol-independent nga interface nga naghatag og mga batakang gimbuhaton alang sa pagkuha sa datos gikan sa mga pakete, paghimo sa mga operasyon sa datos, ug pagkontrol sa dagan. Ang mga lagda sa pagsala ug mga tigdumala nga espesipiko sa protocol gihugpong ngadto sa bytecode sa user space, pagkahuman niini nga bytecode gikarga sa kernel gamit ang Netlink interface ug gipatuman sa kernel sa usa ka espesyal nga virtual machine nga nagpahinumdom sa BPF (Berkeley Packet Filters). Kini nga pamaagi nagtugot kanimo nga makunhuran ang gidak-on sa code sa pagsala nga nagdagan sa lebel sa kernel ug ibalhin ang tanan nga mga gimbuhaton sa mga lagda sa pag-parse ug lohika alang sa pagtrabaho kauban ang mga protocol sa wanang sa gumagamit.

Panguna nga mga inobasyon:

  • Suporta alang sa mga han-ay sa mga koneksyon (concatenation, pipila ka mga hugpong sa mga adres ug mga pantalan nga nagpasimple sa pagtandi). Pananglitan, alang sa usa ka set nga "whitelist" kansang mga elemento usa ka attachment, ang pagtino sa "interval" nga bandila magpakita nga ang set mahimong maglakip sa mga han-ay sa attachment (alang sa attachment "ipv4_addr. ipv4_addr . inet_service" kaniadto posible nga ilista ang eksakto mga tugma sa porma nga "192.168.10.35. 192.68.11.123", ug karon mahimo nimong ipiho ang mga grupo sa mga adres "80-192.168.10.35-192.168.10.40."

    lamesa ip foo {
    ibutang ang whitelist {
    type ipv4_addr . ipv4_addr. inet_service
    agwat sa mga bandila
    elemento = { 192.168.10.35-192.168.10.40 . 192.68.11.123-192.168.11.125. 80}
    }

    chain bar {
    type filter hook prerouting priority filter; pagkunhod sa palisiya;
    ip saddr. ip dadr. tcp dport @whitelist dawaton
    }
    }

  • Sa mga set ug mga lista sa mapa, posible nga gamiton ang "typeof" nga direktiba, nga nagtino sa format sa elemento kung magkatugma.
    Pananglitan:

    lamesa ip foo {
    ibutang ang whitelist {
    matang sa ip saddr
    elemento = { 192.168.10.35, 192.168.10.101, 192.168.10.135 }
    }

    chain bar {
    type filter hook prerouting priority filter; pagkunhod sa palisiya;
    ip daddr @whitelist dawaton
    }
    }

    lamesa ip foo {
    mapa addr2mark {
    matang sa ip saddr: meta mark
    elemento = { 192.168.10.35 : 0x00000001, 192.168.10.135 : 0x00000002 }
    }
    }

  • Gidugang ang abilidad sa paggamit sa mga pag-apil sa NAT bindings, nga nagtugot kanimo sa pagtino sa usa ka adres ug pantalan kung gihubit ang mga pagbag-o sa NAT base sa mga lista sa mapa o mga set nga ginganlan:

    nft add rule ip nat pre dnat ip addr . pantalan sa ip saddr mapa {1.1.1.1: 2.2.2.2. katloan }

    nft add mapa ip nat destinasyon { type ipv4_addr . inet_service: ipv4_addr. inet_service \\; }
    nft add rule ip nat pre dnat ip addr . port sa ip saddr. tcp dport mapa @destinasyon

  • Suporta alang sa pagpadali sa hardware nga adunay pipila nga mga operasyon sa pagsala nga gihimo sa network card. Gipaandar ang pagpatulin pinaagi sa ethtool utility ("ethtool -K eth0 hw-tc-offload on"), pagkahuman gi-activate kini sa nftables para sa main chain gamit ang "offload" nga bandila. Kung gigamit ang Linux kernel 5.6, ang pagpadali sa hardware gisuportahan alang sa pagpares sa natad sa header ug pag-inspeksyon sa umaabot nga interface inubanan sa pagdawat, paglabay, pagdoble (dup), ug pagpasa (fwd) nga mga pakete. Sa panig-ingnan sa ubos, ang mga operasyon sa paghulog sa mga pakete gikan sa adres nga 192.168.30.20 gihimo sa lebel sa network card, nga wala ipasa ang mga pakete sa kernel:

    # cat file.nft
    lamesa netdev x {
    kadena y {
    type filter hook ingress device eth0 priority 10; mga flag offload;
    ip saddr 192.168.30.20 drop
    }
    }
    # nft -f file.nft

  • Gipauswag nga kasayuran bahin sa lokasyon sa usa ka sayup sa mga lagda.

    # nft delete rule ip yz handle 7
    Sayop: Dili maproseso ang lagda: Walay ingon nga file o direktoryo
    delete rule ip yz handle 7
    ^

    # nft delete rule ip xx handle 7
    Sayop: Dili maproseso ang lagda: Walay ingon nga file o direktoryo
    delete rule ip xx handle 7
    ^

    # nft delete table twst
    Sayop: Walay ingon nga file o direktoryo; ang imong gipasabot nga table Γ’β‚¬Λœtest' sa family ip?
    delete table twst
    ^^^^

    Ang una nga pananglitan nagpakita nga ang lamesa nga "y" wala sa sistema, ang ikaduha nga ang "7" nga handler nawala, ug ang ikatulo nga ang usa ka typo prompt gipakita sa pag-type sa ngalan sa lamesa.

  • Gidugang nga suporta alang sa pagsusi sa interface sa ulipon pinaagi sa pagtino sa "meta sdif" o "meta sdifname":

    ... meta sdifname vrf1 ...

  • Gidugang nga suporta alang sa tuo o wala nga mga operasyon sa pagbalhin. Pananglitan, sa pagbalhin sa kasamtangan nga packet label nga gibilin sa 1 bit ug i-set ang minor bit ngadto sa 1:

    ... meta mark set meta mark lshift 1 o 0x1 ...

  • Gipatuman ang "-V" nga kapilian aron ipakita ang dugang nga impormasyon sa bersyon.

    # nft -V
    nftables v0.9.4 (Jive sa Lima)
    cli:readline
    json: oo nga
    minigmp: dili
    libxtables: oo

  • Ang mga opsyon sa command line kinahanglan na nga itakda sa dili pa ang mga command. Pananglitan, kinahanglan nimong ipiho ang "nft -a list ruleset", ug ang pagpadagan sa "nft list ruleset -a" moresulta sa usa ka sayup.

    Source: opennet.ru

Idugang sa usa ka comment