keluaran penapis paket nftables 0.9.3

diterbitkan pelepasan penapis paket nftables 0.9.3, membangun sebagai pengganti untuk iptables, ip6table, arptables dan ebtables dengan menyatukan antara muka penapisan paket untuk IPv4, IPv6, ARP dan jambatan rangkaian. Pakej nftables termasuk komponen penapis paket yang dijalankan dalam ruang pengguna, manakala kerja peringkat kernel disediakan oleh subsistem nf_tables, yang telah menjadi sebahagian daripada kernel Linux sejak keluaran 3.13. Perubahan yang diperlukan untuk keluaran nftables 0.9.3 untuk berfungsi disertakan dalam cawangan kernel Linux 5.5 yang akan datang.

Tahap kernel hanya menyediakan antara muka bebas protokol generik yang menyediakan fungsi asas untuk mengekstrak data daripada paket, melaksanakan operasi data dan kawalan aliran. Logik penapisan itu sendiri dan pengendali khusus protokol disusun menjadi kod bait dalam ruang pengguna, selepas itu kod bait ini dimuatkan ke dalam kernel menggunakan antara muka Netlink dan dilaksanakan dalam mesin maya khas yang mengingatkan BPF (Penapis Paket Berkeley). Pendekatan ini membolehkan anda mengurangkan dengan ketara saiz kod penapisan yang berjalan pada peringkat kernel dan memindahkan semua fungsi peraturan dan logik penghuraian untuk bekerja dengan protokol ke dalam ruang pengguna.

Inovasi utama:

  • Sokongan untuk memadankan paket mengikut masa. Anda boleh menentukan kedua-dua julat masa dan tarikh di mana peraturan akan dicetuskan dan mengkonfigurasi pencetusan pada hari individu dalam seminggu. Juga menambah pilihan baharu "-T" untuk memaparkan masa epokal dalam beberapa saat.

    masa meta \Β»2019-12-24 16:00\" β€” \Β»2020-01-02 7:00\"
    jam meta \"17:00\" - \"19:00\"
    hari meta \"Jumaat\"

  • Sokongan untuk memulihkan dan menyimpan tanda SELinux (tanda detik).

    ct secmark menetapkan meta secmark
    meta secmark set ct secmark

  • Sokongan untuk senarai peta synproxy, membolehkan anda menentukan lebih daripada satu peraturan bagi setiap hujung belakang.

    jadual ip foo {
    synproxy https-synproxy {
    ms 1460
    skala 7
    cap masa sack-perm
    }

    synproxy other-synproxy {
    ms 1460
    skala 5
    }

    rantai pra {
    jenis cangkuk penapis keutamaan pralaluan mentah; penerimaan dasar;
    tcp dport 8888 tcp bendera syn notrack
    }

    bar rantai {
    jenis penapis cangkuk penapis keutamaan hadapan; penerimaan dasar;
    keadaan ct tidak sah, tidak dijejaki nama synproxy ip saddr map { 192.168.1.0/24 : β€œhttps-synproxy”, 192.168.2.0/24 : β€œother-synproxy” }
    }
    }

  • Keupayaan untuk mengalih keluar elemen set secara dinamik daripada peraturan pemprosesan paket.

    nft add rule ... delete @set5 { ip6 saddr . ip6 dadr}

  • Sokongan untuk pemetaan VLAN mengikut ID dan protokol yang ditakrifkan dalam metadata antara muka jambatan rangkaian;

    meta ibrpvid 100
    meta ibrvproto vlan

  • Pilihan "-t" ("--terse") untuk mengecualikan elemen set set apabila memaparkan peraturan. Menjalankan "nft -t list ruleset" akan mengeluarkan:

    jadual ip x {
    set y {
    taip ipv4_addr
    }
    }

    Dan dengan "set peraturan senarai nft"

    jadual ip x {
    set y {
    taip ipv4_addr
    elemen = { 192.168.10.2, 192.168.20.1,
    192.168.4.4, 192.168.2.34 }
    }
    }

  • Keupayaan untuk menentukan lebih daripada satu peranti dalam rangkaian netdev (hanya berfungsi dengan kernel 5.5) untuk menggabungkan peraturan penapisan biasa.

    tambah jadual netdev x
    tambah rantai netdev xy { \
    taip peranti kemasukan cangkuk penapis = { eth0, eth1 } keutamaan 0;
    }

  • Keupayaan untuk menambah penerangan jenis data.

    # nft terangkan ipv4_addr
    datatype ipv4_addr (alamat IPv4) (integer jenis asas), 32 bit

  • Keupayaan untuk membina antara muka CLI dengan perpustakaan linenoise dan bukannya libreadline.

    ./configure --with-cli=linenoise

Sumber: opennet.ru

Tambah komen