The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск пакетного фильтра nftables 1.1.6

05.12.2025 23:30

Опубликован выпуск пакетного фильтра nftables 1.1.6, унифицирующего интерфейсы фильтрации пакетов для IPv4, IPv6, ARP и сетевых мостов (нацелен на замену iptables, ip6table, arptables и ebtables). Одновременно опубликован выпуск сопутствующей библиотеки libnftnl 1.3.1, предоставляющей низкоуровневый API для взаимодействия с подсистемой nf_tables.

В пакет nftables входят компоненты пакетного фильтра, работающие в пространстве пользователя, в то время как на уровне ядра работу обеспечивает подсистема nf_tables, входящая в состав ядра Linux начиная с выпуска 3.13. На уровне ядра предоставляется лишь общий интерфейс, не зависящий от конкретного протокола и предоставляющий базовые функции извлечения данных из пакетов, выполнения операций с данными и управления потоком.

Непосредственно правила фильтрации и специфичные для протоколов обработчики компилируются в байткод в пространстве пользователя, после чего данный байткод загружается в ядро при помощи интерфейса Netlink и выполняется в ядре в специальной виртуальной машине, напоминающей BPF (Berkeley Packet Filters). Подобный подход позволяет значительно сократить размер кода фильтрации, работающего на уровне ядра и вынести все функции разбора правил и логики работы с протоколами в пространство пользователя.

Основные изменения:

  • Обеспечена полная поддержка шаблонов легковесных туннелей, таких как vxlan, geneve и erspan:
    
           table netdev global {
                  tunnel t1 {
                          id 10
                          ip saddr 192.168.2.10
                          ip daddr 192.168.2.11
                          sport 1025
                          dport 20020
                          ttl 1
                          erspan {
                                  version 1
                                  index 2
                          }
                  }
     
                  tunnel t2 {
                          id 10
                          ip saddr 192.168.3.10
                          ip daddr 192.168.3.11
                          sport 1025
                          dport 21021
                          ttl 1
                          erspan {
                                  version 1
                                  index 2
                          }
                  }
       
                  chain in {
                          type filter hook ingress device veth0 priority 0;
        
                          tunnel name ip saddr map { 10.141.10.12 : "t1", 
    10.141.10.13 : "t2" } fwd to erspan1
                  }
           }
    
    Перед загрузкой правил следует создать сетевой интерфейс erspan1:
       ip link add dev erspan1 type erspan external
    
    
  • Добавлена поддержка масок в именах сетевых интерфейсов в обработчиках netdev, например, для добавления базовой цепочки в фильтр входящего трафика для всех устройств vlan можно указать:
    
           table netdev t {
                  chain c {
                          type filter hook ingress devices = { "vlan*", "veth0" } 
    priority filter; policy accept;
                  }
           }
    
  • На системах с ядром Linux 6.18+ реализована поддержка передачи L2-кадров в интерфейс сетевых мостов для локальной обработки, например, для направления в IP-стек всех Ethernet-кадров для MAC-адреса de:ad:00:00:be:ef можно указать:
    
        table bridge global {
                chain pre {
                        type filter hook prerouting priority 0; policy accept;
                        ether daddr de:ad:00:00:be:ef meta pkttype set host ether 
    daddr set meta ibrhwaddr accept
                }
        }
    
  • Добавлена новая инфраструктура для fuzzing-тестирования с использованием инструментария afl++ (american fuzzy lop++), включаемая на этапе сборки через "./configure --with-fuzzer".


  1. Главная ссылка к новости (https://www.mail-archive.com/n...)
  2. OpenNews: Выпуск межсетевого экрана firewalld 2.4.0
  3. OpenNews: Выпуск пакетного фильтра iptables 1.8.11
  4. OpenNews: Выпуск пакетного фильтра nftables 1.1.0
  5. OpenNews: Уязвимость в nftables, позволяющая повысить свои привилегии
  6. OpenNews: Локальная уязвимость в ядре Linux, эксплуатируемая через nftables
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/64386-nftables
Ключевые слова: nftables
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (4) RSS
  • 1, Аноним (1), 01:25, 06/12/2025 [ответить]  
  • +/
    Поскорее бы iptables выпинули отовсюду к чертям собачьим, выглядит страшно и отталкивающе. В nftables интерфейс понятный и структурированный, так и хочется лизнуть.
     
     
  • 2, penetrator (?), 01:39, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    ты хоть пиши, что сарказм
     

  • 3, Аноним (3), 02:02, 06/12/2025 [ответить]  
  • –1 +/
    Зачем эта дедовская сишная дырень, не умеющая в dbus?

    Все давно перешли на firewalld.

     
     
  • 4, Frestein (ok), 02:05, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Какой слабый троллинг
     
     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2025 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру