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

Опубликован выпуск пакетного фильтра nftables 1.0.1, унифицирующего интерфейсы фильтрации пакетов для IPv4, IPv6, ARP и сетевых мостов (нацелен на замену iptables, ip6table, arptables и ebtables). Необходимые для работы выпуска nftables 1.0.1 изменения включены в состав ядра Linux 5.16-rc1.

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:

  • Сокращено потребление памяти при загрузке больших set- и map-списков.
  • Ускорена перезагрузка set- и map-списков.
  • Ускорен вывод избранных таблиц и цепочек в больших наборах правил. Например, время выполнения команды «nft list ruleset» для вывода набора правил, насчитывающего 100 тысяч строк, составляет 3.049 секунды, а при выводе только таблиц nat и filter («nft list table nat», «nft list table filter») сокращается до 1.969 и 0.697 секунд.
  • Ускорено выполнение запросов с опцией «—terse» при обработке правил с большими set- и map-списками.
  • Предоставлена возможность фильтрации трафика из цепочки «egress», обрабатываемой на том же уровне, что egress-обработчик в цепочке netdev (hook egress), т.е. на стадии когда драйвер получает пакет от сетевого стека ядра. table netdev filter { chain egress { type filter hook egress devices = { eth0, eth1 } priority 0; meta priority set ip saddr map { 192.168.10.2 : abcd:2, 192.168.10.3 : abcd:3 } } }
  • Разрешено сопоставление и изменение байтов в заголовке и содержимом пакета по заданному смещению. # nft add rule x y @ih,32,32 0x14000000 counter # nft add rule x y @ih,32,32 set 0x14000000 counter

Nguồn: opennet.ru

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