LinuxDoc.ru - Новости Linux - В ядре Linux 3.13 ожидается появление пакетного фильтра Nftables

В ядре Linux 3.13 ожидается появление пакетного фильтра Nftables

LinuxDoc.Ru,
В экспериментальную ветку linux-next, на базе которой будет формироваться ядро Linux 3.13, принят код Nftables, новой реализации пакетного фильтра, идущей на смену iptables, ip6table, arptables и ebtables. Nftables отличается существенным пересмотром организации процесса обработки правил фильтрации пакетов, новым синтаксисом правил, сокращением кода, выполняемого на уровне ядра, и унификацией интерфейсов для IPv4, IPv6, ARP и сетевых мостов.


Ключевой особенностью Nftables является применение идеи, близкой к реализации BPF (Berkeley Packet Filters) - правила фильтрации компилируются в пространстве пользователя в байткод и передаются в ядро через API Netlink, после чего для принятия решения по дальнейшим действиям с пакетом выполняются с использованием конечного автомата (pseudo-state machine). В качестве базовых блоков по-прежнему используются компоненты инфраструктуры Netfilter, в том числе существующие хуки, система отслеживания состояния соединений, компоненты организации очередей и подсистема ведения лога.


Выполнение правил с использованием конечного автомата вместо применения логики сопоставления позволяет сократить размер кода фильтрации, работающего на уровне ядра и вынести все функции разбора правил и логики работы с протоколами в пространство пользователя. Кроме того, появляется возможность унифицировать работу с различными видами протоколов в едином наборе псевдокода, без необходимости поддержания в ядре отдельных расширений фильтрации для IPv4, IPv6, ARP и сетевых мостов. При необходимости поддержки фильтрации нового протокола, все изменения могут быть внесены в пользовательском пространстве без обновления кода ядра.

Все операции по определению условий и связанных с ними действий выполняются в пространстве пользователя, в ядре производится только базовый набор операций, таких как чтение данных из пакета, сравнение данных и т.п. Присутствует поддержка словарного маппинга и поиска по наборам правил (sets), работа которых реализована через хеши и rb-деревья. При этом элементы наборов могут быть заданы в виде диапазонов значений (можно определять подсети).


Для взаимодействия с кодом, работающим на уровне ядра, предлагается специальная связующая интерфейсная библиотека libnl и построенный поверх неё фронтэнд, работающий на уровне пользователя. Для формирования правил фильтрации в nftables подготовлена утилита nft, которая проверяет корректность правил и транслирует их в байткод. Правила могут добавляться не только инкрементально, но и загружаться целиком из файла на диске.


Новый синтаксис правил не похож на iptables и отличается использованием иерархических блочных структур вместо линейной схемы. Язык классификации правил основан на реальной грамматике, при обработке которой используется сгенерированный в bison парсер. Для обеспечения обратной совместимости с линейными правилами предоставляется специальная прослойка, позволяющая использовать iptables/ip6tables поверх инфраструктуры Nftables. Представленный для ядра 3.13 код предусматривает сосуществование старой и новой подсистем, так как Nftables ещё требует доработки и тестирования.

Пример правил:


table filter {
chain input {
table filter hook input priority 0;
ct state established accept
ct state related accept
meta iif lo accept
tcp dport ssh counter packets 0 bytes 0 accept
counter packets 5 bytes 5 log drop
}

chain output {
table filter hook output priority 0;
ct state established accept
ct state related accept
meta oif lo accept
ct state new counter packets 0 bytes 0 accept
}
}
linux

Новости Linux

. В ядре Linux 3.13 ожидается появление пакетного фильтра Nftables В ядре Linux 3.13 ожидается появление пакетного фильтра Nftables
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Если Вы обнаружите в опубликованных документах ошибки, опечатки, несоответствия и неточности - сообщите о них.
>>> После года разработки и 29 экспериментальных версий представлен стабильный релиз открытой реализации Win32 API - Wine 6.0, который вобрал в себя более 8300 изменений. Из ключевых достижений новой версии отмечается поставка базовых модулей Wine в формате PE, бэкенд на основе графического API Vulkan для WineD3D, новая реализация текстовой консоли, поддержка DirectShow и фреймворка Media Foundation.
>>> Состоялся релиз Alpine Linux 3.13, минималистичного дистрибутива, построенного на базе системной библиотеки Musl и набора утилит BusyBox. Дистрибутив отличается повышенными требованиями к обеспечению безопасности и собран с защитой SSP (Stack Smashing Protection). В качестве системы инициализации используется OpenRC, для управления пакетами применяется собственный пакетный менеджер apk. Alpine применяется для формирования официальных образов контейнеров Docker. Загрузочные iso-образы (x86_64, x86, armhf, aarch64, armv7, ppc64le, s390x, mips64) подготовлены в пяти вариантах: стандартном (130 МБ), с ядром без патчей (150 МБ), расширенном (570 МБ) и для виртуальных машин (40 МБ).
>>> Описание приложения MSN Погода
MSN Погода – это легкое и удобное мобильное приложение для владельцев Android-смартфонов, которое позволяет получить прогноз погоды на ближайшие 5-10 дней, независимо от того, где именно находится человек. Утилита информирует об изменениях температуры воздуха, силе ветра, уровне влажности, возможных осадках и т. п.
>>> Началась подготовка к предстоящей заморозке пакетной базы выпуска Debian 11 "Bullseye", релиз которого ожидается летом 2021 года. Первая стадия заморозки пакетной базы намечена на 12 января 2021 года. На данном этапе будет прекращено выполнение "transitions" (обновление пакетов, требующее корректировки зависимостей у других пакетов, которое приводит к временному удалению пакетов из Testing), а также прекращено обновление пакетов, необходимых для сборки (build-essential).


Редакция портала:

Добро пожаловать на сайт, посвященный документации к ОС Linux, ее переводу и распространению. Мы надеемся, что Вы найдете тут всю необходимую информацию. Здесь представлены три основных вида документации на русском языке: руководства (man-pages), HOWTO и mini-HOWTO. В скором будущем возможно появление и других видов документации.
Авторские права на представленные документы принадлежат авторам перевода и распространяются в соответствии со Стандартной Общественной Лицензией, если в документе не указано обратное.
Если Вы обнаружите в опубликованных документах ошибки, опечатки, несоответствия и неточности - сообщите о них.


Живая лента

Киберпанк уже наступил

STFW.Ru: Президент Microsoft Брэд Смит сказал о наличии свидетельств о том, что российская разведка причастна к массовой кибератаке на системы американских ведомств федерального правительства и ...

NAVI потеряла первое место в рейтинге CS:GO, в России проводят интенсив по Dota 2

STFW.Ru: В самом разгаре турнир IEM Katowice 2021 по CS:GO. Этот ивент является знаковым в календаре всех команд этой кибердисциплине, поскольку на турнире разыграют призовой фонд в размере одного ...

Компания Microsoft запатентовала способ цифровой реинкарнации любого человека

STFW.Ru: По документации, которая доступна на ресурсе Ведомства по патентам и товарным знакам США (USPTO), трудно судить, на какой стадии находится разработка. Но описанный функционал системы ...

02:11 Что может случиться с ноутбуком и как решить проблему


03:06 В Chrome предложен новый интерфейс PDF-просмотрщика и добавлена поддержка AVIF


03:06 Релиз дистрибутива Linux Mint 20


03:06 Chrome, Firefox и Safari ограничат время жизни TLS-сертификатов 13 месяцами


12:03 Второй выпуск Glimpse, форка графического редактора GIMP


12:03 Опубликован web-браузер Min 1.13


12:03 Выпуск дистрибутива Zorin OS 15.2


12:03 Объявлено об объединении проектов FreeNAS и TrueNAS


06:01 Из Kali Linux уберут права root по умолчанию


06:01 Tails 4.2.2 - экстренный релиз


06:01 РЖД закупит 15 000 компьютеров с российскими процессорами «Эльбрус»


06:01 Минкомсвязи утвердило требования к российским DNS


08:11 Выпуск Debian 9.6