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 обязательно


Обсуждение (42) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 01:25, 06/12/2025 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –8 +/
     

  • 1.6, Аноним (6), 03:05, 06/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Глубину стека только надо не 16 сделать, а 64 и тогда можно пользоваться...
     
     
  • 2.29, Аноним Псевдонимович (?), 18:26, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    4096
     
     
  • 3.61, OpenEcho (?), 18:07, 07/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    8192
     
  • 2.47, Аноним (-), 09:57, 07/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Чо за глубина такая?
     

  • 1.8, _ (??), 03:41, 06/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Почему у t1 и t2 - id одинаковый? Очепятка?
     
  • 1.10, openssh_user (ok), 06:13, 06/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    Пользуюсь на своих серверах. Синтаксис приемлим и читаемый, по сравнению с iptables
     
     
  • 2.17, Tty4 (?), 11:30, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    IP tables имеет куда более понятным подход при написании. Только читать его сдуреешь. Тут тоже можно сделать очень сложные цепочки, но некоторые простые задачи получаются переусложненными.
     
  • 2.39, Васисуалий (?), 02:10, 07/12/2025 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Не согласен. После iptables сабж кажется шифрограммой.
     
     
  • 3.57, Аноним (57), 13:49, 07/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Вполне можно писать правила в стиле iptables: одна строка - одно правило. С тем дополнением, что в nftables прямо в правиле можно перечислять список портов через запятую.
     
     
  • 4.60, Аноним (60), 14:39, 07/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Так это legacy режим. Спрашивается, нафига вообще тогда переходить с iptables.
     
     
  • 5.62, rhbm (?), 18:10, 07/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    потому что мы их вам запретили, разумеется!
    И разработчики уже давно даже и не пытаются делать вид что поддерживают эту немодную устаревшую технологию. Любое мелкое улучшайсто сетевого стека, которое поломает их окончательно - приведет к тому что этот немодный код объявят неправильным и выбросят совсем.

    Ну а режим совместимости у нас совместим примерно с нашим файрволом по умолчанию из 2000го года. Примитивный конфиг из десятка правил. А его ты как-нибудь и в новом формате бы смог.

    Так что бороться бесполезно, привыкай.

     

  • 1.13, Аноним (13), 09:54, 06/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А есть какие то понятные туториалы по nftables чтобы пацаны могли легко понять?
     
     
  • 2.15, Аномалии (?), 10:01, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    https://wiki.nftables.org/wiki-nftables/index.php/Main_Page
     
     
  • 3.46, Аноним (-), 09:56, 07/12/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >https://wiki.nftables.org/wiki-nftables/index.php/Main_Page

    Чоза подстава.

    Надо чтобы на русском ну ты понял да. И попроще было.

     
  • 3.54, нах. (?), 13:30, 07/12/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    может, скажем ему... хотя зачем... улыбаемся и машем.

    Правильный ответ для тредстартера: нет и не надейся что будет. Даже документации как таковой нет и не будет.

     
  • 3.63, OpenEcho (?), 18:13, 07/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    И где там про новодобавленные фичи из новости ?
     
  • 2.53, Васисуалий (?), 13:29, 07/12/2025 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
     
  • 3.55, нах. (?), 13:35, 07/12/2025 Скрыто ботом-модератором     [к модератору]
  • –3 +/
     
     
  • 4.70, Самый Лучший Гусь (?), 23:45, 07/12/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     

  • 1.25, Ванька с огорода (?), 16:18, 06/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    прекрасный release, без документации. Кто найдет ссылку на описание (лучше из официальной документации) на описание блока конфигурации "tunnel xx {...}" , тот огурец!
     
     
  • 2.72, Eifan (?), 00:33, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    А у nfttables никогда не было документации (десяток вики-страниц, из которых треть не работает и еще треть уже неактуальны) не в счёт.

    Не барское это дело - документацию писать.

     

  • 1.28, Аноним (28), 18:24, 06/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Создание туннеля через фаервол?
     
     
  • 2.31, Аноним (-), 22:37, 06/12/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    На сколько я знаю не существует такого понятия "туннель через файрвол". Ты просто открываешь порт, которым пользуется твой VPN. Файрвол - это защитная стена. Ты можешь настроить, какие "двери" в нём можно открыть, а какие закрыть. Ты можешь настроить режим работы этих "дверей" например, не отвечать на подозрительные запросы извне, или ограничить количество запросов определённым числом.
     
  • 2.35, Аноним (35), 01:32, 07/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    С чего ты взял, что nftables - это фаервол? Это значительно больше, чем фаервол.
    Сказано-же: заменяет iptables, ip6table, arptables и ebtables. Ты хотя бы приблизительно представляешь, зачем были нужны arptables и ebtables?
     

  • 1.36, Пишу с 3 пня (?), 02:00, 07/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Слишком сложно. Спасибо, что существует ufw.
     
     
  • 2.44, Аноним (-), 07:37, 07/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    ufw работает только на Ubuntu. На других дистрах его нет, ну мэйби Дебиан?
     
     
  • 3.50, Аноним (50), 10:16, 07/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Чуть ли не во всех, мой дорогой: https://pkgs.org/search/?q=ufw
     
  • 3.52, rhbm (?), 13:28, 07/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    на "других" есть firewalld. Ради которого в общем-то мы и придумали эту невменяемую перегруженную закорючками хернотень вместо человекочитаемых iptables.

    Ну и что что нельзя ограничивать source address? Наши экспертные-эксперты решили что и так сойдет!

     
     
  • 4.73, Аноним (73), 04:14, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    В firewalld нельзя src?
     
  • 2.49, Аноним (50), 10:15, 07/12/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    https://pkgs.org/search/?q=ufw
     

  • 1.48, Аноним (50), 10:14, 07/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    iptables -> nftables = пожалуй, самая лучшая трансформация, которая произошла в линуксе за все время его существования.
     
     
  • 2.66, Аноним (66), 21:51, 07/12/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В руководствах по чему угодно всегда так или иначе упоминается настройка iptables. А про nftables молчок. Точно трансформировались?
     
     
  • 3.67, aim (ok), 22:26, 07/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    а в 98 везде был ipfwadm в руководствах. и что теперь, не надо было в ядре 2.2 переходить на ipchains, а затем в 2.4 ядре на iptables?
     
     
  • 4.68, Аноним (66), 22:54, 07/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Я как бы не против nftables, я просто их в обиходе не встречаю. Вот чтобы мне пришлось конфиг написать, к примеру. Существование системды например совершенно неоспоримо - с ним сталкиваешься постоянно.
     
     
  • 5.69, aim (ok), 23:07, 07/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Я как бы не против nftables, я просто их в обиходе не
    > встречаю. Вот чтобы мне пришлось конфиг написать, к примеру. Существование системды
    > например совершенно неоспоримо - с ним сталкиваешься постоянно.

    ubuntu 20.04+
    debian 10+
    rhel 8+
    fedora

    все они используют nftables в качестве основного fw

     
     
  • 6.71, a (??), 23:47, 07/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ага, а при сетапе от docker до k8s все равно используют iptables. Особенно в k8s.
     
     
  • 7.74, Аноним (73), 04:19, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    А потому что, что iptables это сейчас как стандартные цепочки, уже с хорошо известным flow. В nftables, же, можно не ветвиться от трёх базовых.
     
  • 2.75, Аноним (75), 05:46, 08/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    ipsetы где?
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



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

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