WikiDer > Nftables
Оригинальный автор (ы) | Проект Netfilter |
---|---|
Разработчики) | Проект Netfilter |
Стабильный выпуск | 0.9.7[1] / 27 октября 2020 г. |
Предварительный выпуск | |
Репозиторий | |
Написано в | C |
Операционная система | Linux |
Платформа | Netfilter |
Тип | фильтрация пакетов |
Лицензия | GPLv2 |
Интернет сайт |
столы подсистема Ядро 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, сокращение дублирование кода, улучшенный Отчет об ошибках, а также более эффективное выполнение, хранение и инкрементальные изменения правил фильтрации. Традиционно используется , , и (для мостов IPv4, IPv6, ARP и Ethernet, соответственно) предназначены для замены на как единая унифицированная реализация, обеспечивающая настройку межсетевого экрана поверх виртуальной машины в ядре.
nftables также предлагает улучшенный API пользовательского пространства, который позволяет атомный замена одного или нескольких правил брандмауэра в одном Netlink сделка. Это ускоряет изменение конфигурации брандмауэра для установок с большими наборами правил; это также может помочь избежать состояния гонки во время выполнения изменений правил. nftables также включает функции совместимости для облегчения перехода от предыдущих брандмауэров, утилиты командной строки для преобразования правил в формат iptables,[14] и синтаксически совместимые версии команд iptables, использующие серверную часть nftables.[15]
Рекомендации
- ^ «Новости проекта netfilter / iptables». netfilter.org. 2020-10-27. Получено 2020-11-22.
- ^ а б "nftables, преемник iptables". Linux 3.13. kernelnewbies.org. 2014-01-19. Получено 2016-03-04.
- ^ https://wiki.nftables.org/wiki-nftables/index.php/Moving_from_iptables_to_nftables
- ^ https://wiki.nftables.org/wiki-nftables/index.php/List_of_available_translations_via_iptables-translate_tool
- ^ https://wiki.debian.org/nftables
- ^ «Программа дня пользователя - NFWS2008». Workshop.netfilter.org. 2008-10-03. Получено 2014-02-22.
- ^ объявление о первоначальном выпуске.
- ^ а б Грей, Патрик (26 марта 2009 г.). «НОВОСТИ: Linux получает новый брандмауэр». Risky.biz.
- ^ "Linux Netfilter Devel - Re: Текущее состояние nftables". Spinics.net. Получено 2014-01-20.
- ^ "Linux Netfilter Devel - Re: Текущее состояние nftables". Spinics.net. Получено 2014-01-20.
- ^ «Linux Netfilter Devel - [RFC] снова на nf_tables (плюс уровень совместимости)». Spinics.net. Получено 2014-01-20.
- ^ "[PATCH 00/17] обновления netfilter: запрос на извлечение nf_tables". Marc.info. Получено 2014-01-20.
- ^ а б Джонатан Корбет (2013-08-20). «Возвращение nftables». LWN.net. Получено 2013-10-22.
- ^ Нейра Аюсо, Пабло. "nftables - инструмент командной строки nft". git.netfilter.org. Получено 24 января 2019.
- ^ Артуро, Рал. «Итоги семинара Netfilter Workshop 2018 в Берлине». ral-arturo.org. Получено 24 января 2019.
внешняя ссылка
- Официальный веб-сайт
- Репозиторий исходного кода nftables Git
- документация nftables HOWTO
- Первый выпуск nftables (18 марта 2009 г.)
- Пабло Нейра Аюсо: [RFC] вернулся к nf_tables (плюс уровень совместимости)
- nftables quick HOWTO
- разделы nftables в ArchWiki и Gentoo Wiki
- Корбет, Джонатан (24 марта 2009 г.). "nftables: новый механизм фильтрации пакетов". LWN.net.
- Макхарди, Патрик (30 сентября 2008 г.). nftables - преемник iptables, ip6tables, ebtables и arptables (ODP). Мастерская Netfilter 2008.
- nft_compat расширен для поддержки расширений ebtables (объединено с ядром Linux 4.0)