nftables packet filter 1.0.2 rilaxx

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

Il-pakkett nftables jinkludi komponenti tal-filtri tal-pakketti li jaħdmu fl-ispazju tal-utent, filwaqt li x-xogħol fil-livell tal-kernel huwa pprovdut mis-subsistema nf_tables, li ilha parti mill-kernel tal-Linux sa mir-rilaxx 3.13. Il-livell tal-qalba jipprovdi biss interface ġeneriku indipendenti mill-protokoll li jipprovdi funzjonijiet bażiċi għall-estrazzjoni tad-dejta minn pakketti, it-twettiq ta 'operazzjonijiet tad-dejta, u l-kontroll tal-fluss.

Ir-regoli tal-filtrazzjoni nfushom u handlers speċifiċi għall-protokoll huma kkompilati f'bytecode tal-ispazju tal-utent, u wara dan il-bytecode jitgħabba fil-kernel bl-użu tal-interface Netlink u eżegwit fil-kernel f'magna virtwali speċjali li tixbaħ BPF (Berkeley Packet Filters). Dan l-approċċ jagħmilha possibbli li jitnaqqas b'mod sinifikanti d-daqs tal-kodiċi tal-filtrazzjoni li jaħdem fil-livell tal-qalba u l-funzjonijiet kollha tar-regoli tal-parsing u l-loġika tal-ħidma bi protokolli jitmexxew fl-ispazju tal-utent.

Innovazzjonijiet ewlenin:

  • Добавлен режим оптимизации правил, включаемый при помощи новой опции «-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

Sors: opennet.ru

Żid kumment