nftables paketų filtro išleidimas 1.0.1

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

Į paketą nftables yra paketų filtrų komponentai, kurie veikia vartotojo erdvėje, o branduolio lygio darbą užtikrina nf_tables posistemis, kuris yra Linux branduolio dalis nuo 3.13 leidimo. Branduolio lygis suteikia tik bendrąją nuo protokolo nepriklausomą sąsają, kuri suteikia pagrindines funkcijas duomenims iš paketų išgauti, duomenų operacijoms atlikti ir srauto valdymui.

Pačios filtravimo taisyklės ir specifiniams protokolams skirtos tvarkyklės yra sukompiliuojamos į vartotojo erdvės baitinį kodą, po kurio šis baito kodas įkeliamas į branduolį naudojant Netlink sąsają ir vykdomas branduolyje specialioje virtualioje mašinoje, primenančioje BPF (Berkeley Packet Filters). Šis metodas leidžia žymiai sumažinti branduolio lygiu veikiančio filtravimo kodo dydį ir perkelti visas analizavimo taisyklių funkcijas bei darbo su protokolais logiką į vartotojo erdvę.

Pagrindinės naujovės:

  • Сокращено потребление памяти при загрузке больших 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

Šaltinis: opennet.ru

Добавить комментарий