nftables paketni filter 0.9.3 izdanje

objavljeno otpuštanje paketnog filtera nftables 0.9.3, koji se razvija kao zamjena za iptables, ip6table, arptables i ebtables objedinjavanjem interfejsa za filtriranje paketa za IPv4, IPv6, ARP i mrežne mostove. Paket nftables uključuje komponente filtera paketa koje se pokreću u korisničkom prostoru, dok rad na razini kernela osigurava podsistem nf_tables, koji je dio Linux kernela od izdanja 3.13. Promjene potrebne da bi nftables 0.9.3 izdanje funkcioniralo uključene su u nadolazeću granu kernela Linux 5.5.

Nivo kernela pruža samo generički interfejs nezavisan od protokola koji obezbeđuje osnovne funkcije za izdvajanje podataka iz paketa, izvođenje operacija sa podacima i kontrolu toka. Sama logika filtriranja i rukovaoci specifični za protokol se kompajliraju u bajtkod u korisničkom prostoru, nakon čega se ovaj bajt kod učitava u kernel pomoću Netlink interfejsa i izvršava u posebnoj virtuelnoj mašini koja podseća na BPF (Berkeley Packet Filters). Ovaj pristup vam omogućava da značajno smanjite veličinu koda za filtriranje koji radi na nivou kernela i premestite sve funkcije raščlanjivanja pravila i logike za rad sa protokolima u korisnički prostor.

Glavne inovacije:

  • Podrška za uparivanje paketa po vremenu. Možete definirati i vremenske i datumske raspone u kojima će se pravilo pokrenuti i konfigurirati okidanje za pojedine dane u sedmici. Također je dodana nova opcija "-T" za prikaz epohalnog vremena u sekundama.

    meta time \»2019-12-24 16:00\" — \»2020-01-02 7:00\"
    meta sat \"17:00\" - \"19:00\"
    meta dan \"pet\"

  • Podrška za oporavak i čuvanje SELinux oznaka (secmark).

    ct secmark postaviti meta secmark
    meta secmark set ct secmark

  • Podrška za liste synproxy mapa, omogućavajući vam da definirate više od jednog pravila po backendu.

    tablica ip foo {
    synproxy https-synproxy {
    mss 1460
    wscale 7
    vremenska oznaka sack-perm
    }

    synproxy other-synproxy {
    mss 1460
    wscale 5
    }

    lanac pre {
    tip filter kuka prerouting prioritet neobrađen; prihvatiti politiku;
    tcp dport 8888 tcp flags syn notrack
    }

    lanac {
    tip filter zakaka prioritetni filter naprijed; prihvatiti politiku;
    ct stanje nevažeće, nepraćeno ime sinproksija ip saddr mapa { 192.168.1.0/24 : “https-synproxy”, 192.168.2.0/24 : “other-synproxy” }
    }
    }

  • Mogućnost dinamičkog uklanjanja elemenata skupa iz pravila obrade paketa.

    nft dodaj pravilo ... izbriši @set5 { ip6 saddr . ip6 tata}

  • Podrška za mapiranje VLAN-a po ID-u i protokolu definisanom u metapodacima interfejsa mrežnog mosta;

    meta ibrpvid 100
    meta ibrvproto vlan

  • Opcija "-t" ("--tarse") za isključivanje elemenata skupova pri prikazivanju pravila. Pokretanje "nft -t list ruleset" će ispisati:

    tablica ip x {
    postaviti y {
    upišite ipv4_addr
    }
    }

    I sa "nft list rulesset"

    tablica ip x {
    postaviti y {
    upišite ipv4_addr
    elementi = { 192.168.10.2, 192.168.20.1,
    192.168.4.4, 192.168.2.34 }
    }
    }

  • Sposobnost specificiranja više od jednog uređaja u netdev lancima (radi samo sa kernelom 5.5) za kombinovanje uobičajenih pravila filtriranja.

    dodati tablicu netdev x
    dodaj lanac netdev x y { \
    tip filter hook ingress devices = { eth0, eth1 } prioritet 0;
    }

  • Mogućnost dodavanja opisa tipova podataka.

    #nft opisati ipv4_addr
    tip podataka ipv4_addr (IPv4 adresa) (bazni tip cijeli broj), 32 bita

  • Mogućnost izgradnje CLI interfejsa sa bibliotekom linenoise umjesto libreadline.

    ./configure --with-cli=linenoise

izvor: opennet.ru

Dodajte komentar