Шпаргалка по командам nftables

Просмотр категорий

Шпаргалка по командам nftables

2 min read

Понимание Linux nftables Command #

nftables command — мощный инструмент межсетевого экрана Linux, который заменяет iptables, ip6tables, arptables и ebtables. С унифицированным синтаксисом, nftables упрощает фильтрацию сетевых пакетов, NAT и другие расширенные сетевые конфигурации. Команда работает с nft утилита, которая взаимодействует с подсистемой ядра netfilter для управления сетевыми правилами.

Базовый синтаксис и структура nft Command #

nft Команда обычно имеет следующую структуру:

nft [OPTIONS] COMMAND

  • ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ: Флаги как -a (показать маркеры правил) или -j (вывод в формате JSON).
  • КОМАНДА: Конкретное действие, такое как add, delete, list или flush, используемый для управления таблицами, цепочками или правилами.

nft Таблица командных шпаргалок #

Command Описание
nft list tables Список всех таблиц
nft add table inet filter Создайте новую таблицу с именем filter в inet семья
nft delete table inet filter Удалите filter стол в inet семья
nft list ruleset Перечислите все таблицы, цепочки и правила в удобном для чтения формате.
nft flush ruleset Удалить все таблицы, цепочки и правила (очистить весь набор правил)
nft add chain inet filter input { type filter hook input priority 0; } Добавьте input цепь к filter стол с input крючок
nft add rule inet filter input tcp dport 22 accept Принимать входящий SSH-трафик на порту 22
nft delete rule inet filter input handle <handle_number> Удалить правило в input цепочка, указав дескриптор правила
nft add rule inet filter forward counter Добавьте встречное правило к forward цепь для мониторинга трафика

Добавление и управление таблицами #

In nftables, таблицы — это контейнеры для цепочек и правил. Вот как их создавать и управлять ими:

Создать таблицу #

nft add table inet my_table

Эта команда создает новую таблицу с именем my_table в inet семейство, которое поддерживает как IPv4, так и IPv6.

Удалить таблицу #

nft delete table inet my_table

Удаляет my_table из inet семьи.

Цепи в nftables #

Цепочки — это последовательности правил, которые определяют, как обрабатываются пакеты. Каждая цепочка имеет определенный hook, который определяет стадию фильтрации пакетов (например, input, output или forward).

Создать цепочку #

nft add chain inet my_table my_chain { type filter hook input priority 0; }

Это создает input цепь в my_table для фильтрации пакетов с приоритетом 0.

Удалить цепочку #

nft delete chain inet my_table my_chain

Удаляет my_chain от my_table.

Правила в nftables #

Правила определяют действия для пакетов, которые соответствуют определенным условиям. Ниже приведены примеры добавления, перечисления и удаления правил.

Добавление правил #

nft add rule inet my_table my_chain tcp dport 80 accept

Это правило разрешает трафик через TCP-порт 80 (HTTP).

Правила листинга #

nft list chain inet my_table my_chain

Отображает все правила в my_chain.

Удаление правил #

nft delete rule inet my_table my_chain handle <handle_number>

Удаляет правило, указывая его номер дескриптора, который можно отобразить с помощью nft list chain inet my_table my_chain -a.

Пример nftables Конфигурация: базовая настройка брандмауэра #

Вот базовая конфигурация брандмауэра, которая разрешает входящий трафик SSH и HTTP/HTTPS, блокируя весь остальной трафик:

nft add table inet filter nft add chain inet filter input { type filter hook input priority 0\; policy drop\; } nft add rule inet filter input tcp dport 22 accept # Разрешить SSH nft add rule inet filter input tcp dport 80 accept # Разрешить HTTP nft add rule inet filter input tcp dport 443 accept # Разрешить HTTPS nft add rule inet filter input ct state installed,related accept # Разрешить установленные соединения

Дополнительно: правила с отслеживанием состояния и подключения #

nftables имеет встроенную поддержку отслеживания подключений, что позволяет управлять правилами с учетом состояния.

Пример: разрешить связанные и установленные соединения #

nft add rule inet filter input ct state established,related accept

Это позволяет пропускать пакеты из уже установленных или связанных с существующими подключений, помогая сократить ненужную повторную обработку ранее разрешенных подключений.

Резюме #

nftables Команда — это современный и универсальный инструмент для фильтрации сетевых пакетов, предоставляющий унифицированный синтаксис и гибкие возможности управления правилами брандмауэра. С nftablesвы можете создавать эффективные и удобные в обслуживании конфигурации межсетевого экрана, подходящие как для простых установок, так и для сложных корпоративных сред.

📄 Загрузите этот документ в формате PDF #

    EMAIL: *

    Powered by BetterDocs