LINUX.ORG.RU
ФорумTalks

iptables vs nftables

 , ,


0

2

А расскажиет в чем плюсы nft по сравнению с обычным iptables? Все никак не дойдут руки на него перейти, когда начинаю изучать то прихожу к выводу что там все тоже самое, но с другим синтаксисом. Ну да, ipset встроенный, комбинация ipv4 и ipv6, что-то еще?

★★★

Последнее исправление: Kolins (всего исправлений: 1)

Я в 2004’м году начинал изучать iptables, ещё в 2006’м году попробовал.

Но потом понял, что очевидные угрозы безопасности исходят из других контуров.

Пришлось переориентироваться, и уйти из админов обратно в программисты.

i_am_not_ai
()

У nftables более удобный синтаксис, имхо. Но функциональность пока еще несколько меньше.

В целом если тебе нужны простые вещи типа закрыть порты, открыть порты, открыть порты по стуку, собрать немного статистики, заблочить адреса и подсети, то nftables будет удобнее (если опыта с iptables нет).

soomrack ★★★★
()
Ответ на: комментарий от soomrack

Как раз так с iptables опыт есть и большой и нужно сложные вещи, типа маркировки трафика под pbr делать иногда

Kolins ★★★
() автор топика
Последнее исправление: Kolins (всего исправлений: 1)
Ответ на: комментарий от Kolins

Тогда тебе оно не нужно, от добра добра не ищут.

PS:

chatgpt:

NFT (nftables) и iptables - это две разные программы, которые предназначены для управления firewall в Linux.

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

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

Кроме того, NFT имеет встроенную поддержку ipset, что позволяет упростить и оптимизировать работу с большими списками IP-адресов или сетей.

В целом, NFT предлагает более современный и гибкий подход к настройке firewall, чем iptables, и может быть особенно полезен в сценариях с высокой нагрузкой или сложными правилами фильтрации трафика. Однако, если у вас уже есть хорошо настроенный firewall на базе iptables, переход на NFT может не иметь смысла, если нет конкретной потребности в новых функциях.
soomrack ★★★★
()

что-то еще?

Ага. Оно живое, а iptables лежит в открытом пока гробу, вокруг которого проходит церемония прощания.

thesis ★★★★★
()

Все никак не дойдут руки на него перейти

+1

anc ★★★★★
()

Какая разница? Да хотя бы nft был куском говна в сравнении с iptables — корпорации сказали закапывать, а сообществу кушать новое, что дали. Вариантов нет, учи.

Vsevolod-linuxoid ★★★★★
()

Обновление ради обновления не нужно. Когда у тебя возникнет какая-то потребность, и ты где-то прочтёшь, что для её реализации нужно nftables - тогда и изучай.

firkax ★★★★★
()
Ответ на: комментарий от soomrack

Безопасники сейчас ерундой заняты. Вместо изучения реализаций IP-стека. Типа, должность требует. Ко мне как-то приходили, изучали вопрос - почему я файл hiberfill.sys переименовал.

i_am_not_ai
()

nftables из правил генерирует байткод, iptables вызывает сишные обработчики на каждое правило. В результате nft получается быстрее.

snizovtsev ★★★★★
()
Ответ на: комментарий от i_am_not_ai

Вместо изучения реализаций IP-стека.

Какой смысл изучать реализации IP-стека, если такие как ты hiberfill.sys переименовывают.

vvn_black ★★★★★
()
Ответ на: комментарий от snizovtsev

Хорошо бы увидеть эту разницу в скорости в цифрах .

Да, все проверки содержимого пакета через ebpf будет быстрее, а все остальное не отличается от iptables.

Пока у nft есть один жирный минус - оно не модульное. Нельзя добавить свой модуль без перекомпиляции всего пакета, в отличии от iptables.

Из существенных плюсов - возможность выполнения в одном правиле нескольких действий.

IMHO в nft более сложный (многословный) синтаксис.

vel ★★★★★
()
Последнее исправление: vel (всего исправлений: 1)
Ответ на: комментарий от vel

https://developers.redhat.com/blog/2017/04/11/benchmarking-nftables

Да, все проверки содержимого пакета через ebpf будет быстрее

Скорее всего да, т.к. для nftables VM не реализован JIT, как для eBPF. На LKML есть дискуссия и даже какой-то патч, который должен выпилить виртуальную машину nft в пользу ebpf. Но там вроде бы всё упёрлось в то, что для nft поддерживается что-то вроде инкрементального релоада жирных правил, а ebpf программа может быть обновлена только целиком. Т.е. как я понял – добавление нового правила в nft происходит моментально, а если перевести это дело на ebpf – то время реконфигурации увеличится в разы.

Пока у nft есть один жирный минус - оно не модульное. Нельзя добавить свой модуль без перекомпиляции всего пакета, в отличии от iptables.

Есть такое. Ещё для iptables есть модуль фильтров на ebpf, а для nftables нет (т.к нужно всё сводить к nft vm).

snizovtsev ★★★★★
()
Ответ на: комментарий от snizovtsev

Ещё для iptables есть модуль фильтров на ebpf

Ты пробовал им воспользоваться ? Судя по всему мёртвый.

3 или 4 года назад я пытался найти способ его использовать, но все было устаревшим!

Идея простая - tcpdump-ом скомпилил из фильтра BPF, далее сконвертировал его в eBPF и скормил iptables.

Так вот хрен вам. До сих пор нет транслятора из BPF в eBPF. Точнее он есть, но абсолютно неработоспособный, т.к. в ядре уже все поменяли.

И еще, держать на роутере llvm для компиляции фильтров - это дурка!

vel ★★★★★
()
Ответ на: комментарий от vel

Не пробовал. Скорее мертвый, да. Рекомендуемый сейчас метод использования ebpf в сетевом стеке, насколько я понимаю, это приаттачить bpf программу к tc, проставлять в ней mark и использовать эту метку в netfilter.

держать на роутере llvm для компиляции фильтров

Ну можно же компилировать не на роутере.

snizovtsev ★★★★★
()
Ответ на: комментарий от snizovtsev

Где-то читал, что современный iptables является фронтэндом для nft и правила там тоже в байткоде хранятся, найти не могу, может я не правильно понял конечно.

Но вообще плюс в карму nft добавляю.

Kolins ★★★
() автор топика
Ответ на: комментарий от Kolins

Нет, в ядре 2 множества модулей: для iptables (xtables) и для nftables. Есть userspace тулзы от nft, которые могут подменить userspace тулзы от iptables и конвертировать команды в nft.

snizovtsev ★★★★★
()
Ответ на: комментарий от Kolins

Да. Иптаблесы без проблем могут фильтровать просто по присутствию нужного текста в пакетах, очень удобно телефонные сканеры отшибать по user-agent.

Когда игрался с подобным в nft, нагуглил типа разработчикам L7 сделать сложно/неприятно/невозможно. Может пофиксили.

yu-boot ★★★★
()

В журнале Хакер как-то была статья что nftables лучше.

Xant1k ★★
()
12 декабря 2023 г.
Ответ на: комментарий от firkax

не подскажите случаем, а правило по доменному имени хоста можно было в iptables добавлять и стало ли доступно это в nftables ?

wolverin ★★★
()
Ответ на: комментарий от wolverin

И как оно по-твоему будет работать? Файрволл должен пачку днс запросов делать на каждый обрабатываемый пакет? Не говоря уж о том что ядро в принципе ни про какие днс ничего не знает (и не должно знать - это всё обёртка на уровне приложений).

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 3)
Ответ на: комментарий от firkax

т.е. геморой с прописыванием и затем актуализацией адресов остался… вроде где то писалось что как раз в нфтаблес это исправили

wolverin ★★★
()
Ответ на: комментарий от wolverin

Что значит «исправили»? Ещё раз: как, по-твоему, это должно работать? Магией?

firkax ★★★★★
()
Ответ на: комментарий от wolverin

ты можешь вписать имя, но оно будет отрезолвлено один раз и вписано как ip. https://github.com/azlux/nft-dns есть такой костыль, если очень хочется.

Kolins ★★★
() автор топика
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)