nftables
12 commands
12 shown
Создать input-цепочку с политикой drop
Базовая цепочка с запретом по умолчанию; важно: сначала добавьте accept-правила, иначе заблокируете себя
nft add chain inet filter input '{ type filter hook input priority 0 ; policy drop ; }'
Именованный set как блок-лист IP
Переиспользуемый именованный set; flags interval позволяет хранить CIDR-диапазоны, а не только отдельные хосты
nft add set inet filter blocklist '{ type ipv4_addr ; flags interval ; }' && nft add element inet filter blocklist '{ 10.0.0.0/8, 192.0.2.5 }'
Verdict map для маршрутизации по портам
vmap сопоставляет ключи с вердиктами за O(1); заменяет длинную цепочку правил dport ==
nft add rule inet filter input tcp dport vmap '{ 22 : accept, 80 : accept, 443 : accept, 3306 : drop }'
Показать ruleset с хендлами правил
-a выводит '# handle N' для каждого правила; хендл нужен для удаления одного правила
nft -a list ruleset
Удалить одно правило по хендлу
Точечное удаление без сброса всей цепочки; хендл берётся из nft -a list ruleset
nft delete rule inet filter input handle 7
Именованный счётчик на правиле
Встроенный counter считает пакеты и байты; сброс через nft reset counters inet filter
nft add rule inet filter input tcp dport 22 counter accept comment \"ssh\"
SNAT masquerade для исходящего NAT
Source-NAT исходящего трафика на IP интерфейса; требует существующей postrouting-цепочки типа nat
nft add rule ip nat postrouting oifname \"eth0\" masquerade
DNAT-проброс порта на внутренний хост
Destination-NAT входящего трафика на бэкенд; дополните accept-правилом в forward-цепочке
nft add rule ip nat prerouting iif \"eth0\" tcp dport 443 dnat to 10.0.0.5:8443
Ограничить скорость новых соединений
Подавляет брутфорс SSH; пакеты сверх лимита проваливаются к политике цепочки
nft add rule inet filter input tcp dport 22 ct state new limit rate 10/minute accept
Наблюдать изменения ruleset в реальном времени
Транслирует события add/delete по мере появления; удобно для отладки динамических правил
nft monitor ruleset
Атомарный бэкап и восстановление ruleset
nft -f применяет весь файл атомарно; при ошибке откат целиком, без частичного состояния
nft list ruleset > /etc/nftables.conf && nft -f /etc/nftables.conf
Аппаратная разгрузка через flowtable
Переносит установленные потоки на быстрый путь; 'flags offload' включает аппаратную разгрузку на NIC
nft add flowtable inet filter ft '{ hook ingress priority 0 ; devices = { eth0, eth1 } ; }' && nft add rule inet filter forward ct state established flow add @ft
no commands match