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

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

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

Создавать темы news_bot ® написал(а)
22-Фев-2022 03:30

Опубликован выпуск пакетного фильтра nftables 1.0.2, унифицирующего интерфейсы фильтрации пакетов для IPv4, IPv6, ARP и сетевых мостов (нацелен на замену iptables, ip6table, arptables и ebtables). Необходимые для работы выпуска nftables 1.0.2 изменения включены в состав ядра Linux 5.17-rc.
В пакет nftables входят компоненты пакетного фильтра, работающие в пространстве пользователя, в то время как на уровне ядра работу обеспечивает подсистема nf_tables, входящая в состав ядра Linux начиная с выпуска 3.13. На уровне ядра предоставляется лишь общий интерфейс, не зависящий от конкретного протокола и предоставляющий базовые функции извлечения данных из пакетов, выполнения операций с данными и управления потоком.
Непосредственно правила фильтрации и специфичные для протоколов обработчики компилируются в байткод в пространстве пользователя, после чего данный байткод загружается в ядро при помощи интерфейса Netlink и выполняется в ядре в специальной виртуальной машине, напоминающей BPF (Berkeley Packet Filters). Подобный подход позволяет значительно сократить размер кода фильтрации, работающего на уровне ядра и вынести все функции разбора правил и логики работы с протоколами в пространство пользователя.
Основные новшества:
  • Добавлен режим оптимизации правил, включаемый при помощи новой опции "-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

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

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

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

Текущее время: 27-Апр 23:26
Часовой пояс: UTC + 5