keluaran penapis paket nftables 1.0.6

Keluaran penapis paket nftables 1.0.6 telah diterbitkan, menyatukan antara muka penapisan paket untuk IPv4, IPv6, ARP dan jambatan rangkaian (bertujuan untuk menggantikan iptables, ip6table, arptables dan ebtables). 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. Tahap kernel hanya menyediakan antara muka bebas protokol generik yang menyediakan fungsi asas untuk mengekstrak data daripada paket, melaksanakan operasi data dan kawalan aliran.

Peraturan penapisan 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 kernel 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.

Perubahan utama:

  • Pengoptimum peraturan, dipanggil apabila pilihan "-o/β€”optimumkan" ditentukan, mempunyai pembungkusan automatik peraturan dengan menggabungkannya dan menukarnya ke dalam peta dan senarai set. Contohnya, rules # cat ruleset.nft table ip x { chain y { type filter hook input priority filter; kejatuhan dasar; meta iifname eth1 ip saddr 1.1.1.1 ip daddr 2.2.2.3 menerima meta iifname eth1 ip saddr 1.1.1.2 ip daddr 2.2.2.4 menerima meta iifname eth1 ip saddr 1.1.1.2 ip metabdr i2.2.3.0 .24 ip daddr 1-1.1.1.2 accept meta iifname eth2.2.4.0 ip saddr 2.2.4.10 ip daddr 2 accept } } selepas melaksanakan "nft -o -c -f ruleset.nft" akan ditukar kepada yang berikut: ruleset nft:1.1.1.3:2.2.2.5-4: meta iifname eth17 ip saddr 74 ip daddr 1 terima ruleset.nft:1.1.1.1:2.2.2.3-5: meta iifname eth17 ip saddr 74 ip daddr 1 accept ruleset. : 1.1.1.2:2.2.2.4-6: meta iifname eth17 ip saddr 77 ip daddr 1/1.1.1.2 accept ruleset.nft:2.2.3.0:24-7: meta iifname eth17 ip saddr 83 ip daddr 1-1.1.1.2. terima ruleset.nft:2.2.4.0:2.2.4.10-8: meta iifname eth17 ip saddr 74 ip daddr 2 accept into: iifname . ip saddr. ip daddr { eth1.1.1.3 . 2.2.2.5. 1, eth1.1.1.1 . 2.2.2.3. 1, eth1.1.1.2 . 2.2.2.4. 1/1.1.1.2, eth2.2.3.0 . 24. 1-1.1.1.2, eth2.2.4.0. 2.2.4.10. 2 } terima
  • Pengoptimum juga boleh menukar peraturan yang sudah menggunakan senarai set ringkas kepada bentuk yang lebih padat, contohnya peraturan: # cat ruleset.nft table ip filter { chain input { type filter hook input priority filter; kejatuhan dasar; iifname β€œlo” accept ct state established, related accept comment β€œDalam trafik kami berasal, kami percaya” iifname β€œenp0s31f6” ip saddr { 209.115.181.102, 216.197.228.230 } ip daddr 10.0.0.149 accept 123 iifname "enp32768s65535f0" ip saddr { 31, 6 } ip daddr 64.59.144.17 udp sport 64.59.150.133 udp dport 10.0.0.149-53 menerima } } selepas executing peraturan -nfft. : ruleset.nft:32768:65535-6: iifname "enp22s149f0" ip saddr { 31, 6 } ip daddr 209.115.181.102 udp sport 216.197.228.230:10.0.0.149 dftport 123: 32768 udp sport - 65535: iifname "enp7s22f143" ip saddr { 0, 31 } ip daddr 6 udp sport 64.59.144.17 udp dport 64.59.150.133-10.0.0.149 accept into: iifname . ip saddr. ip dadr. sukan udp. udp dport { enp53s32768f65535 . 0. 31. 6. 209.115.181.102-10.0.0.149, enp123s32768f65535. 0. 31. 6. 216.197.228.230-10.0.0.149, enp123s32768f65535. 0. 31. 6. 64.59.144.17-10.0.0.149, enp53s32768f65535. 0. 31. 6. 64.59.150.133-10.0.0.149 } terima
  • Selesai masalah dengan penjanaan bytecode untuk menggabungkan selang yang menggunakan jenis dengan susunan bait yang berbeza, seperti IPv4 (urutan bait rangkaian) dan tanda meta (urutan bait sistem). jadual ip x { peta w { jenis ip saddr . tanda meta : bendera keputusan elemen pembilang selang = { 127.0.0.1-127.0.0.4 . 0x123434-0xb00122 : terima, 192.168.0.10-192.168.1.20 . 0x0000aa00-0x0000aaff : terima, } } rantai k { penapis keutamaan input cangkuk penapis jenis; kejatuhan dasar; ip saddr. tanda meta vmap @w } }
  • Perbandingan protokol yang jarang berlaku apabila menggunakan ungkapan mentah, contohnya: meta l4proto 91 @th,400,16 0x0 accept
  • Masalah dengan mendayakan peraturan pada selang waktu telah diselesaikan: masukkan peraturan xy tcp sport { 3478-3497, 16384-16387 } penerimaan balas
  • API JSON telah dipertingkatkan untuk menyertakan sokongan untuk ungkapan dalam senarai set dan peta.
  • Sambungan kepada perpustakaan python nftables membenarkan pemuatan set peraturan untuk diproses dalam mod pengesahan ("-c") dan menambah sokongan untuk definisi luaran pembolehubah.
  • Menambah ulasan dibenarkan dalam elemen senarai set.
  • Had kadar bait membenarkan menentukan nilai sifar.

Sumber: opennet.ru

Tambah komen