Nftablesi 0.9.4 paketifiltri vÀljaanne

Avaldatud paketifiltri vĂ€ljaanne nftables 0.9.4, areneb olema iptables, ip6table, arptables ja ebtables asendaja, pakettide filtreerimise liideste ĂŒhtsustamise abil IPv4, IPv6, ARP ja vĂ”rgu sillutamiseks. Paketi nftables koosseisus on kasutusruumis töötavad pakettide filtreerimise komponendid, samas kui sĂŒdamikus tagab töö nf_tables alamsĂŒsteem, mis on Linuxi tuumas alates versioonist 3.13. Nöödamisega nftables 0.9.4 töötamiseks vajalikud muudatused on tulevase tuuma haru koosseisus. Linux 5.6.

SĂŒdamiku tasemel pakutakse vaid ĂŒldist liidest, mis ei sĂ”ltu konkreetsest protokollist ja pakub pĂ”hifunktsioone andmete extracatsiooniks pakettidest, andmete opereerimiseks ja voolu juhtimiseks. Otsesed filtreerimise reeglid ja protokollispetsiifilised töötlejajad kompileeritakse kasutusruumis baitkoodiks, seejĂ€rel laaditakse see baitkood Netlinki liidese abil tuuma ja tĂ€idetakse tuumas spetsiaalses virtuaalmasinas, mis sarnaneb BPF-iga (Berkeley Packet Filters). Selline lĂ€henemine vĂ”imaldab oluliselt vĂ€hendada sĂŒdamikus töötava filtreerimise koodi suurust ja viia kĂ”ik reeglite analĂŒĂŒsi ja protokollide töötlemise loogika kasutusruumi.

Peamised uuendused:

  • Toetatakse vahemike kasutamist ĂŒhendustes (concatenation, mÀÀratud aadresside ja portide kombinatsioonid, mis lihtsustavad vastavust). NĂ€iteks

    table ip foo {
    seata whitelist {
    tĂŒĂŒp ipv4_addr . ipv4_addr . inet_service
    lipud intervall
    elemendid = { 192.168.10.35-192.168.10.40 . 192.68.11.123-192.168.11.125 . 80 }
    }

    chain bar {
    tĂŒĂŒp filter hook prerouting prioriteet filter; poliitika drop;
    ip saddr . ip daddr . tcp dport @whitelist accept
    }
    }

  • Kogudes ja map-loendites on vĂ”imalik kasutada direktiivi 'typeof', mis mÀÀratleb elemendi vormi vastavuse korral.
    NĂ€iteks:

    table ip foo {
    seata whitelist {
    typeof ip saddr
    elemendid = { 192.168.10.35, 192.168.10.101, 192.168.10.135 }
    }

    chain bar {
    tĂŒĂŒp filter hook prerouting prioriteet filter; poliitika drop;
    ip daddr @whitelist accept
    }
    }

    table ip foo {
    map addr2mark {
    typeof ip saddr : meta mark
    elemendid = { 192.168.10.35 : 0x00000001, 192.168.10.135 : 0x00000002 }
    }
    }

  • Lisatud vĂ”imalus kasutada NAT-sideĂŒhendustes, mis vĂ”imaldab mÀÀrata aadressi ja porti NAT-muutuste mÀÀratlemisel map-loendite vĂ”i nimetatud kogumite alusel:

    nft add rule ip nat pre dnat ip addr . port to ip saddr map { 1.1.1.1 : 2.2.2.2 . 30 }

    nft add map ip nat destinations { type ipv4_addr . inet_service : ipv4_addr . inet_service \\; }
    nft add rule ip nat pre dnat ip addr . port to ip saddr . tcp dport map @destinations

  • Riistvara kiirenduse tugi, mis viib mĂ”ned filtrite toimingud vĂ”rkaartsele. Kiirendus aktiveeritakse utiliidi ethtool kaudu ("ethtool -K eth0 hw-tc-offload on"), seejĂ€rel aktiveeritakse see nftables'i pĂ”hiketis flagi "offload" abil. Linuxi tuuma 5.6 korral toimetatakse riistvara kiirenduse tugi pealkirja vĂ€ljade ja sissetuleva liidese kontrollimise vastetega, koos pakettide vastuvĂ”tmise, kĂ”rvaleheitmise (dup) ja edasi suunamise (fwd) toimingutega. Allpool olevas nĂ€ites kĂ”rvaldavad reeglid pakette, mis tulevad aadressilt 192.168.30.20, vĂ”rkaartsel tasemel, ilma pakettide edastamiseta tuumale:

    # cat file.nft
    table netdev x {
    chain y {
    type filter hook ingress device eth0 priority 10; flags offload;
    ip saddr 192.168.30.20 drop
    }
    }
    # nft -f file.nft

  • Parandatud veateadet reeglite viga asukohast.

    # nft delete rule ip y z handle 7
    Error: Reegli töötlemine ebaÔnnestus: Sellist faili vÔi katalooge ei leitud
    delete rule ip y z handle 7
    ^

    # nft delete rule ip x x handle 7
    Error: Reegli töötlemine ebaÔnnestus: Sellist faili vÔi katalooge ei leitud
    delete rule ip x x handle 7
    ^

    # nft delete table twst
    Error: Sellist faili vĂ”i katalooge ei leitud; kas mĂ”tlesite tabelit ñ€˜test’ perekonnas ip?
    delete table twst
    ^^^^

    Esimeses nĂ€ites on nĂ€idatud, et tabelit "y" ei ole sĂŒsteemis, teises, et kĂ€itaja "7" puudub, ja kolmandas, et antakse trĂŒkivea vihje tabeli nime sisestamisel.

  • Lisatud tugi slave-liidese kontrollimiseks, kasutades "meta sdif" vĂ”i "meta sdifname":

    
 meta sdifname vrf1 


  • Lisatud paremale vĂ”i vasakule nihkumise toiming. NĂ€iteks, et nihutada olemasolevat pakettide sildi vasakule 1 bitti ja seadistada madalam bitt 1:

    
 meta mark set meta mark lshift 1 or 0x1 


  • Rakendatud valik "-V", et kuvada pikendatud teave versiooni kohta.

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

  • KĂ€skude reavahetuse valikud peavad nĂŒĂŒd olema esitatud enne kĂ€sklusi. NĂ€iteks tuleb kirjutada "nft -a list ruleset", kuid "nft list ruleset -a" kĂ€ivitamine toob kaasa vea.

    Allikas: opennet.ru

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster