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
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Если Вы обнаружите в опубликованных документах ошибки, опечатки, несоответствия и неточности - сообщите о них.
>>> Представлен релиз дистрибутива Linux Mint 20, перешедший на пакетную базу Ubuntu 20.04 LTS. Дистрибутив полностью совместим с Ubuntu, но существенно отличается подходом к организации интерфейса пользователя и подбором используемых по умолчанию приложений. Разработчики Linux Mint предоставляют десктоп-окружение, соответствующее классическим канонам организации рабочего стола, которое является более привычным для пользователей, не принимающих новые методы построения интерфейса GNOME 3. Для загрузки доступны DVD-сборки на базе оболочек MATE 1.24 (1.9 Гб), Cinnamon 4.6 (1.8 Гб) и Xfce 4.14 (1.8 Гб). Linux Mint 20 отнесён к выпускам с длительным сроком поддержи (LTS), обновления для которого будут формироваться до 2025 года.
>>> Разработчики проекта Chromium внесли изменение, прекращающее доверие к TLS-сертификатам, время жизни которых превышает 398 дней (13 месяцев). Ограничение будет действовать только для сертификатов, выписанных начиная с 1 сентября 2020 года. Для полученных до 1 сентября сертификатов с длительным сроком действия доверие будет сохранено, но ограничено 825 днями (2.2 года).
>>> Опубликован второй выпуск графического редактора Glimpse, ответвившегося от проекта GIMP после 13 лет попыток убедить разработчиков сменить имя. Сборки подготовлены для Windows и Linux (пока только в формате Flatpak, но будет подготовлен и Snap). Кроме исправления ошибок из изменений отмечается добавление новых тем оформления интерфейса и пиктограмм, улучшение переводов для неанглоязычных пользователей, избавление фильтров от упоминания слова "gimp", добавление настройки для выбора языка на платформе Windows и удаление лишних кистей "fun".
>>> Состоялся релиз web-браузера Min 1.13, предлагающего минималистичный интерфейс, построенный вокруг манипуляций с адресной строкой. Браузер создан с использованием платформы Electron, позволяющей создавать обособленные приложения на основе движка Chromium и платформы Node.js. Интерфейс Min написан на javascript, CSS и HTML. Код распространяется под лицензией Apache 2.0. Сборки сформированы для Linux, macOS и Windows.


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

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


Живая лента

Северный флот проведет десантные учения недалеко от Аляски

STFW.Ru: Москва. 23 сентября. ИНТЕРФАКС - Корабли арктической группировки Северного флота (СФ) отработают высадку десанта на южном побережье Чукотки в заливе Креста (Берингово море), сообщила ...

Новый реестр для айтишников: чего ждать?

STFW.Ru: В России собираются создать еще один государственный реестр, в этот раз объединяют технологические стартапы. IT-стартапы - получатели господдержки будут сведены в единый реестр, что позволит ...

Министерство цифрового развития хочет запретить современные протоколы шифрования в Рунете. Безусловно, благодаря этому в России будет проще блокировать сайты

STFW.Ru: Министерство цифрового развития, связи и массовых коммуникаций хочет запретить веб-сайтам использовать современные технологии для шифрования соединения между сайтом и пользователем, чтобы ...

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


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


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


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


08:11 Выпуск Debian 9.6


08:11 Четвёртый бета-выпуск FreeBSD 12.0. Прекращение поддержки FreeBSD 10


08:11 Mozilla тестирует в Firefox две новые возможности: Price Wise и Email Tabs


08:11 В Chrome развивается API для создания полноценных пользовательских приложений


08:11 Выпуск wayland-protocols 1.17 с поддержкой буфера обмена по средней кнопке мыши


08:11 Обновлены сборки дистрибутива Void Linux


15:11 Cinnamon 4.0


15:11 В Chrome 71 начнётся блокировка вводящих в заблуждение рекламных блоков


15:11 ReactOS 0.4.10