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 и создайте свою первую таблицу. Перейти к подборке →