Utgivning av nftables paketfilter 0.9.4

Publicerad utgivning av paketfilter nftables 0.9.4, som utvecklas som en ersÀttning för iptables, ip6tables, arptables och ebtables genom att förena grÀnssnitten för paketfiltrering för IPv4, IPv6, ARP och nÀtverksbryggor. Paketet nftables inkluderar komponenter av paketfiltern som arbetar i anvÀndarrummet, medan kÀrnnivÄns arbete tillhandahÄlls av nf_tables subsystemet, som ingÄr i Linux-kÀrnan sedan version 3.13. NödvÀndiga Àndringar för att stödja nftables 0.9.4 ingÄr i en kommande kÀrngren Linux 5.6.

PÄ kÀrnnivÄ tillhandahÄlls endast ett gemensamt grÀnssnitt, oberoende av specifik protokoll och ger grundlÀggande funktioner för att extrahera data frÄn paket, utföra operationer med data och kontrollera flödet. Regler för filtrering och protokollspecifika behandlare kompileras direkt till bytekod i anvÀndarrummet, varefter denna bytekod laddas in i kÀrnan via Netlink-grÀnssnittet och utförs i kÀrnan i en speciell virtuell maskin som liknar BPF (Berkeley Packet Filters). Detta tillvÀgagÄngssÀtt möjliggör en betydande minskning av storleken pÄ filtreringskoden som körs pÄ kÀrnnivÄ och flyttar alla funktioner för reglerdjup och logik av protokoll till anvÀndarrummet.

Huvudsakliga nyheter:

  • Stöd för intervall i sammanfogningar (concatenation, specifika adresser och portbindningar som förenklar matchning). Till exempel, för en uppsĂ€ttning "whitelist", dĂ€r elementen Ă€r en sammanfogning, kommer flaggan "interval" att ange att uppsĂ€ttningen kan inkludera intervall i sammanfogningen (för sammanfogningen "ipv4_addr . ipv4_addr . inet_service" kunde man tidigare ange exakta matchningar sĂ„som "192.168.10.35 . 192.68.11.123 . 80", men nu kan man ange adressgrupper "192.168.10.35-192.168.10.40 . 192.68.11.123-192.168.11.125 . 80"):

    table ip foo {
    set whitelist {
    type ipv4_addr . ipv4_addr . inet_service
    flags interval
    elements = { 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; policy drop;
    ip saddr . ip daddr . tcp dport @whitelist accept
    }
    }

  • I uppsĂ€ttningar och map-lists finns möjlighet att anvĂ€nda direktivet "typeof", som definierar formatet för ett element vid matchning.
    Till exempel:

    table ip foo {
    set whitelist {
    typeof ip saddr
    elements = { 192.168.10.35, 192.168.10.101, 192.168.10.135 }
    }

    chain bar {
    type filter hook prerouting priority filter; policy drop;
    ip daddr @whitelist accept
    }
    }

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

  • Möjlighet till anvĂ€ndning av sammanfogningar i NAT-bindningar har lagts till, vilket möjliggör angivande av adress och port vid definiering av NAT-transformationer baserat pĂ„ map-lists eller namngivna uppsĂ€ttningar:

    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

  • Stöd för hĂ„rdvaruacceleration genom att överföra vissa filtreringsoperationer till nĂ€tverkskortet. Acceleration aktiveras via verktyget ethtool ("ethtool -K eth0 hw-tc-offload on"), varefter det aktiveras i nftables för huvudkedjan med hjĂ€lp av flaggan "offload". Med Linux-kĂ€rnan 5.6 stöds hĂ„rdvaruacceleration för fĂ€ltmatchning och inkommande grĂ€nssnittskontroll i kombination med mottagning, utkastning, kopiering (dup) och omdirigering (fwd) av paket. I exemplet nedan utförs utkastning av paket som kommer frĂ„n adressen 192.168.30.20 pĂ„ nivĂ„ av nĂ€tverkskortet, utan att paket skickas till kĂ€rnan:

    # 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

  • FörbĂ€ttrad felmeddelande om platsen för ett regelbrott.

    # nft delete rule ip y z handle 7
    Error: Could not process rule: No such file or directory
    delete rule ip y z handle 7
    ^

    # nft delete rule ip x x handle 7
    Error: Could not process rule: No such file or directory
    delete rule ip x x handle 7
    ^

    # nft delete table twst
    Error: No such file or directory; did you mean table ‘test’ in family ip?
    delete table twst
    ^^^^

    I det första exemplet visas att tabellen "y" saknas i systemet, i det andra att bearbetaren "7" saknas, och i det tredje att en stavningskontroll görs vid inmatning av tabellnamnet.

  • Tillagd stöd för att kontrollera slave-grĂ€nssnittet genom att ange "meta sdif" eller "meta sdifname":

    
 meta sdifname vrf1 


  • Tillagd stöd för bitvis förflyttning Ă„t höger eller vĂ€nster. Till exempel, för att flytta en befintlig pakettagg Ă„t vĂ€nster med 1 bit och sĂ€tta den minsta biten till 1:

    
 meta mark set meta mark lshift 1 or 0x1 


  • Implementerat alternativet "-V" för att visa utökad versioninformation.

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

  • Alternativen för kommandoraden mĂ„ste nu anges före kommandona. Till exempel, mĂ„ste "nft -a list ruleset" anges, medan att köra "nft list ruleset -a" kommer att ge ett felmeddelande.

    KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster