Nftables - Nftables

Nftables
Оригинальный автор (ы)Проект Netfilter
Разработчики)Проект Netfilter
Стабильный выпуск
0.9.7[1] / 27 октября 2020 г.; 27 дней назад (2020-10-27)
Предварительный выпуск
Репозиторий Отредактируйте это в Викиданных
Написано вC
Операционная системаLinux
ПлатформаNetfilter
Типфильтрация пакетов
ЛицензияGPLv2
Интернет сайт
tc относится к Планировщик пакетов ядра Linux в качестве iptables к Netfilter и нфт в nftables. Все это пользовательское пространство CLI -программы, которые используются для настройки соответствующей подсистемы ядра Linux.

столы подсистема Ядро Linux обеспечение фильтрации и классификации сетевые пакеты / датаграммы / кадры. Он доступен с момента выпуска ядра Linux 3.13 19 января 2014 года.[2]

nftables заменяет устаревшие части iptables Netfilter. Среди преимуществ nftables перед iptables - меньшее дублирование кода и более простое расширение для новых протоколов. nftables настраивается через пользовательское пространство полезность нфт, а устаревшие инструменты настраиваются с помощью утилит iptables, ip6tables, arptables и ebtables рамки.

nftables использует строительные блоки Netfilter инфраструктура, такая как существующие привязки к сетевому стеку, система отслеживания соединений, компонент очередей пользовательского пространства и подсистема журналирования.

нфт

Синтаксис командной строки

Команда сбросить любые пакеты с IP-адресом назначения 1.2.3.4:

nft добавить правило ip filter output ip daddr 1.2.3.4 drop

Обратите внимание, что новый синтаксис значительно отличается от синтаксиса iptables, в котором было бы написано то же правило:

iptables -A OUTPUT -d 1.2.3.4 -j DROP

Новый синтаксис может показаться более подробным, но он также гораздо более гибким. nftables включает расширенные структуры данных такие как словари, карты и конкатенации, которых нет в iptables. Их использование может значительно сократить количество цепочек и правил, необходимых для выражения заданного дизайна фильтрации пакетов.

В iptables-translate Инструмент можно использовать для преобразования многих существующих правил iptables в эквивалентные правила nftables.[3][4] Debian 10 (Buster), среди прочего Дистрибутивы Linux, использует nftables вместе с iptables-translate как серверная часть фильтрации пакетов по умолчанию.[5]

История

Впервые проект был публично представлен на Netfilter Workshop 2008 Патриком МакХарди из основной группы Netfilter.[6] Первый предварительный выпуск реализации ядра и пользовательского пространства был выпущен в марте 2009 года.[7] Хотя этот инструмент был назван «самым большим изменением в брандмауэре Linux с момента появления iptables в 2001 году», он не получил особого внимания со стороны прессы.[8] Известный хакер Федор Васькович (Гордон Лайон) сказал, что "с нетерпением ожидает его общего выпуска в массовое производство. Ядро Linux ".[8]

Проект остался на стадии альфа-тестирования, а официальный веб-сайт был удален в 2009 году. В марте 2010 года электронные письма от автора в списках рассылки проекта показали, что проект все еще активен и приближается к бета-версии,[9][10] но последний так и не был отправлен официально. В октябре 2012 года Пабло Нейра Аюсо предложил уровень совместимости для iptables.[11] и объявил о возможном включении проекта в основное ядро.

16 октября 2013 года Пабло Нейра Аюсо представил ядро ​​nftables запрос на вытягивание к Основная линия ядра Linux дерево.[12] Он был включен в основную ветку ядра 19 января 2014 года с выпуском ядра Linux версии 3.13.[2]

Обзор

Движок ядра nftables добавляет простой виртуальная машина в ядро ​​Linux, которое может выполнять байт-код для проверки сетевого пакета и принятия решений о том, как этот пакет следует обрабатывать. Операции, выполняемые этой виртуальной машиной, намеренно сделаны базовыми. Он может получать данные из самого пакета, просматривать связанные метаданные (например, входящий интерфейс) и управлять данными отслеживания соединений. Арифметические, побитовые операторы и операторы сравнения могут использоваться для принятия решений на основе этих данных. Виртуальная машина также способна манипулировать наборами данных (обычно IP-адресами), позволяя заменять несколько операций сравнения одним поиском набора.[13]

Вышеописанная организация противоречит коду межсетевого экрана iptables, в логику которого так глубоко встроена информация о протоколе, что код пришлось повторить четыре раза - для IPv4, IPv6, ARP, и Ethernet мосты - поскольку механизмы межсетевого экрана слишком привязаны к протоколу, чтобы их можно было использовать в общем виде.[13]

Основное преимущество nftables перед iptables - упрощение ядра Linux. ABI, сокращение дублирование кода, улучшенный Отчет об ошибках, а также более эффективное выполнение, хранение и инкрементальные изменения правил фильтрации. Традиционно используется iptables (8), ip6tables (8), arptables (8) и ebtables (8) (для мостов IPv4, IPv6, ARP и Ethernet, соответственно) предназначены для замены на нфт (8) как единая унифицированная реализация, обеспечивающая настройку межсетевого экрана поверх виртуальной машины в ядре.

nftables также предлагает улучшенный API пользовательского пространства, который позволяет атомный замена одного или нескольких правил брандмауэра в одном Netlink сделка. Это ускоряет изменение конфигурации брандмауэра для установок с большими наборами правил; это также может помочь избежать состояния гонки во время выполнения изменений правил. nftables также включает функции совместимости для облегчения перехода от предыдущих брандмауэров, утилиты командной строки для преобразования правил в формат iptables,[14] и синтаксически совместимые версии команд iptables, использующие серверную часть nftables.[15]

Рекомендации

  1. ^ «Новости проекта netfilter / iptables». netfilter.org. 2020-10-27. Получено 2020-11-22.
  2. ^ а б "nftables, преемник iptables". Linux 3.13. kernelnewbies.org. 2014-01-19. Получено 2016-03-04.
  3. ^ https://wiki.nftables.org/wiki-nftables/index.php/Moving_from_iptables_to_nftables
  4. ^ https://wiki.nftables.org/wiki-nftables/index.php/List_of_available_translations_via_iptables-translate_tool
  5. ^ https://wiki.debian.org/nftables
  6. ^ «Программа дня пользователя - NFWS2008». Workshop.netfilter.org. 2008-10-03. Получено 2014-02-22.
  7. ^ объявление о первоначальном выпуске.
  8. ^ а б Грей, Патрик (26 марта 2009 г.). «НОВОСТИ: Linux получает новый брандмауэр». Risky.biz.
  9. ^ "Linux Netfilter Devel - Re: Текущее состояние nftables". Spinics.net. Получено 2014-01-20.
  10. ^ "Linux Netfilter Devel - Re: Текущее состояние nftables". Spinics.net. Получено 2014-01-20.
  11. ^ «Linux Netfilter Devel - [RFC] снова на nf_tables (плюс уровень совместимости)». Spinics.net. Получено 2014-01-20.
  12. ^ "[PATCH 00/17] обновления netfilter: запрос на извлечение nf_tables". Marc.info. Получено 2014-01-20.
  13. ^ а б Джонатан Корбет (2013-08-20). «Возвращение nftables». LWN.net. Получено 2013-10-22.
  14. ^ Нейра Аюсо, Пабло. "nftables - инструмент командной строки nft". git.netfilter.org. Получено 24 января 2019.
  15. ^ Артуро, Рал. «Итоги семинара Netfilter Workshop 2018 в Берлине». ral-arturo.org. Получено 24 января 2019.

внешняя ссылка