Nftables pakettide filter 0.9.2 väljaanne

On toimunud paketifiltri väljaanne nftables 0.9.2, mis areneb iptables, ip6tables, arptables ja ebtables asendajana, ühtlustades pakettide filtreerimise liidesid IPv4, IPv6, ARP ja võrgu sildade jaoks. Paket nftables sisaldab kasutajaruumi töötavaid paketifiltri komponente, samas kui tuuma tasemel tagab töö nf_tables alamsüsteem, mis on osa Linuxi tuumast alates versioonist 3.13. Nftables 0.9.2 tööks vajalikud muudatused on lisatud Linuxi tuumasse 5.3.

Tuuma tasandil pakutakse vaid üldist liidest, mis ei ole sõltuv konkreetsetest protokollidest ning mis pakub baasfunktsioone andmete paketist väljavõtmiseks, andmetega töötamiseks ja voogude haldamiseks. Filtrimise loogika ja protokollispetsiifilised töötlejad kompileeritakse byte-koodiks kasutaja ruumis, seejärel laaditakse see byte-kood tuumasse Netlinki liidese abil ja seda täidetakse spetsiaalses virtuaalses masinas, mis meenutab BPF-i (Berkeley Packet Filters). Selline lähenemine võimaldab märkimisväärselt vähendada tuumal töötava filtreerimiskoodi suurust ning viia kõik reeglite analüüsi ja protokollidega töötamise funktsioonid kasutaja ruumi.

Põhilised uuendused:

  • Võime kontrollida transporditase paketi pealkirja pordinumbrit sõltumata 4. taseme protokollitüübist:

    add rule x y ip protocol { tcp, udp } th dport 53

  • Toetab eluea taastamise võimalust elementide kogumis:

    add element ip x y { 1.1.1.1 timeout 30s expires 15s }

  • Võimalus kontrollida IPv4 pakettide eraldi valikuid (lsrr, rr, ssrr ja ra):

    add rule x y ip option rr exists drop

    Marsruutimisvalikute puhul on võimalik kontrollida väljade type, ptr, length ja addr:

    lisage reegel x y ip valik rr tüüp 1 langeta

  • Avaldustes on nüüd lubatud määrata võrgueeliseid ja aadresside vahemikke:

    iifname ens3 snat to 10.0.0.0/28
    iifname ens3 snat to 10.0.0.1-10.0.0.15

  • Tugiteenuste muutujate kasutamine ahelate määratlemisel:

    define default_policy = accept
    add chain ip foo bar { type filter hook input priority $default_policy }

  • Ahela prioriteeti saab nüüd määrata nii numbriliselt kui ka sümboolselt:

    define prio = filter
    define prionum = 10
    define prioffset = «filter — 150»

    add table ip foo
    add chain ip foo bar { type filter hook input priority $prio; }
    add chain ip foo ber { type filter hook input priority $prionum; }
    add chain ip foo bor { type filter hook input priority $prioffset; }

  • On rakendatud synproxy moduuli tugi. Näiteks, et kaitsta TCP-porti 8888 synproxy abil, saab kasutada reeglite komplekti:

    table ip x {
    chain y {
    type filter hook prerouting priority raw; policy accept;
    tcp dport 8888 tcp flags syn notrack
    }

    chain z {
    type filter hook forward priority filter; policy accept;
    tcp dport 8888 ct state invalid,untracked synproxy mss 1460 \\
    wscale 7 timestamp sack-perm ct state invalid drop
    }
    }

  • Koosolekute tabelis conntrack seostatud oodatud täiendavate ühenduste määramine, mida kasutatakse mitme ühenduse loomist nõudvates protokollides ja stsenaariumides, on nüüd võimalik määrata poliitikaid läbi vaikimisi reeglite kogumite. Näiteks, et määrata oodatavad TCP port 8888 ühenduste järel järgmised ühendused port 5432, saab määrata järgmised reeglid:

    tabel x {
    ct expectation myexpect {
    protokoll tcp
    dport 5432
    timeout 1h
    size 12
    l3proto ip
    }

    ahel input {
    tüüp filter hook input priority 0;
    ct state new tcp dport 8888 ct expectation set myexpect
    ct state established,related counter accept
    }
    }

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster