rilis filter paket nftables 0.9.3

diterbitkan pelepasan filter paket tabel nft 0.9.3, berkembang sebagai pengganti iptables, ip6table, arptables, dan ebtables dengan menyatukan antarmuka pemfilteran paket untuk IPv4, IPv6, ARP, dan jembatan jaringan. Paket nftables mencakup komponen filter paket yang berjalan di ruang pengguna, sedangkan pekerjaan tingkat kernel disediakan oleh subsistem nf_tables, yang telah menjadi bagian dari kernel Linux sejak rilis 3.13. Perubahan yang diperlukan agar rilis nftables 0.9.3 dapat berfungsi disertakan dalam cabang kernel Linux 5.5 yang akan datang.

Tingkat kernel hanya menyediakan antarmuka protokol-independen generik yang menyediakan fungsi dasar untuk mengekstraksi data dari paket, melakukan operasi data, dan kontrol aliran. Logika pemfilteran itu sendiri dan penangan khusus protokol dikompilasi ke dalam bytecode di ruang pengguna, setelah itu bytecode ini dimuat ke dalam kernel menggunakan antarmuka Netlink dan dieksekusi dalam mesin virtual khusus yang mengingatkan pada BPF (Berkeley Packet Filters). Pendekatan ini memungkinkan Anda untuk secara signifikan mengurangi ukuran kode pemfilteran yang berjalan di tingkat kernel dan memindahkan semua fungsi aturan penguraian dan logika untuk bekerja dengan protokol ke dalam ruang pengguna.

Inovasi utama:

  • Dukungan untuk mencocokkan paket berdasarkan waktu. Anda dapat menentukan rentang waktu dan tanggal di mana aturan akan dipicu, dan mengonfigurasi pemicuan pada setiap hari dalam seminggu. Juga menambahkan opsi baru "-T" untuk menampilkan waktu penting dalam hitungan detik.

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

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

    ct tanda rahasia mengatur tanda rahasia meta
    meta tanda rahasia setel tanda rahasia ct

  • Dukungan untuk daftar peta synproxy, memungkinkan Anda menentukan lebih dari satu aturan per backend.

    tabel ip foo {
    sinproksi https-sinproksi {
    ms 1460
    skala 7
    stempel waktu karung-perm
    }

    synproxy-sinproksi lainnya {
    ms 1460
    skala 5
    }

    rantai pra {
    ketik filter hook prerouting prioritas mentah; menerima kebijakan;
    tcp dport 8888 tcp flags dan notrack
    }

    batang rantai {
    tipe filter kait filter prioritas maju; penerimaan kebijakan;
    status ct tidak valid, nama synproxy tidak terlacak ip saddr map { 192.168.1.0/24 : β€œhttps-synproxy”, 192.168.2.0/24 : β€œother-synproxy” }
    }
    }

  • Kemampuan untuk secara dinamis menghapus elemen set dari aturan pemrosesan paket.

    nft tambahkan aturan ... hapus @set5 { ip6 saddr . ayah ip6}

  • Dukungan untuk pemetaan VLAN berdasarkan ID dan protokol yang ditentukan dalam metadata antarmuka jembatan jaringan;

    meta ibrpvid 100
    meta ibrvproto vlan

  • Opsi "-t" ("--terse") untuk mengecualikan elemen himpunan saat menampilkan aturan. Menjalankan "nft -t list ruleset" akan menghasilkan:

    tabel ip x {
    himpunan kamu {
    ketik ipv4_addr
    }
    }

    Dan dengan "aturan daftar nft"

    tabel ip x {
    himpunan kamu {
    ketik ipv4_addr
    elemen = { 192.168.10.2, 192.168.20.1,
    192.168.4.4, 192.168.2.34 }
    }
    }

  • Kemampuan untuk menentukan lebih dari satu perangkat dalam rantai netdev (hanya berfungsi dengan kernel 5.5) untuk menggabungkan aturan pemfilteran umum.

    tambahkan tabel netdev x
    tambahkan rantai netdev xy { \
    ketik perangkat masuknya kait filter = { eth0, eth1 } prioritas 0;
    }

  • Kemampuan untuk menambahkan deskripsi tipe data.

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

  • Kemampuan untuk membangun antarmuka CLI dengan perpustakaan linenoise, bukan libreadline.

    ./configure --dengan-cli=linenoise

Sumber: opennet.ru

Tambah komentar