TGViewer
DevOps by REBRAIN DevOps by REBRAIN @rebrain_devops · 28.8K subscribers
Post #6254 3.6K
Практическое руководство по переходу на Nftables

Делимся записью вебианра с Николаем Лавлинским, который посвящен переходу со старой системы фильтрации IPTables (семейства X-tables) на современный инструмент ядра Linux — Nftables.

↘️ Смотреть в YouTube
↘️ Смотреть в ВК

Краткий конспект

1. Архитектура
Netfilter обрабатывает трафик в ядре Linux до 4-го уровня OSI. X-tables (iptables, ip6tables, arptables, ebtables) — разные утилиты и конфиги под каждый протокол. NFTables — одна утилита nft, один модуль ядра, общий конфиг для всех протоколов.

2. Почему NFTables лучше

— sets работают за O(1) вместо линейного роста времени как в iptables (нужен был отдельный ipset)

— таблиц и цепочек по умолчанию нет — создаёшь только нужное, а не предзаданный filter/nat/mangle

— семейство inet объединяет IPv4 и IPv6 в одном наборе правил

— одно правило может выполнять сразу несколько действий, конфиг применяется атомарно целиком

3. Проверка и миграция


iptables -V

nf_tables в выводе — бэкенд уже новый.


iptables-translate -A INPUT -p tcp --dport 22 -j ACCEPT
iptables-restore-translate -f ipt.rules > nft.rules


4. Базовая настройка


nft add table ip filter
nft add chain ip filter input { type filter hook input priority 0 \; policy accept \; }
nft add rule ip filter input tcp dport 22 counter accept
nft add rule ip filter input iifname "lo" accept
nft add rule ip filter input ct state vmap { established : accept, related : accept, invalid : drop }
nft chain ip filter input { policy drop \; }

Политику на drop переключаем после проверки разрешающих правил.

5. Handle вместо номеров правил


nft --handle list ruleset
nft delete rule ip filter input handle 2
nft insert rule ip filter input tcp dport 22 accept
nft replace rule ip filter input handle 2 tcp dport 22 ct state new accept


6. Sets — замена ipset


nft add set ip filter blackhole { type ipv4_addr \; flags interval \; }
nft add element ip filter blackhole { 1.1.1.1, 192.168.0.0/24 }
nft add rule ip filter input ip saddr @blackhole drop


7. NAT


nft add table ip nat
nft add chain ip nat postrouting { type filter hook postrouting priority 100 \; }
nft add rule ip nat postrouting oifname "enp1s0" masquerade
nft add rule ip nat prerouting iifname "enp1s0" tcp dport 80 dnat to 192.168.1.100


8. Персистентность


nft -s list ruleset > /etc/nftables.conf
systemctl enable nftables


Итог
Nftables заменяет весь стек x-tables (iptables, ip6tables, arptables, ebtables, ipset) одной утилитой и одним модулем ядра, даёт sets за O(1) и правила по handle вместо номеров.

Если хочешь узнать больше, начни с бесплатного демодоступа к практикумам:

🔥Начать Linux Basics

🔥Начать Linux: Анализ производительности и тюнинг

🔥
Начать Повышение привилегий в Linux
  • 🔥 17
  • 👍 10
  • ❤ 7
  • 💯 4
More from @rebrain_devops
  1. Oct 16, 2026Обновили курс Redis: теперь на Redis 8 и с тренажёрами В Redis 8 в ядро вошли Query Engine…
  2. Oct 16, 2026Обновили курс Kubernetes Admin Собрали всю обратную свзяь от вас и приняли решение выпусти…
  3. Oct 16, 2026Post #6355
  4. Oct 16, 2026photo post
  5. Oct 15, 2026Новый курс: Highload: Monitoring & Observability Алерт пришёл, дашборд красный, а чтобы на…
  6. Oct 15, 2026🗓️ Расписание вебинаров на сегодня ⏰ 19:00 МСК - Мониторинг MySQL и PostgreSQL c PMM 🔗 Р…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →