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

Bộ lọc gói nftables 0.9.9 đã được phát hành. 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 mục đích thay thế cho iptables, ip6table, arptables và ebtables). Thư viện libnftnl 1.2.0 đi kèm, cung cấp API cấp thấp để tương tác với hệ thống con nf_tables, cũng đã được phát hành đồng thời. Các thay đổi cần thiết cho nftables 0.9.9 đã được tích hợp vào nhân hệ điều hành. Linux 5.13-rc1.

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

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

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

  • Khả năng di chuyển quá trình xử lý theo luồng sang phía bộ điều hợp mạng đã được triển khai, được bật bằng cờ 'giảm tải'. Flowtable là một cơ chế để tối ưu hóa đường dẫn chuyển hướng gói, trong đó việc chuyển tiếp hoàn chỉnh tất cả các chuỗi xử lý quy tắc chỉ được áp dụng cho gói đầu tiên và tất cả các gói khác trong luồng được chuyển tiếp trực tiếp. bảng ip toàn cầu { flowtable f { hook bộ lọc ưu tiên xâm nhập + 1 thiết bị = { lan3, lan0, wan } giảm tải cờ } chuyển tiếp chuỗi { loại bộ lọc bộ lọc ưu tiên chuyển tiếp móc; chính sách chấp nhận; giao thức ip { tcp, udp } flow add @f } chain post { type nat hook postrouting bộ lọc ưu tiên; chính sách chấp nhận; oifname "wan" hóa trang } }
  • Đã thêm hỗ trợ để gắn cờ chủ sở hữu vào bảng để đảm bảo quy trình chỉ sử dụng bảng đó. Khi một quá trình kết thúc, bảng liên kết với nó sẽ tự động bị xóa. Thông tin về quy trình được hiển thị trong kết xuất quy tắc dưới dạng nhận xét: table ip x { # progname nft flags owner chain y { type filter hook input bộ lọc ưu tiên; chính sách chấp nhận; gói truy cập 1 byte 309 } }
  • Đã thêm hỗ trợ cho thông số kỹ thuật IEEE 802.1ad (xếp chồng Vlan hoặc QinQ), xác định phương tiện thay thế nhiều thẻ Vlan thành một khung Ethernet duy nhất. Ví dụ: để kiểm tra loại khung Ethernet bên ngoài 8021ad và vlan id=342, bạn có thể sử dụng cấu trúc ... ether type 802.1ad vlan id 342 để kiểm tra loại khung Ethernet bên ngoài 8021ad/vlan id=1, lồng nhau 802.1 q/vlan id=2 và hơn nữa đóng gói gói IP: ... loại ether 8021ad vlan id 1 vlan loại 8021q vlan id 2 vlan loại bộ đếm ip
  • Đã thêm hỗ trợ để quản lý tài nguyên bằng cách sử dụng cgroups phân cấp thống nhất v2. Sự khác biệt chính giữa cgroups v2 và v1 là việc sử dụng hệ thống phân cấp cgroups chung cho tất cả các loại tài nguyên, thay vì các hệ thống phân cấp riêng biệt để phân bổ tài nguyên CPU, để điều chỉnh mức tiêu thụ bộ nhớ và cho I/O. Ví dụ: để kiểm tra xem tổ tiên của socket ở cấp độ đầu tiên cgroupv2 có khớp với mặt nạ “system.slice” hay không, bạn có thể sử dụng cấu trúc: ... socket cgroupv2 cấp 1 “system.slice”
  • Đã thêm khả năng kiểm tra các thành phần của gói SCTP (chức năng cần thiết cho hoạt động sẽ xuất hiện trong nhân hệ điều hành). Linux 5.14). Ví dụ, để kiểm tra xem một gói tin có chứa một khối dữ liệu với kiểu 'data' và trường 'type' hay không: … sctp chunk data exists … sctp chunk data type 0
  • Việc thực hiện thao tác tải quy tắc đã được tăng tốc khoảng hai lần bằng cách sử dụng cờ “-f”. Đầu ra của danh sách các quy tắc cũng đã được tăng tốc.
  • Một biểu mẫu nhỏ gọn để kiểm tra xem các bit cờ có được thiết lập hay không được cung cấp. Ví dụ, để kiểm tra xem các bit trạng thái snat và dnat có được thiết lập hay không, bạn có thể chỉ định: ... ct status ! snat,dnat để kiểm tra xem bit đồng bộ có được đặt trong bitmask syn,ack: ... tcp flags syn / syn,ack để kiểm tra xem các bit vây và bit đầu tiên không được đặt trong bitmask syn,ack,fin,rst: ... cờ tcp ! = fin,rst / syn,ack,fin,rst
  • Cho phép từ khóa "phán quyết" trong định nghĩa typeof tập hợp/bản đồ: thêm bản đồ xm { typeof iifname . giao thức ip dport : phán quyết ;}

Nguồn: opennet.ru

Mua dịch vụ lưu trữ đáng tin cậy cho các trang web có bảo vệ DDoS, máy chủ VPS VDS 🔥 Mua dịch vụ hosting website đáng tin cậy với bảo vệ DDoS, máy chủ VPS VDS | ProHoster