Утилита nft#

Утилита nft используется для администрирования платформы nftables (подсистема ядра, обеспечивающая фильтрацию и классификацию сетевых пакетов/датаграмм/кадров).

Синтаксис nft:

nft <options> <commands>

Где:

  • <options> - опции;

  • <commands> - команды.

Часто используемые опции утилиты представлены в таблице ниже.

Опция

Описание

-f,  --file <filename>

Считывание имени файла; если -, то считывает из стандартного ввода

-I,  --includepath <directory>

Добавление указанной директории в список каталогов, в которых выполняется поиск включенных файлов

-c,  --check

Проверка правильности команд без фактического применения изменений

-a,  --handle

Отображение дескрипторов объектов в выводе

Часто используемые команды утилиты представлены в таблице ниже.

Команда

Описание

<list/flush> ruleset <family>

Идентификация всего набора таблиц, цепочек и т.д., который в настоящее время используется в ядре. Команды для набора правил: list, flush. list - вывод набора правил в удобочитаемом формате. flush - очистка всего набора правил

<add/create> table <family> table [ <comment comment ;> < flags 'flags ; >],
<delete/destroy/list/flush> table <family> table,
list tables <family>,
delete table <family> handle handle,
destroy table <family> handle handle

Таблицы являются контейнерами для цепочек, наборов и объектов с отслеживанием состояния. Они идентифицируются по семейству адресов и их названию. Семейство адресов должно быть одним из ip, ip6, inet, arp, bridge, netdev. Семейство адресов inet - фиктивное, используется для создания гибридных таблиц IPv4/IPv6. Ключевое слово мета-выражения nfproto можно использовать для проверки того, в каком контексте (ipv4 или ipv6) обрабатывается пакет. Если семейство адресов не указано, по умолчанию используется IP-адрес. Отличие между add и create заключается в том, что первый не вернет ошибку, если указанная таблица уже существует, в то время как create вернет. add - добавить новую таблицу для данного семейства с заданным именем. delete - удалить указанную таблицу. destroy - удалить указанную таблицу; если она не существует, это не приведет к сбою.list - вывести список всех цепочек и правил указанной таблицы. flush - очистить все цепочки и правила указанной таблицы

Примеры использования#

  • Для просмотра текущей конфигурации правил сетевого фильтра введите команду:

    nft list ruleset
    
  • Для добавления в сетевой фильтр новых таблиц inet и filter введите команду:

    nft add table inet filter