sìoltachan pacaid nftables 0.9.4 sgaoileadh

foillsichte sgaoileadh sìoltachan pacaid nftables 0.9.4, a tha a’ leasachadh an àite iptables, ip6table, arptables agus ebtables le bhith ag aonachadh eadar-aghaidh sìoltachaidh pacaid airson IPv4, IPv6, ARP agus drochaidean lìonra. Tha am pasgan nftables a’ toirt a-steach co-phàirtean sìoltachain pacaid a bhios a’ ruith ann an àite luchd-cleachdaidh, fhad ‘s a tha an ìre kernel air a thoirt seachad leis an fho-shiostam nf_tables, a tha air a bhith na phàirt den kernel Linux bho chaidh a leigeil ma sgaoil 3.13. Tha na h-atharrachaidhean a dh’ fheumar airson nftables 0.9.4 a leigeil ma sgaoil gu obair air an toirt a-steach don mheur kernel san àm ri teachd Linux 5.6.

Aig ìre kernel, chan eil ach eadar-aghaidh coitcheann neo-eisimeileach air a thoirt seachad a bheir seachad gnìomhan bunaiteach airson dàta a tharraing à pacaidean, coileanadh obrachaidhean air dàta, agus smachd a chumail air sruthadh. Tha na riaghailtean sìolaidh fhèin agus luchd-làimhseachaidh protocol-sònraichte air an cur ri chèile a-steach do bytecode àite neach-cleachdaidh, às deidh sin tha am bytecode seo air a luchdachadh a-steach don kernel a ’cleachdadh eadar-aghaidh Netlink agus air a chuir gu bàs anns an kernel ann an inneal brìgheil sònraichte coltach ri BPF (Berkeley Packet Filters). Tha an dòigh-obrach seo ga dhèanamh comasach meud a ’chòd sìoltachaidh a tha a’ ruith aig ìre kernel a lughdachadh gu mòr agus a h-uile gnìomh de riaghailtean parsaidh agus loidsig obrachadh le protocolaidhean a ghluasad gu àite luchd-cleachdaidh.

Prìomh innleachdan:

  • Taic airson raointean ann an ceanglaichean (concatenation, ceanglaichean sònraichte de sheòlaidhean agus puirt a nì sìmpleachadh air maidseadh). Mar eisimpleir, airson seata “whitelist” aig a bheil na h-eileamaidean mar cheanglachan, le bhith a’ sònrachadh a’ bhratach “eadar-ama” seallaidh e gum faod an seata raointean a ghabhail a-steach sa cheanglachan (airson a’ cheangail “ipv4_addr . ipv4_addr . inet_service" bha e comasach roimhe seo liosta mionaideach a dhèanamh maidsean mar "192.168.10.35. 192.68.11.123", agus a-nis is urrainn dhut buidhnean de sheòlaidhean a shònrachadh "80-192.168.10.35-192.168.10.40:192.68.11.123-192.168.11.125):.

    clàr ip foo {
    suidhich liosta geal {
    seòrsa ipv4_addr . ipv4_ addr . inet_seirbheis
    eadar-ama brataichean
    eileamaidean = { 192.168.10.35-192.168.10.40 . 192.68.11.123-192.168.11.125. 80}
    }

    bàr slabhraidh {
    seòrsa dubhan sìoltachain ro-làimh sìoltachan prìomhachais; tuiteam poileasaidh;
    ip diùraidh. ip daddr. tcp dport@whitelist gabhail ris
    }
    }

  • Ann an seataichean agus liostaichean mhapaichean, tha e comasach an stiùireadh "typeof" a chleachdadh, a bhios a 'dearbhadh cruth an eileamaid nuair a bhios e a' mapadh.
    Mar eisimpleir:

    clàr ip foo {
    suidhich liosta geal {
    seòrsa ip sadr
    eileamaidean = { 192.168.10.35, 192.168.10.101, 192.168.10.135 }
    }

    bàr slabhraidh {
    seòrsa dubhan sìoltachain ro-làimh sìoltachan prìomhachais; tuiteam poileasaidh;
    ip daddr @whitelist gabh ris
    }
    }

    clàr ip foo {
    mapa addr2mark {
    seòrsa ip saddr: comharra meta
    eileamaidean = { 192.168.10.35 : 0x00000001, 192.168.10.135 : 0x00000002 }
    }
    }

  • Chuir sinn ris a’ chomas air ceanglachan a chleachdadh ann an ceanglachan NAT, a leigeas leat seòladh agus port a shònrachadh nuair a bhios tu a’ mìneachadh eadar-theangachaidhean NAT stèidhichte air liostaichean mhapaichean no seataichean ainmichte:

    nft cuir riaghailt ip nat ro dnat ip addr . port gu mapa ip saddr { 1.1.1.1 : 2.2.2.2 . trithead }

    nft cuir mapa ip nat cinn-uidhe { seòrsa ipv4_addr . inet_service : ipv4_addr . inet_service \\; }
    nft cuir riaghailt ip nat ro dnat ip addr . port gu ip saddr. tcp dport map @destinations

  • Taic airson luathachadh bathar-cruaidh le bhith a’ toirt air falbh cuid de dh’ obair sìolaidh air guailnean a’ chairt lìonraidh. Tha luathachadh air a chomasachadh tro ghoireas ethtool (“ethtool -K eth0 hw-tc-offload on”), às deidh sin tha e air a ghnìomhachadh ann an nftables airson a’ phrìomh shreath a ’cleachdadh a’ bhratach “offload”. Nuair a bhios tu a’ cleachdadh an kernel Linux 5.6, thathas a’ toirt taic do luathachadh bathar-cruaidh airson a bhith a’ maidseadh raon cinn agus sgrùdadh eadar-aghaidh a’ tighinn a-steach còmhla ri bhith a’ faighinn, a’ leigeil às, a’ dùblachadh (dup), agus a’ cur air adhart (fwd) pacaidean. Anns an eisimpleir gu h-ìosal, thathas a’ coileanadh obair airson pacaidean a leigeil às a’ tighinn bhon t-seòladh 192.168.30.20 aig ìre cairt lìonra, gun a bhith a’ dol seachad air na pacaidean chun na h-eithne:

    # faidhle cat.nft
    clàr netdev x {
    slabhraidh y {
    seòrsa inneal ingress dubhan sìoltachain eth0 prìomhachas 10; brataichean air an luchdachadh;
    ip saddr 192.168.30.20 tuiteam
    }
    }
    # nft -f faidhle.nft

  • Fiosrachadh nas fheàrr mu àite mearachd anns na riaghailtean.

    # nft sguab às riaghailt ip yz làimhseachadh 7
    Mearachd: Cha b' urrainn dhuinn riaghailt a phròiseasadh: Chan eil faidhle no eòlaire mar sin ann
    cuir às do riaghailt ip yz làimhseachadh 7
    ^

    # nft sguab às riaghailt ip xx làimhseachadh 7
    Mearachd: Cha b' urrainn dhuinn riaghailt a phròiseasadh: Chan eil faidhle no eòlaire mar sin ann
    cuir às do riaghailt ip xx làimhseachadh 7
    ^

    # nft cuir às do bhòrd a’ bhùird
    Mearachd: Chan eil faidhle no eòlaire mar sin ann; an robh thu a' ciallachadh 'test' clàr ann an ip teaghlaich?
    thoir air falbh tionndadh bùird
    ^^^^

    Tha a’ chiad eisimpleir a’ sealltainn nach eil an clàr ‘y’ an làthair san t-siostam, tha an dàrna fear a’ sealltainn gu bheil an inneal-làimhseachaidh ‘7’ a dhìth, agus tha an treas fear a’ sealltainn sanas typo nuair a tha thu a’ sgrìobhadh ainm a’ chlàir.

  • Taic a bharrachd airson a bhith a’ sgrùdadh eadar-aghaidh nan tràillean le bhith a’ sònrachadh “meta sdif” no “meta sdifname”:

    ... meta sdifname vrf1 ...

  • Taic a bharrachd airson obrachadh gluasad deas no clì. Mar eisimpleir, airson leubail pacaid gnàthaichte a ghluasad le 1 bit agus suidhich am pìos ìosal gu 1:

    … meta comharra seata meta comharra lshift 1 no 0x1 …

  • Roghainn “-V” air a chuir an gnìomh gus fiosrachadh dreach leudaichte a thaisbeanadh.

    #nft -V
    nftables v0.9.4 (Jive at Five)
    cli: readline
    json: tha
    minimp: chan eil
    libxtables: tha

  • Feumaidh roghainnean loidhne-àithne a-nis a bhith air an sònrachadh ro òrdughan. Mar eisimpleir, feumaidh tu “nft -a list ruleset” a shònrachadh, agus le bhith a’ ruith “nft list ruleset -a” thig mearachd.

    Source: fosgailtenet.ru

Cuir beachd ann