Утилита nft#

Описание#

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

Синтаксис утилиты:

nft <options> <commands>

Где:

  • <options> - опции;

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

Опции#

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

Опции nft#

Опция

Описание

-f, --file <filename>

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

-I, --includepath <directory>

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

-c, --check

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

-a, --handle

Отобразить дескрипторы объектов в выводе

Команды#

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

Примечание

Таблицы являются контейнерами для цепочек, наборов и объектов с отслеживанием состояния. Они идентифицируются по семейству <family> адресов и их названию. Семейство адресов должно быть одним из ip, ip6, inet, arp, bridge, netdev. Семейство адресов inet - фиктивное, используется для создания гибридных таблиц IPv4/IPv6. Ключевое слово мета-выражения nfproto можно использовать для проверки того, в каком контексте (ipv4 или ipv6) обрабатывается пакет. Если семейство адресов не указано, по умолчанию используется ip.

Отличие между командами add и create заключается в том, что первая не вернет ошибку, если указанная таблица уже существует, в то время как create вернет, аналогично для destroy и delete. Команда list выведет список всех цепочек и правил указанной таблицы, а flush - очистит для таблицы все цепочки и правила.

Команды nft#

Команда

Описание

<list/flush> ruleset <family>

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

<add/create> table <family> <table> [ <comment comment ;> < flags 'flags ; >]

Добавить/создать новую таблицу table для данного семейства <family> с заданным именем <table>

<delete/destroy/list/flush> table <family> <table>

Удалить/просмотреть/очистить указанную таблицу для определенного семейства

list tables <family>

Вывести таблицы для указанного семейства

delete/destroy table <family> handle handle

Удалить определенное правило для таблицы указанного семейства

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

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

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

    nft add table inet filter
    

Дополнительная информация#

Дополнительную информацию можно получить, выполнив команду:

man nft

Или:

nft --help