nftables packet filter 0.9.3 release

diterbitake release paket filter nftables 0.9.3, berkembang minangka panggantos kanggo iptables, ip6table, arptables lan ebtables dening manunggalaken antarmuka panyaring paket kanggo IPv4, IPv6, ARP lan jembatan jaringan. Paket nftables kalebu komponen filter paket sing mlaku ing ruang pangguna, dene karya tingkat kernel diwenehake dening subsistem nf_tables, sing wis dadi bagian saka kernel Linux wiwit dirilis 3.13. Owah-owahan sing dibutuhake kanggo rilis nftables 0.9.3 supaya bisa digunakake kalebu ing cabang kernel Linux 5.5 sing bakal teka.

Tingkat kernel mung nyedhiyakake antarmuka bebas protokol umum sing nyedhiyakake fungsi dhasar kanggo ngekstrak data saka paket, nindakake operasi data, lan kontrol aliran. Logika nyaring dhewe lan panangan khusus protokol dikompilasi dadi bytecode ing ruang pangguna, sawise bytecode iki dimuat menyang kernel nggunakake antarmuka Netlink lan dieksekusi ing mesin virtual khusus kaya BPF (Berkeley Packet Filters). Pendekatan iki ngidini sampeyan nyuda ukuran kode panyaring kanthi signifikan ing tingkat kernel lan mindhah kabeh fungsi aturan parsing lan logika kanggo nggarap protokol menyang ruang pangguna.

Inovasi utama:

  • Dhukungan kanggo cocog paket dening wektu. Sampeyan bisa nemtokake rentang wektu lan tanggal ing ngendi aturan bakal dipicu, lan ngatur pemicu ing dina-dina saben minggu. Uga ditambahake pilihan anyar "-T" kanggo nampilake wektu epochal ing detik.

    meta wektu \Β»2019-12-24 16:00\" β€” \Β»2020-01-02 7:00\"
    meta jam \"17:00\" - \"19:00\"
    meta dina \"Jum\"

  • Dhukungan kanggo mbalekake lan nyimpen tandha SELinux (secmark).

    ct secmark nyetel meta secmark
    meta secmark nyetel ct secmark

  • Dhukungan kanggo dhaptar peta synproxy, ngidini sampeyan nemtokake luwih saka siji aturan saben backend.

    tabel ip foo {
    synproxy https-synproxy {
    ms 1460
    skala 7
    timestamp karung-perm
    }

    synproxy other-synproxy {
    ms 1460
    skala 5
    }

    rantai pra {
    jinis Filter pancing prerouting prioritas mentahan; kawicaksanan nampa;
    tcp dport 8888 tcp flag syn notrack
    }

    rantai {
    jinis pancing pancing saringan prioritas maju; kawicaksanan nampa;
    negara ct ora sah, jeneng synproxy ora dilacak peta saddr ip {192.168.1.0/24 : "https-synproxy", 192.168.2.0/24 : "synproxy liyane" }
    }
    }

  • Kemampuan kanggo mbusak unsur set saka aturan pangolahan paket kanthi dinamis.

    nft nambah aturan ... mbusak @set5 { ip6 saddr. ip6 dadr}

  • Dhukungan kanggo pemetaan VLAN kanthi ID lan protokol sing ditetepake ing metadata antarmuka jembatan jaringan;

    meta ibrpvid 100
    meta ibrvproto vlan

  • Opsi "-t" ("--terse") kanggo ngilangi unsur set set nalika nampilake aturan. Mlaku "nft -t list ruleset" bakal ngasilake:

    tabel ip x {
    atur y {
    ketik ipv4_addr
    }
    }

    Lan karo "nft dhaptar aturan"

    tabel ip x {
    atur y {
    ketik ipv4_addr
    unsur = {192.168.10.2, 192.168.20.1,
    192.168.4.4, 192.168.2.34 }
    }
    }

  • Kemampuan kanggo nemtokake luwih saka siji piranti ing jaringan netdev (mung dianggo karo kernel 5.5) kanggo gabungke aturan nyaring umum.

    nambah tabel netdev x
    tambah rantai netdev xy {\
    jinis panyaring pancing ingress piranti = { eth0, eth1} prioritas 0;
    }

  • Kemampuan kanggo nambah deskripsi jinis data.

    #nft nggambarake ipv4_addr
    tipe data ipv4_addr (alamat IPv4) (integer tipe dasar), 32 bit

  • Kemampuan kanggo mbangun antarmuka CLI karo perpustakaan linenoise tinimbang libreadline.

    ./configure --with-cli=linenoise

Source: opennet.ru

Add a comment