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

Автор Сообщение
news_bot ®

Стаж: 6 лет 3 месяца
Сообщений: 27286

Создавать темы news_bot ® написал(а)
10-Авг-2022 16:56

Опубликован выпуск пакетного фильтра nftables 1.0.5, унифицирующего интерфейсы фильтрации пакетов для IPv4, IPv6, ARP и сетевых мостов (нацелен на замену iptables, ip6table, arptables и ebtables). Одновременно опубликован выпуск сопутствующей библиотеки libnftnl 1.2.3, предоставляющей низкоуровневый API для взаимодействия с подсистемой nf_tables.
В пакет nftables входят компоненты пакетного фильтра, работающие в пространстве пользователя, в то время как на уровне ядра работу обеспечивает подсистема nf_tables, входящая в состав ядра Linux начиная с выпуска 3.13. На уровне ядра предоставляется лишь общий интерфейс, не зависящий от конкретного протокола и предоставляющий базовые функции извлечения данных из пакетов, выполнения операций с данными и управления потоком.
Непосредственно правила фильтрации и специфичные для протоколов обработчики компилируются в байткод в пространстве пользователя, после чего данный байткод загружается в ядро при помощи интерфейса Netlink и выполняется в ядре в специальной виртуальной машине, напоминающей BPF (Berkeley Packet Filters). Подобный подход позволяет значительно сократить размер кода фильтрации, работающего на уровне ядра и вынести все функции разбора правил и логики работы с протоколами в пространство пользователя.
Основные изменения:
  • В оптимизаторе правил, вызываемом при указании опции "-o/--optimize", решены проблемы с объединения правил, map- и set-списков.
    # cat ruleset.nft
         table ip x {
                chain y {
                        type nat hook postrouting priority srcnat; policy drop;
                        ip saddr 1.1.1.1 tcp dport 8000 snat to 4.4.4.4:80
                        ip saddr 2.2.2.2 tcp dport 8001 snat to 5.5.5.5:90
                }
         }
         # nft -o -c -f ruleset.nft
         Merging:
         ruleset.nft:4:3-52:                ip saddr 1.1.1.1 tcp dport 8000 snat to 4.4.4.4:80
         ruleset.nft:5:3-52:                ip saddr 2.2.2.2 tcp dport 8001 snat to 5.5.5.5:90
         into:
                snat to ip saddr . tcp dport map { 1.1.1.1 . 8000 : 4.4.4.4 . 80, 2.2.2.2 . 8001 : 5.5.5.5 . 90 }
  • При объединении ethernet и vlan элементов обеспечено определение динамического set-списка, заполняемого на основе параметров пути пакета.
    add table netdev x
         add chain netdev x y { type filter hook ingress device enp0s25 priority 0;
    }
         add set netdev x macset { typeof ether daddr . vlan id; flags
    dynamic,timeout; }
         add rule netdev x y update @macset { ether daddr . vlan id timeout 60s }
         add rule netdev x y ether saddr . vlan id { 0a:0b:0c:0d:0e:0f . 42,
    0a:0b:0c:0d:0e:0f . 4095 } counter accept
  • Налажен показ правил с map-списками, содержащими маски в именах интерфейсов.
    table inet filter {
            chain INPUT {
                iifname vmap {
                    "eth0" : jump input_lan,
                    "wg*" : jump input_vpn
                }
            }
            chain input_lan {}
            chain input_vpn {}
         }
  • Устранены регрессивные изменения, приводящие к неверному лексическому разбору корректных правил.
  • Решены проблемы с медленной обработкой и автоматическим слиянием больших списков с элементами, определяющими интервалы значений.
  • Устранено аварийное завершение при добавление элементов в некорректный set-список.

===========
Источник:
OpenNet.RU
===========

Похожие новости: Теги для поиска: #_nftables, #_netfilter
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 19-Май 01:42
Часовой пояс: UTC + 5