נפטאַבלעס פּאַקאַט פילטער 1.0.7 מעלדונג

די מעלדונג פון פּאַקאַט פילטער נפטאַבלעס 1.0.7 איז ארויס, יונאַפייינג פּאַקאַט פֿילטרירונג ינטערפייסיז פֿאַר IPv4, IPv6, ARP און נעץ בריקן (אַימעד צו פאַרבייַטן יפּטאַבלעס, יפּ6טאַבלע, אַרפּטאַבלעס און עבטאַבלעס). די nftables פּעקל כולל פּאַקאַט פילטער קאַמפּאָונאַנץ וואָס לויפן אין באַניצער פּלאַץ, בשעת די קערן-מדרגה אַרבעט איז צוגעשטעלט דורך די nf_tables סאַבסיסטאַם, וואָס איז געווען טייל פון די לינוקס קערן זינט מעלדונג 3.13. דער קערן מדרגה גיט בלויז אַ דזשאַנעריק פּראָטאָקאָל-פרייַ צובינד וואָס גיט יקערדיק פאַנגקשאַנז פֿאַר יקסטראַקטינג דאַטן פון פּאַקיץ, פּערפאָרמינג דאַטן אַפּעריישאַנז און לויפן קאָנטראָל.

די פֿילטרירונג כּללים און פּראָטאָקאָל-ספּעציפיש האַנדלערס זענען קאַמפּיילד אין ביטעקאָדע אין באַניצער פּלאַץ, נאָך וואָס דעם בייטעקאָד איז לאָודיד אין די קערן ניצן די נעטלינק צובינד און עקסאַקיוטאַד אין די קערן אין אַ ספּעציעל ווירטואַל מאַשין רעמאַניסאַנט פון BPF (Berkeley Packet Filters). דער צוגאַנג אַלאַוז איר צו באטייטיק רעדוצירן די גרייס פון די פֿילטרירונג קאָד פליסנדיק אויף די קערן מדרגה און מאַך אַלע די פאַנגקשאַנז פון פּאַרסינג כּללים און לאָגיק פֿאַר ארבעטן מיט פּראָטאָקאָלס אין באַניצער פּלאַץ.

הויפּט ענדערונגען:

  • Для систем с ядром Linux 6.2+ добавлена поддержка сопоставления протоколов vxlan, geneve, gre и gretap, что позволяет использовать простые выражения для проверки заголовков в инкапсулированных пакетах. Например, для проверки IP-адреса в заголовке вложенного пакета из VxLAN, теперь можно использовать правила (без необходимости предварительной деинкапсуляции заголовка VxLAN и привязки фильтра к интерфейсу vxlan0): … udp dport 4789 vxlan ip protocol udp … udp dport 4789 vxlan ip saddr 1.2.3.0/24 … udp dport 4789 vxlan ip saddr . vxlan ip daddr { 1.2.3.4 . 4.3.2.1 }
  • Реализована поддержка автоматического слияния остатков после частичного удаления элемента set-списка, что позволяет удалить элемент или часть диапазона из существующего диапазона (раньше диапазон можно было удалить только целиком). Например, после удаления элемента 25 из set-списка с диапазонами 24-30 и 40-50 в списке останутся 24, 26-30 и 40-50. Исправления, необходимые для работы автослияния, будут предложены в корректирующих выпусках стабильных веток ядра 5.10+. # nft list ruleset table ip x { set y { typeof tcp dport flags interval auto-merge elements = { 24-30, 40-50 } } } # nft delete element ip x y { 25 } # nft list ruleset table ip x { set y { typeof tcp dport flags interval auto-merge elements = { 24, 26-30, 40-50 } } }
  • Разрешено использование контактации и диапазонов при маппинге трансляции адресов (NAT). table ip nat { chain prerouting { type nat hook prerouting priority dstnat; policy accept; dnat to ip daddr . tcp dport map { 10.1.1.136 . 80 : 1.1.2.69 . 1024, 10.1.1.10-10.1.1.20 . 8888-8889 : 1.1.2.69 . 2048-2049 } persistent } }
  • Добавлена поддержка выражения «last», позволяющего узнать время последнего использования элемента правила или set-списка. Возможность поддерживается начиная с ядра Linux 5.14. table ip x { set y { typeof ip daddr . tcp dport size 65535 flags dynamic,timeout last timeout 1h } chain z { type filter hook output priority filter; policy accept; update @y { ip daddr . tcp dport } } } # nft list set ip x y table ip x { set y { typeof ip daddr . tcp dport size 65535 flags dynamic,timeout last timeout 1h elements = { 172.217.17.14 . 443 last used 1s591ms timeout 1h expires 59m58s409ms, 172.67.69.19 . 443 last used 4s636ms timeout 1h expires 59m55s364ms, 142.250.201.72 . 443 last used 4s748ms timeout 1h expires 59m55s252ms, 172.67.70.134 . 443 last used 4s688ms timeout 1h expires 59m55s312ms, 35.241.9.150 . 443 last used 5s204ms timeout 1h expires 59m54s796ms, 138.201.122.174 . 443 last used 4s537ms timeout 1h expires 59m55s463ms, 34.160.144.191 . 443 last used 5s205ms timeout 1h expires 59m54s795ms, 130.211.23.194 . 443 last used 4s436ms timeout 1h expires 59m55s564ms } } }
  • Добавлена возможность определения квот в set-списках. Например, для определения квоты на трафик для каждого целевого IP-адреса, можно указать: table netdev x { set y { typeof ip daddr size 65535 quota over 10000 mbytes } chain y { type filter hook egress device «eth0» priority filter; policy accept; ip daddr @y drop } } # nft add element inet x y { 8.8.8.8 } # ping -c 2 8.8.8.8 # nft list ruleset table netdev x { set y { type ipv4_addr size 65535 quota over 10000 mbytes elements = { 8.8.8.8 quota over 10000 mbytes used 196 bytes } } chain y { type filter hook egress device «eth0» priority filter; policy accept; ip daddr @y drop } }
  • Разрешено использование констант в set-списках. Например, при использования в качестве ключа списка адреса назначения и идентификатора VLAN можно напрямую указать номер VLAN (daddr . 123): table netdev t { set s { typeof ether saddr . vlan id size 2048 flags dynamic,timeout timeout 1m } chain c { type filter hook ingress device eth0 priority 0; policy accept; ether type != 8021q update @s { ether daddr . 123 } counter } }
  • Добавлена новая команда «destroy» для безоговорочного удаления объектов (в отличие от команды delete не генерирует ENOENT при попытке удаления отсутствующего объекта). Для работы требуется как минимум ядро Linux 6.3-rc. destroy table ip filter

מקור: opennet.ru

לייגן אַ באַמערקונג