phát hành bộ lọc gói nftables 1.0.2

Bản phát hành bộ lọc gói nftables 1.0.2 đã được xuất bản, thống nhất các giao diện lọc gói cho IPv4, IPv6, ARP và các cầu nối mạng (nhằm thay thế iptables, ip6table, arptables và ebtables). Những thay đổi cần thiết để bản phát hành nftables 1.0.2 hoạt động được bao gồm trong nhân Linux 5.17-rc.

Gói nftables bao gồm các thành phần bộ lọc gói chạy trong không gian người dùng, trong khi công việc ở cấp độ kernel được cung cấp bởi hệ thống con nf_tables, vốn là một phần của nhân Linux kể từ bản phát hành 3.13. Cấp độ kernel chỉ cung cấp một giao diện chung độc lập với giao thức, cung cấp các chức năng cơ bản để trích xuất dữ liệu từ các gói, thực hiện các hoạt động dữ liệu và kiểm soát luồng.

Bản thân các quy tắc lọc và trình xử lý dành riêng cho giao thức được biên dịch thành mã byte không gian người dùng, sau đó mã byte này được tải vào nhân bằng giao diện Netlink và được thực thi trong nhân trong một máy ảo đặc biệt giống như BPF (Bộ lọc gói Berkeley). Cách tiếp cận này giúp giảm đáng kể kích thước của mã lọc chạy ở cấp hạt nhân và di chuyển tất cả các chức năng của quy tắc phân tích cú pháp và logic làm việc với các giao thức vào không gian người dùng.

Những đổi mới chính:

  • Chế độ tối ưu hóa quy tắc đã được thêm, được bật bằng tùy chọn "-o" ("--optimize") mới, có thể được kết hợp với tùy chọn "--check" để kiểm tra và tối ưu hóa các thay đổi đối với tệp bộ quy tắc mà không thực sự tải nó . Tối ưu hóa cho phép bạn kết hợp các quy tắc tương tự, ví dụ: các quy tắc: meta iifname eth1 ip saddr 1.1.1.1 ip Daddr 2.2.2.3 Chấp nhận meta iifname eth1 ip Saddr 1.1.1.2 ip Daddr 2.2.2.5 Chấp nhận ip Saddr 1.1.1.1 IP Daddr 2.2.2.2 .2.2.2.2 chấp nhận ip saddr 3.3.3.3 ip Daddr XNUMX thả

    sẽ được kết hợp thành meta iifname . ip saddr. ip chadr { eth1 . 1.1.1.1. 2.2.2.3, eth1 . 1.1.1.2. 2.2.2.5 } chấp nhận ip saddr . ip Daddr vmap { 1.1.1.1 . 2.2.2.2 : chấp nhận, 2.2.2.2 . 3.3.3.3 : thả }

    Ví dụ sử dụng: # nft -c -o -f Ruleset.test Hợp nhất: Ruleset.nft:16:3-37: ip Daddr 192.168.0.1 bộ đếm chấp nhận Ruleset.nft:17:3-37: ip Daddr 192.168.0.2 bộ đếm chấp nhận Ruleset.nft:18:3-37: ip Daddr 192.168.0.3 bộ đếm chấp nhận vào: ip Daddr { 192.168.0.1, 192.168.0.2, 192.168.0.3 } bộ đếm gói 0 byte 0 chấp nhận

  • Danh sách tập hợp triển khai khả năng chỉ định các tùy chọn ip và tcp, cũng như các đoạn sctp: set s5 { typeof ip option ra value Elements = { 1, 1024 } } set s7 { typeof sctp chunk init num-inbound-streams Elements = { 1, 4 } } chuỗi c5 { ip option ra value @s5 chấp nhận } chuỗi c7 { sctp chunk init num-inbound-streams @s7 chấp nhận }
  • Đã thêm hỗ trợ cho các tùy chọn TCP fastopen, md5sig và mptcp.
  • Đã thêm hỗ trợ cho việc sử dụng loại phụ mp-tcp trong ánh xạ: tùy chọn tcp mptcp subtype 1
  • Cải thiện mã lọc phía kernel.
  • Flowtable hiện có hỗ trợ đầy đủ cho định dạng JSON.
  • Khả năng sử dụng hành động “từ chối” trong hoạt động khớp khung Ethernet đã được cung cấp. ether saddr aa:bb:cc:dd:ee:ff ip Daddr 192.168.0.1 từ chối

Nguồn: opennet.ru

Thêm một lời nhận xét