nftables (nftables)

Перейти к навигации Перейти к поиску
Nftables
Тип утилита, утилита командной строки[вд] и межсетевой экран
Написана на Си
Операционные системы GNU/Linux и Android
Аппаратные платформы ядро Linux и Linux-libre
Последняя версия
Репозиторий git.netfilter.org/nftabl…
Лицензия GNU GPL 2
Сайт netfilter.org/pro… (англ.)
Логотип Викисклада Медиафайлы на Викискладе

nftables — подсистема ядра Linux, обеспечивающая фильтрацию и классификацию сетевых пакетов/датаграмм/кадров. Включена в ядро Linux, начиная с версии 3.13, выпущенной 19 января 2014 года[2]. Является проектом по замене пакетов iptables, ip6tables, arptables[англ.], ebtables в межсетевом экране Netfilter. За счёт объединения функциональности перечисленных пакетов, в nftables присутствует меньшее дублирование кода при построении правил для Netfilter и низкоуровневая оптимизация[3]. По состоянию на 26 апреля 2016 года находится в процессе разработки. В пространстве пользователя nftables настраивается при помощи утилиты nft.

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

[править | править код]

Синтаксис nft более схож с реальной грамматикой[3].

Команда для добавления правила блокирования пакетов, направленных на адрес 1.2.3.4:

nft add rule ip filter output ip addr 1.2.3.4 drop

Синтаксис такого же действия для iptables:

iptables -t filter -A OUTPUT -j DROP -d 1.2.3.4

Для обеспечения обратной совместимости предоставляется специальная прослойка, позволяющая использовать iptables/ip6tables поверх инфраструктуры nftables.

Проект был впервые представлен на Netfilter Workshop 2008 Патриком Мак-Харди из команды по разработке ядра Netfilter[4].

Первый предварительный релиз реализации ядра и пользовательского пространства был представлен в марте 2009 года[5]. Хотя инструмент был назван самым большим изменением межсетевого экрана Linux с момента появления iptables в 2001 году, в то время он получил мало освещения в прессе[6].

В октябре 2012 года, была предложена прослойка совместимости с iptables[7] и анонсировано возможное включение проекта в основную ветку ядра. 16 октября 2013 года был отправлен запрос на включение изменений (pull request) в ядро Linux[8]. 19 января 2014 года nftables был включён в ядро Linux версии 3.13[2].

Примечания

[править | править код]
  1. Ayuso P. N. [ANNOUNCE nftables 1.1.1 release] — 2024.
  2. 1 2 nftables, the successor of iptables. Linux 3.13. kernelnewbies.org (19 января 2014). Дата обращения: 4 марта 2016. Архивировано 25 января 2014 года.
  3. 1 2 Изучаем возможности nftables — нового пакетного фильтра Linux - «Хакер». Дата обращения: 25 апреля 2016. Архивировано 21 ноября 2016 года.
  4. User day program - NFWS2008. Workshop.netfilter.org (3 октября 2008). Дата обращения: 22 февраля 2014. Архивировано 30 июня 2017 года.
  5. initial release announcement. Дата обращения: 25 апреля 2016. Архивировано 1 октября 2015 года.
  6. Gray, Patrick (2009-03-26). "NEWS: Linux Gets New Firewall". Risky.biz. Архивировано 23 марта 2016. Дата обращения: 25 апреля 2016.
  7. Linux Netfilter Devel - [RFC] back on nf_tables (plus compatibility layer). Spinics.net. Дата обращения: 20 января 2014. Архивировано 25 января 2015 года.
  8. '[PATCH 00/17] netfilter updates: nf_tables pull request' - MARC. Marc.info. Дата обращения: 20 января 2014. Архивировано 31 июля 2018 года.