Нусхаи филтри бастаи nftables 1.0.2

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

Бастаи nftables ҷузъҳои филтри бастаҳоро дар бар мегирад, ки дар фазои корбар кор мекунанд, дар ҳоле ки кори сатҳи ядро ​​аз ҷониби зерсистемаи nf_tables таъмин карда мешавад, ки аз замони нашри 3.13 қисми ядрои Linux мебошад. Сатҳи ядро ​​​​танҳо интерфейси мустақили протоколро таъмин мекунад, ки вазифаҳои асосиро барои истихроҷи додаҳо аз пакетҳо, иҷрои амалиёти додаҳо ва назорати ҷараён таъмин мекунад.

Қоидаҳои филтркунӣ ва коркардкунандагони мушаххаси протокол дар фазои корбар ба байткод тартиб дода мешаванд, ки баъд аз он ин байт код бо истифода аз интерфейси Netlink ба ядро ​​бор карда мешавад ва дар ядро ​​дар мошини махсуси виртуалӣ, ки BPF-ро (Беркли Пакет Филтрҳо) ба ёд меорад, иҷро мешавад. Ин равиш ба шумо имкон медиҳад, ки андозаи коди филтркуниро, ки дар сатҳи ядро ​​кор мекунад, хеле кам кунед ва тамоми функсияҳои қоидаҳои таҳлил ва мантиқи кор бо протоколҳоро ба фазои корбар интиқол диҳед.

Навовариҳои асосӣ:

  • Добавлен режим оптимизации правил, включаемый при помощи новой опции «-o» («—optimize»), которую можно комбинировать с опцией «—check» для проверки и оптимизации изменений в файле с набором правил без его фактической загрузки. Оптимизация позволяет объединять похожие правила, например, правила: meta iifname eth1 ip saddr 1.1.1.1 ip daddr 2.2.2.3 accept meta iifname eth1 ip saddr 1.1.1.2 ip daddr 2.2.2.5 accept ip saddr 1.1.1.1 ip daddr 2.2.2.2 accept ip saddr 2.2.2.2 ip daddr 3.3.3.3 drop

    будут объединены в meta iifname . ip saddr . ip daddr { eth1 . 1.1.1.1 . 2.2.2.3, eth1 . 1.1.1.2 . 2.2.2.5 } accept ip saddr . ip daddr vmap { 1.1.1.1 . 2.2.2.2 : accept, 2.2.2.2 . 3.3.3.3 : drop }

    Пример использования: # nft -c -o -f ruleset.test Merging: ruleset.nft:16:3-37: ip daddr 192.168.0.1 counter accept ruleset.nft:17:3-37: ip daddr 192.168.0.2 counter accept ruleset.nft:18:3-37: ip daddr 192.168.0.3 counter accept into: ip daddr { 192.168.0.1, 192.168.0.2, 192.168.0.3 } counter packets 0 bytes 0 accept

  • В set-списках реализована возможность указания ip- и tcp-опций, а также chunk-ов sctp: set s5 { typeof ip option ra value elements = { 1, 1024 } } set s7 { typeof sctp chunk init num-inbound-streams elements = { 1, 4 } } chain c5 { ip option ra value @s5 accept } chain c7 { sctp chunk init num-inbound-streams @s7 accept }
  • Добавлена поддержка TCP-опций fastopen, md5sig и mptcp.
  • Добавлена поддержка использования в сопоставлениях подтипа mp-tcp: tcp option mptcp subtype 1
  • Улучшен код фильтрации, работающий на стороне ядра.
  • Для flowtable реализована полная поддержка формата JSON.
  • Предоставлена возможность использования действия «reject» в операциях сопоставления Ethernet-кадров. ether saddr aa:bb:cc:dd:ee:ff ip daddr 192.168.0.1 reject

Манбаъ: opennet.ru

Илова Эзоҳ