nftables как пользоваться: практическое руководство для начинающих

nftables — это современная подсистема фильтрации пакетов в Linux, пришедшая на смену iptables. Она работает быстрее, использует единый синтаксис и позволяет управлять правилами через утилиту nft. В этой статье разберём, как пользоваться nftables на практике: от базовых команд до создания собственных таблиц и цепочек.

Основы: таблицы, цепочки и правила

Архитектура nftables строится на трёх уровнях. Таблицы (tables) группируют правила по семейству адресов: ip, ip6, inet, arp, bridge. Цепочки (chains) определяют, где применяются правила — на входе (input), выходе (output) или при перенаправлении (forward). Сами правила задают условия и действия.

Начать работу с nftables стоит с просмотра текущей конфигурации:

`nft list ruleset`

Эта команда покажет все существующие таблицы и цепочки. Если вывод пуст, значит, конфигурация ещё не создана. Для создания таблицы используйте:

`nft add table inet filter`

Здесь inet — семейство, объединяющее IPv4 и IPv6, а filter — произвольное имя таблицы.

Создание цепочек и правил

После создания таблицы добавьте цепочку. Чтобы фильтровать входящий трафик, создайте базовую цепочку с хуком input:

`nft add chain inet filter input { type filter hook input priority 0 \; policy drop \; }`

Параметр policy drop означает, что весь трафик по умолчанию блокируется. Теперь добавляйте разрешающие правила. Например, чтобы открыть SSH-порт:

`nft add rule inet filter input tcp dport 22 accept`

Правила можно комбинировать: фильтровать по IP-адресу источника, протоколу, интерфейсу. Синтаксис nftables читается интуитивно — условие и действие разделены пробелом, что упрощает понимание конфигурации по сравнению с iptables.

Сохранение конфигурации и типичные сценарии

Правила, добавленные через nft, действуют до перезагрузки. Чтобы сохранить их, запишите текущий ruleset в файл:

`nft list ruleset > /etc/nftables.conf`

Затем активируйте автозагрузку через systemctl enable nftables. Для сложных конфигураций удобно редактировать файл целиком, а не добавлять правила по одному — так проще поддерживать порядок.

Типичные задачи, которые решают с помощью nftables: настройка файрвола на сервере, ограничение скорости соединений, NAT для домашней сети, блокировка нежелательных подсетей. Благодаря единому синтаксису nftables как пользоваться им осваивают быстрее, чем устаревшим iptables, а производительность при большом числе правил заметно выше.

Вывод

nftables — гибкий инструмент, который стоит освоить каждому администратору Linux. Начните с простой таблицы и цепочки input, постепенно добавляйте правила и сохраняйте конфигурацию в /etc/nftables.conf. Так вы быстро поймёте логику работы и научитесь пользоваться nftables уверенно.

Попробуйте настроить nftables на тестовой виртуальной машине прямо сегодня — начните с команды nft list ruleset и создайте свою первую таблицу. Перейти к подборке →