Nftables
nftables — подсистема ядра Linux, обеспечивающая фильтрацию и классификацию сетевых пакетов/датаграмм/кадров. Включена в ядро Linux, начиная с версии 3.13, выпущенной 19 января 2014 года[2]. Является проектом по замене пакетов iptables, ip6tables, arptables, ebtables в межсетевом экране Netfilter. За счёт объединения функциональности перечисленных пакетов, в nftables присутствует меньшее дублирование кода при построении правил для Netfilter и низкоуровневая оптимизация[3]. По состоянию на 26 апреля 2016 года находится в процессе разработки. В пространстве пользователя nftables настраивается при помощи утилиты nft.
Общие сведения
| Nftables | |
|---|---|
| Тип | утилита, утилита командной строки и межсетевой экран |
| Написана на | Си |
| Операционные системы | GNU/Linux и Android |
| Аппаратные платформы | ядро Linux и Linux-libre |
| Последняя версия | |
| Репозиторий | git.netfilter.org/nftabl… |
| Лицензия | GNU GPL 2 |
| Сайт | netfilter.org/pro… (англ.) |
Синтаксис командной строки 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].