URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 120865
[ Назад ]

Исходное сообщение
"Выпуск пакетного фильтра nftables 0.9.5"

Отправлено opennews , 07-Июн-20 10:56 
Опубликован выпуск пакетного фильтра nftables 0.9.5, развивающегося в качестве замены iptables, ip6table, arptables и ebtables за счёт унификации интерфейсов фильтрации пакетов для IPv4, IPv6, ARP и сетевых мостов. В пакет nftables входят компоненты пакетного фильтра, работающие в пространстве пользователя, в то время как на уровне ядра работу обеспечивает подсистема nf_tables, входящая в состав ядра Linux начиная с выпуска 3.13. Необходимые для работы выпуска nftables 0.9.5 изменения включены в состав ядра Linux 5.7...

Подробнее: https://www.opennet.dev/opennews/art.shtml?num=53106


Содержание

Сообщения в этом обсуждении
"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Аноним , 07-Июн-20 10:56 
>> Необходимые для работы выпуска nftables 0.9.5 изменения включены в состав ядра Linux 5.7.

А на лтс 5.4 не будет работать новая версия?


"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено expert , 07-Июн-20 12:59 
ну и извращения. Чтобы прописать простое правило мне еще и кодить надо. Вопрос нафига?

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено pfg21 , 08-Июн-20 16:46 
ну дык, никто не запрещает сделать конвертилку из команд иптейблес в байт-код нфт и ок.    
тут просто возможностей больше.

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Аноним , 07-Июн-20 19:40 
Будет работать даже на 3.13, но только в том объеме, который реализован в ядре. Новые функции будут просто возвращать ошибку.

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Аноним , 07-Июн-20 11:39 
Как посмотреть текущие правила в читаемом виде?

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Аноним , 07-Июн-20 12:04 
nft list ruleset
Обязательно под рутом.

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено DesSolo , 07-Июн-20 12:05 
nft list ruleset

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Andrew , 07-Июн-20 12:29 
Поддерживаю вопрос с ударением на слове "читаемом" :) Текущий вывод nft list ruleset трудно назвать читаемым...вот, примерно как JSON - вывод больше для машины, чем для человека.

Предположим, что разные обвязки (тот же firewalld) успешно абстрагируют "пользователя" от необходимости читать этот вывод и прыгать между ссылками на цепочки беря на себя управление...но, при этом они же не гарантируют соответствия между своим ожидаемым (сохраненные в конфигурации) состоянием и текущими правилами (поскольку последние, как прежде в iptables и т.д. могли быть модифицированы напрямую в обход обвязки).

Итого, остаётся только ждать появления или способствовать появлению 100500+ разных обвязок которые будут читать, парсить и делать вывод nft понятным для людей (структурированным и последовательным).


"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено microsoft , 07-Июн-20 12:34 
Ага всетаки аналога iptables -L не предполагается. Да чтож такое то

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Andrew , 07-Июн-20 12:54 
Насчёт JSON...любопытства ради добавил к команде флаг -j (Format output in JSON): лучше не стало, так что после такого, текущий вывод уже начинает казаться читабельным ^_^

Сам факт наличия флага для вывода информации в JSON одновременно и радует (значит при желании можно распарсить и преобразовать в нечто субъективно более адекватное текущему выводу), но и (субъективно) тонко намекает на две вещи:
- раз оба варианта вывода информации плохо предназначены для чтения людьми, то по задумке, люди их в таком виде каждый день читать и не должны.
- текущий вывод - предел читабельности который заложен (и не исключено, что так и будет).

P.S. После того, как посмотрел на вывод в формате JSON стал замечать за собой желание перейти на сторону (и начать защищать) авторов формата вывода правил в том виде как он есть...25-ый кадр во время листинга правил поймал, не иначе.

P.P.S. Главное, чтобы от долгого смотрения в правила nft они не начали смотреть в вас.


"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Аноним , 07-Июн-20 16:56 
>  Поддерживаю вопрос с ударением на слове "читаемом" :) Текущий вывод nft list ruleset трудно назвать читаемым...вот, примерно как JSON - вывод больше для машины, чем для человека.

Тем не менее, уже четверть века, по мнению большинства, эталоном читаемых правил фаервола остаётся pf из OpenBSD.
block in quick  on egress inet from { 127.0.0.0/8, 192.168.0.0/16, \
   172.16.0.0/12, 10.0.0.0/8 } to any
block out quick on egress inet from any to { 127.0.0.0/8, \
   192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8 }

Что-то я не улавливаю тонкой разницы, которая делает синтаксис pf идеальным, а синтаксис nftables — нечитаемым.


"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Аноним , 07-Июн-20 18:39 
Большинства пользующихся BSD?

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Аноним , 08-Июн-20 03:54 
> Что-то я не улавливаю тонкой разницы

В вашем примере нет ссылок, зачем вы его показали?


"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Аноним , 08-Июн-20 13:36 
> эталоном читаемых правил фаервола

Пока туда не завезут кастомных цепочек, набор правил хотя бы в 30-40 правил неизбежно будет превращаться в нечитаемую лапшу. skipto - костыль, а по другому оно не умеет.


"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Аноним , 07-Июн-20 17:17 
> JSON - вывод больше для машины, чем для человека.

С дуба рухнул? Для машин это ни в одном глазу неудобно, это для двуногих перекуривших JS.


"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Аноним , 07-Июн-20 22:00 
Осталось yaml впилить

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено gogo , 07-Июн-20 11:49 
и с этим дерьмом теперь придется жить... (

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено крокодил мимо.. , 07-Июн-20 12:03 
всё, как в Win.. э-эмм.. простите, а оно уже умеет в разбор трафика на уровне приложений, как, например, в Windows-firewall?

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Аноним , 07-Июн-20 12:11 
По-моему еще во времена iptables выкинули. Рекомендутся uid/gid, возможно cgroup.

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено крокодил мимо.. , 07-Июн-20 12:17 
ну-да, ну-да.. "ненужно"©™.. ога.. особенно на выделенном серваке контроль исходящего трафа по приложениям - совершенно лишняя шняга..
"даже не знаю, что сказать.. всё отлично.. всё просто отлично.."©(Феечка)

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Аноним , 07-Июн-20 16:51 
Для _серверных_ приложений (т.е. демонов) — уже давно есть https://www.freedesktop.org/software/systemd/man/systemd.res...Б─╕

Попробуйте ещё раз.


"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Аноним , 07-Июн-20 17:07 
Замечательный движок опеннета побил якорь в ссылке (в предпросмотре было нормально). Поэтому специально для труЪ oдминов — смотреть описание опций IPAddressAllow и IPAddressDeny.

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено InuYasha , 08-Июн-20 16:39 
Т.е. я правильно понял, что всем, кто захочет что-то позакрывать для, допустим, MySQL, придётся редактировать его unit-файл (который потом перепишет установщик пакетов)?

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Аноним , 08-Июн-20 19:46 
Садись, два и линейкой по рукам. За что линейкой? За то, что пошёл править дистрибные файлы, которые притащил пакет.

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Аноним , 08-Июн-20 21:44 
> Т.е. я правильно понял, что всем, кто захочет что-то позакрывать для, допустим, MySQL, придётся редактировать его unit-файл

Правильно. systemctl edit mysql.service

> (который потом перепишет установщик пакетов)?

Неправильно. Не надо мыслить категориями veteran unix admins (простреливаем себе ногу, страдаем, гордимся, потому что это KISS).

Управляемая пакетным менеджером конфигурация находится в /usr/lib/systemd, управляемая администратором — в /etc/systemd. Конфиги админа имеют приоритет над дистрибутивными.


"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Andrew , 09-Июн-20 10:44 
Мало того, что простреливаем свою ногу, так ещё и кладём мину замедленного действия под ноги тем, кто в один прекрасный момент столкнется с тем, что старый подход к использованию новых инструментов привёл к неожиданному результату :)

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено RomanCh , 09-Июн-20 14:12 
Извините, не сдержался, хочу набросить!

> Неправильно. Не надо мыслить категориями veteran unix admins (простреливаем себе ногу, страдаем, гордимся, потому что это KISS).

Я например знаю что и куда правильно писать. Но честно говоря не ковырял вопрос а что будет, если я вот такой вот умный и знающий сделал правильный юнит в правильном месте. А потом прилетела новая версия пакета, и в ней старые параметры что в моём юните записаны не поддерживаются уже (не говорите что такого не бывает). При этом она обновила дефолтный конфиг в /usr/... а мой молча оставила. И конечно же у меня от этого всё сломается, но узнаю я об этом только в момент когда оно стало не работать, а не в момент когда стал устанавливать пакет и он мне ругнулся что "вижу правки файла, что сделать - оставить ваши, оставить мейнтенера вариант, или смержить?"

Эта ситуация как-нибудь обрабатывается, или тут просто новый способ отстрелить себе ногу?

> Управляемая пакетным менеджером конфигурация находится в /usr/lib/systemd, управляемая администратором — в /etc/systemd.

А вот это, вот это за что, за какие грехи? Я давно это знаю, но каждый раз удивляюсь - почему вдруг системные дефолты свалились в */usr/... (от user, т.е. пользовательское), а как раз пользовательские правки вдруг разместились в /etc? Ещё раз повторюсь, что я знаю всё это, но мне интересно как пришли именно к такому способу мышления? Такое ощущение, что от ненависти к старым порядкам, в которых подразумевалось что всё наоборот. Типа до основания, а затем!..

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


"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Вебмакака , 09-Июн-20 18:09 
>*/usr/... (от user, т.е. пользовательское)

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


"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено RomanCh , 09-Июн-20 23:51 
> Лол. Это "пользовательское" в юниксе случайно образовалось, там были хомяки, а потом
> у олдфагов закончился диск, на котором корень лежал. Барахлишко из корня
> частично перетащили в usr, да так и оставили. Так что на
> самом деле это ничего не значит.

Да в общем-то в юниксах, и не только в них, много чего случайно образовалось. И сложилось сперва в традицию, а потом в стандарт. creat(), например. Что, давайте исправим наконец уже эту опечатку и переименуем наконец в create()!

И тут приходят такие чуваки, у которых "на самом деле это ничего не значит" и делают всё в стиле "художник так видит". NIH синдром в чистом виде, короче говоря, про это уже много писано.

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

PS Кстати о традициях, вы если посмотрите, то обнаружите что и законы в человеческих обществах похожим образом делаются. Давайте тоже решим что они ничего не значат :)


"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Вебмакака , 10-Июн-20 09:22 
>И тут приходят такие чуваки, у которых "на самом деле это ничего не значит" и делают всё в стиле "художник так видит".

Да. А вы думали, только дедам можно что-то менять? Не было принято, так щас будет. Вжух и дефолтные конфиги лежат в usr, новый стандарт.

>NIH синдром в чистом виде, короче говоря, про это уже много писано.

Это не NIH, а решение проблемы, которая до этого была проигнорирована.

>Но это всё действительно малозначащие детали, говорящие в основном об уважении авторов к остальным, нежели о качестве софта. Мне больше интересен ответ на конкретный технический вопрос.

Технически если у вас нормальный дистрибутив, вам не ломают совместимость конфигов. Если у вас Арч, вы знали на что идете.

>PS Кстати о традициях, вы если посмотрите, то обнаружите что и законы в человеческих обществах похожим образом делаются. Давайте тоже решим что они ничего не значат :)

Вы там может по уложениям 17 века живёте, а у нас законы меняют.


"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено RomanCh , 10-Июн-20 17:37 
> Да. А вы думали, только дедам можно что-то менять?

Мы ничего не думали. Мы видим что деды вполне нормально для своих времён сделали, а не сломали чужое.

> Это не NIH, а решение проблемы, которая до этого была проигнорирована.

Да не, это он самый. Или объясните мне что мешало решить проблему не ломая стандартов? Есть техническое обоснование? Интересно будет ознакомиться.

> Технически если у вас нормальный дистрибутив, вам не ломают совместимость конфигов.

А слабо не юлить, а просто взять и ответить что будет в случае описанном мною выше?

> Вы там может по уложениям 17 века живёте, а у нас законы меняют.

Где там, кто "вы", где у вас? Столь радикальным образом законы меняются только в ситуации "всё до основания, а затем". Но вообще-то это тогда иначе называется.

Кто в лес, кто по дрова. Уже в своих ногах запутались. Лучше на конкретный технический вопрос ответьте.


"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено RHEL Fan , 10-Июн-20 17:14 
На сколько я помню, usr - Unix System Resources

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено RomanCh , 10-Июн-20 17:44 
> На сколько я помню, usr - Unix System Resources

По воспоминаниями из книжек - таки User, а не Unix. Педивикия говорит то же самое даже ссылаясь сюда https://www.pathname.com/fhs/pub/fhs-2.3.html - правда тут дословно этого нет, хотя по логике вещей это именно user. Т.к. там лежат как раз не-системные утилиты.


"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Andrew , 09-Июн-20 10:46 
Вообще, функционал интересный, жаль только, что появился он сравнительно не давно и, например, в RHEL/CentOS 7 (с которыми ещё минимум пару лет работать) этот патч так и не портировали.

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Аноним , 08-Июн-20 19:17 
> контроль исходящего трафа по приложениям - совершенно лишняя шняга..

А как вообще можно представить фильтр по "приложению"? Номер pid указать, или argv[0] анализировать? А если будет fork?

Если процесс нужно изолировать - запусти его от специального пользователя (или специальной группы) и изолируй сколько влезет. У меня, например, есть группа ipblacklist, для которой никакого сетевого обмена быть не может.
Можно наоборот (и сейчас это даже лучше!) - сделать группы localnet/globalnet, для которых разрешен сетевой обмен.

Если лень с uid/gid ковыряться - бери cgroups (кажется там и в рантайме можно туда/сюда процессы перемещать, соответственно фильтр можно вообще в рантайме изменить).


"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено And , 07-Июн-20 12:19 
На уровне приложения-то и нужно больше всего. В на век телеметрии...

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено microsoft , 07-Июн-20 12:31 
Ничего ничего зайдеш под безопасным рутом и правила то накарябаеш.

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Аноним , 07-Июн-20 17:12 
> На уровне приложения-то и нужно больше всего. В на век телеметрии...

Как правило, основные отправители телеметрии — это браузеры.
Будете им запрещать доступ в интернет?


"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Takishima , 07-Июн-20 18:07 
Разумеется.

firejail + squid с white-листами


"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Аноним , 08-Июн-20 15:45 
И некоторое количество возни с ssl_bump, если нужна полноценная L7-фильтрация.

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


"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Takishima , 08-Июн-20 16:44 
Ну, можно с peek+splice жить, по крайней мере по хостам резать доступ — уже хорошо. Настраивается легко.

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Аноним , 08-Июн-20 01:27 
> Будете им запрещать доступ в интернет?

uMatrix это до некоторой степени умеет, приколитесь?!


"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Аноним , 08-Июн-20 15:42 
Боюсь, что со встроенной в браузер телеметрией он ничего поделать не сможет.

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Takishima , 08-Июн-20 16:46 
> Боюсь, что со встроенной в браузер телеметрией он ничего поделать не сможет.

Ungoogled chromium же

А в Firefox'е почти всё отключается в конфиге (кроме firefox.settings.services.mozilla — но либо пропатчить и перекомпилять, либо hosts/squid/файрволом закрыть).


"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Аноним , 08-Июн-20 21:46 
> Ungoogled chromium же

Что-то после историй с Brave, сборочкам от Васи верить не очень хочется.


"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Бармалей. , 07-Июн-20 16:33 
Это можно сделать сделать с помощью дополнительных модулей - Dtrace, Bpftrace, или написать самому модуль ядра для линукс на С, обрабатывающих пакеты от приложений и записывающий их pid, или если ленивый то есть готовое решение - opensnitchd

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Аноним , 07-Июн-20 17:18 
iptables сто лет умеет в фильтры по pid, например...

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Аноним , 07-Июн-20 17:24 
Сто лет НЕ умеет, если быть точным.
С тех, как в Linux появилась поддержка SMP.

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Аноним , 08-Июн-20 13:39 
-j NFQUEUE

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Takishima , 07-Июн-20 19:38 
> и с этим дерьмом теперь придется жить... (

Всё повторяется. 20+ лет назад то же самое было — уютный тёплый ламповый ipfwadm заменили на ipchains (вместе с переписанным с нуля IP стеком), сколько воя было.

Большинство комментаторов, наверное, даже в 1 класс ещё тогда не ходило.


"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Аноним , 08-Июн-20 04:00 
С чего это тоже самое? Абсолютно разные ситуации.

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Аноним , 07-Июн-20 12:23 
аналог netmap так и не завезли?

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено ZiP File , 07-Июн-20 12:50 
Когда уже в линукс портируют нормальный файрвол... Тео, дай свет безумцам!

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Сейд , 07-Июн-20 12:57 
firewall-config

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено нггнш , 07-Июн-20 13:22 
Нормальный это про Agnitum Outpost

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено microsoft , 07-Июн-20 14:39 
ого, а он еще жив?

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено нггнш , 07-Июн-20 17:49 
это не отменяет его качества

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Аноним , 08-Июн-20 01:29 
Да вообще-то глючная штука.

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Аноним , 07-Июн-20 17:09 
> Когда уже в линукс портируют нормальный файрвол... Тео, дай свет безумцам!

Выше на nftables ругаются именно из-за pf-подобного синтаксиса.
Получается, pf уже не катит в качестве "нормального файрвола"?


"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Аноним , 08-Июн-20 04:03 
> pf-подобного синтаксиса

Где вы там его увидели? Или вам раз фигурные скобки есть — значит pf?


"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Аноним , 08-Июн-20 15:38 
Проще надо быть. Фигурные скобки есть — значит, JSON.
Просто у pf и nftables JSON не вполне корректный.

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Онаним , 07-Июн-20 13:16 
Синтаксис вроде всем хорош, но выглядит удолбищно. Как-то надо это всё упрощать. Может быть действительно JSON, как некоторые предлагают.

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Онаним , 07-Июн-20 13:20 
То есть допустим не

ip daddr @y и отдельно set

а что-то вроде

"z":{"filter":"daddr","proto":"ip","daddr":["192.168.10.35", "192.168.10.101", "192.168.10.135"]}

для простых правил

кому надо set, можно записать как

"y":{"set":"ip", "ip":["192.168.10.35", "192.168.10.101", "192.168.10.135"]}
"z":{"filter":"daddr","proto":"ip","daddr":"set:y"}

короче трансляторы под это дело лепить и лепить ещё


"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено srgazh , 07-Июн-20 15:04 
Годная новость! https://github.com/devkid/nftables-systemd вообще сказка!

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Бармалей. , 07-Июн-20 16:29 
Только смысл в этой новизне? Нфт также работает через тот же нетфильтр и все, единственный плюс - объединение айпи протоколов - для всех протоколов сразу правила можно писать и всё, а так ничего принципиально нового, в нфт нельзя сделать ничего что нельзя сделать в иптаблес, другой вариант написания правил и все, это как один и тот же документ набить в разных редакторах, дело только в удобство

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Takishima , 07-Июн-20 18:01 
Плюс в том, что iptables — кривая хрень с кучей легаси, которое пришло время переписать. Смотри: https://youtu.be/CCHV-W4Oh04?t=187

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено OpenEcho , 07-Июн-20 19:18 
Вот когда в модерн/кул/тремендоус/эмайзинг инструменте будет совпадать документация с актуальщиной, то можно будет подумать, может ли он заменить "легаси"...

Один из примеров:
   man nft:
  "export Print the ruleset in machine readable format. The mandatory format parameter may be either xml or json."

Пробуем: nft export json
результат:
Error: this output type is not supported
export json
^^^^^^^^^^^^

Но почему-то не документированный ключ -j вполне себе понимает жсон

nft -j list ruleset


"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Takishima , 07-Июн-20 19:27 
> Вот когда в модерн/кул/тремендоус/эмайзинг инструменте будет совпадать документация
> с актуальщиной, то можно будет подумать, может ли он заменить "легаси"...

iptables не умел json

Да и вообще, кому нужен json этот адовый?

>    man nft:
>   "export Print the ruleset in machine readable format. The mandatory
> format parameter may be either xml or json."

Это откуда такое? меня в мане про '-j' написано

> Но почему-то не документированный ключ -j вполне себе понимает жсон
> nft -j list ruleset

Так работает, да. В man'е тоже написано


"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено OpenEcho , 07-Июн-20 20:25 
>Да и вообще, кому нужен json этот адовый?

Тем кто понимает зачем он нужен :) (репрезентация/сравнение/мониторинг на фронт эндах в больших конторах)

>Это откуда такое? меня в мане про '-j' написано

Debian 10 (Buster) - latest release

>Так работает, да. В man'е тоже написано

Может быть, но только не в самом популярмом линух дистрибутиве ака Debian


"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Takishima , 07-Июн-20 21:04 
> Тем кто понимает зачем он нужен :)

Гы, ну речь не про JSON вообще — а про json вывод nftables. Зачем?

> но только не в самом популярмом линух дистрибутиве ака Debian

Ну у меня тоже Debian.


"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено OpenEcho , 07-Июн-20 21:44 
> Гы, ну речь не про JSON вообще — а про json вывод
> nftables. Зачем?

Я ж уже сказал - затем что удобно парсить на фронэнде/мониторинге, т.к. формат поддерживается практически везде

>> но только не в самом популярмом линух дистрибутиве ака Debian
> Ну у меня тоже Debian.

Ну тогда сравните на предмет опции -j
https://manpages.debian.org/testing/nftables/nft.8.en.html

с

man nft

сходится?



"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Аноним , 07-Июн-20 21:58 
Даже интересно стало, что вы там мониторите через json в фаерволе?

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено OpenEcho , 07-Июн-20 22:01 
> Даже интересно стало, что вы там мониторите через json в фаерволе?

Сходство рулсетов в кластере


"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Takishima , 07-Июн-20 22:05 
>> Даже интересно стало, что вы там мониторите через json в фаерволе?
> Сходство рулсетов в кластере

Что-то велосипедом попахивает. В кластере по определению такие вещи должны быть одинаковыми на всех узлах. Раскидываем один и тот же конфиг Ansiblt'ом (например) и всё.


"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено OpenEcho , 08-Июн-20 07:23 
> Что-то велосипедом попахивает.

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



"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Аноним , 08-Июн-20 08:32 
Смузи допей сначала, потом оркестраторы для администрирования пакет-фильтров прикручивай.

Такие вещи оркестратором не делаются, а любой zero-touch делается последовательно по нодам.


"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Takishima , 08-Июн-20 10:36 
А у тебя борода отклеилась и свитер без оленей.

Такие вещи делаются так, как адекватно для конкретной ситуации. Не вижу никакой проблемы раскатать ансиблом файрвол. Не нравится анисбл — ок, chef или даже CFEngine можно использовать.


"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Andrew , 08-Июн-20 10:32 
К сожалению, раскидать правила тем же Ansible не равно убедиться в том, что правила совпадают: к сожалению (для тех, кто хочет контролировать этот момент) и счастью (тех, кто рад тому, что сторонний софт делает часть "грязной" работы) некоторые программные продукты могут самостоятельно модифицировать правила фаервола.

Наглядный пример такого софта: Docker, который не первый год благополучно доставляет этим неудобство тем, кто хочет быть уверен в том, что в мир открыты только ожидаемые порты...и столь же благополучно помогает выставлять в мир что попало тем, кто просто хочет увидеть результат работы своего кода в действии.

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

Ну, а ещё, будем реалистами: кроме софта, возможность управлять правилами, как правило есть ещё у операторов которые далеко не всегда горят желанием отразить сделанные на лету изменения хотя бы в локальной версии конфига, не то, что где-нибудь ещё (в коде того же Ansible).

Иначе говоря, проверять правила фаервола на соответствие ожидаемому состоянию - правильно, тем более в кластерах и, тем более, если на этих правилах многое держится.


"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Takishima , 08-Июн-20 10:42 
> некоторые программные продукты могут самостоятельно модифицировать правила фаервола.

Ну так не надо им этого разрешать.

> Наглядный пример такого софта: Docker,

apt-get purge -y docker

Если надо отдельные контейнеры, то берём podman. Если это таки кластер, то там, видимо куб крутится?

> Пример выше может и не самый удачный, зато наглядный.

Докер, возможно, имеет какой-то смысл на девелоперской машинке, но не более того.

> есть ещё у операторов которые далеко не всегда горят желанием отразить
> сделанные на лету изменения хотя бы в локальной версии конфига, не

Заставить. Иначе рано или поздно будет большая боль.

> Иначе говоря, проверять правила фаервола на соответствие ожидаемому состоянию - правильно,

Я бы тогда уж не проверял, а просто жёстко перезаписывал (puppet/chef/cfenfine на выбор). Заодно и те «операторы» переучатся ручками лезть.


"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Takishima , 07-Июн-20 22:02 
> удобно парсить на фронэнде/мониторинге

У вас уже есть готовое решение для парсинга? Или может быть, когда нибудь?

> Ну тогда сравните на предмет опции

Для Debian есть бэкпорты, там всё это есть (в 0.9.3 есть '-j'). Зачем страдать?

# apt-cache policy nftables
nftables:
  Installed: 0.9.3-2~bpo10+1
  Candidate: 0.9.3-2~bpo10+1
  Version table:
*** 0.9.3-2~bpo10+1 500
        500 http://ftp.ru.debian.org/debian buster-backports/main amd64 Packages
        100 /var/lib/dpkg/status
     0.9.0-2 500
        500 http://ftp.ru.debian.org/debian buster/main amd64 Packages


"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено OpenEcho , 07-Июн-20 19:22 
А да, чуть не забыл, предложенный "новый" синтакс
   nft export vm json
выдает такое ЖСОН чудо : {"nftables":[

и усе, ничего больше...


"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено OpenEcho , 07-Июн-20 20:27 
Минусовальщики, обьясните плиз, в чем мой то криминал?

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Аноним , 08-Июн-20 01:32 
"Ты виноват лишь тем что хочется им кушать" //троллям каким-то.

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Аноним , 08-Июн-20 04:07 
Ты посмел сомневатся в великих людях придумавших и написавших nft!

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено анонн , 07-Июн-20 17:10 
>  напоминающей BPF (Berkeley Packet Filters)

Местами очень-очень напоминающий:
https://minnie.tuhs.org/cgi-bin/utree.pl?file=Net2/usr/src/s...


* This code is derived from the Stanford/CMU enet packet filter,
* (net/enet.c) distributed as part of 4.3BSD, and code contributed
* to Berkeley by Steven McCanne of Lawrence Berkeley Laboratory.
@(#)bpf.h    7.1 (Berkeley) 5/7/91 *
* @(#) $Header: bpf.h,v 1.20 91/04/24 22:06:24 mccanne Locked $ (LBL)

/* ld/ldx fields */
#define BPF_SIZE(code)    ((code) & 0x18)
#define        BPF_W        0x00
#define        BPF_H        0x08
#define        BPF_B        0x10
#define BPF_MODE(code)    ((code) & 0xe0)
#define        BPF_IMM     0x00
#define        BPF_ABS        0x20
#define        BPF_IND        0x40
#define        BPF_MEM        0x60
#define        BPF_LEN        0x80
#define        BPF_MSH        0xa0

/* alu/jmp fields */
#define BPF_OP(code)    ((code) & 0xf0)
#define        BPF_ADD        0x00
#define        BPF_SUB        0x10
#define        BPF_MUL        0x20
#define        BPF_DIV        0x30
#define        BPF_OR        0x40
#define        BPF_AND        0x50
#define        BPF_LSH        0x60
#define        BPF_RSH        0x70
#define        BPF_NEG        0x80
#define        BPF_JA        0x00
#define        BPF_JEQ        0x10
#define        BPF_JGT        0x20
#define        BPF_JGE        0x30
#define        BPF_JSET    0x40
#define BPF_SRC(code)    ((code) & 0x08)
#define        BPF_K        0x00
#define        BPF_X        0x08


https://github.com/torvalds/linux/blob/master/include/uapi/l...

/* ld/ldx fields */
#define BPF_SIZE(code)  ((code) & 0x18)
#define        BPF_W        0x00 /* 32-bit */
#define        BPF_H        0x08 /* 16-bit */
#define        BPF_B        0x10 /*  8-bit */
/* eBPF        BPF_DW        0x18    64-bit */
#define BPF_MODE(code)  ((code) & 0xe0)
#define        BPF_IMM        0x00
#define        BPF_ABS        0x20
#define        BPF_IND        0x40
#define        BPF_MEM        0x60
#define        BPF_LEN        0x80
#define        BPF_MSH        0xa0
/* alu/jmp fields */
#define BPF_OP(code)    ((code) & 0xf0)
#define        BPF_ADD        0x00
#define        BPF_SUB        0x10
#define        BPF_MUL        0x20
#define        BPF_DIV        0x30
#define        BPF_OR        0x40
#define        BPF_AND        0x50
#define        BPF_LSH        0x60
#define        BPF_RSH        0x70
#define        BPF_NEG        0x80
#define        BPF_MOD        0x90
#define        BPF_XOR        0xa0
#define        BPF_JA        0x00
#define        BPF_JEQ        0x10
#define        BPF_JGT        0x20
#define        BPF_JGE        0x30
#define        BPF_JSET        0x40
#define BPF_SRC(code)   ((code) & 0x08)
#define        BPF_K        0x00
#define        BPF_X        0x08

Удивительнейшие совпадения самих опкодов, как и наименования, порядка определения, форматирования и даже комментариев. Если бы не отсутствующий в версии Линукс заголовок:
* This code is derived from the Stanford/CMU enet packet filter,
* (net/enet.c) distributed as part of 4.3BSD, and code contributed
можно было бы черте что подумать, но к счастью ... )))

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено аннонн , 07-Июн-20 17:23 
Ну, чтобы развеять подозрения, вы можете подать в суд на "мерзких линукcятников" за кражу интеллектуальной собственности...
Только, боюсь, вердикт суда вам не понравится.

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено анонн , 07-Июн-20 17:42 
> от аннонн (?), 07-Июн-20,

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

> Ну, чтобы развеять подозрения, вы можете подать в суд на "мерзких линукcятников" за кражу интеллектуальной собственности...

Ну, чтобы охладить очередной батхерт очередных гордых носителей маечки с пингвинчиком от одного упоминания "нечествой" ОС *BSD* – вы можете для начала пересказать мне наш диалог в вашей голове?
Где я там что-то говорил о "подозрениях", "мерзких линуксятниках" и "кражах"?
Я привел только два куска кода и высказал удивление таким вот совпадениям, не выдвигая никаких обвинений - вы же, похоже, уже заранее принялись оправдываться в стиле "да вы че, да мы, да никогда, да вообще не докажете, ха!"

Или как обычно - когда опеннетному носителю маечки с пингвинчиком, за отсутствующим знанием матчасти, нечего возразить аргументативно, начинается очередной детский сад и цирк с понями? ))

> Только, боюсь, вердикт суда вам не понравится.

Только, боюсь, на результат в виде чьего-то проженного кресла - это уже никак не повлияет ))



"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Аноним , 08-Июн-20 01:31 
А что есть "нечествой"? Это не черствой? Или не честной?

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Ананимус , 07-Июн-20 18:58 
У меня только один вопрос к авторам nftables: почему нельзя было просто сделать синтаксис как в pf? Почему опять какая-то страшная срань, которую без мана и трех примеров прочитать невозможно? Почему некоторые правила должны заканчивать ';', а некоторые нет?

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Takishima , 07-Июн-20 19:31 
> У меня только один вопрос к авторам nftables: почему нельзя было просто
> сделать синтаксис как в pf? Почему опять какая-то страшная срань, которую
> без мана и трех примеров прочитать невозможно?

Опять учиться, какая боль, да?

> Почему некоторые правила должны заканчивать ';', а некоторые нет?

Никакие правила там не надо заканчивать ';'
Это нужно только если два или более правила на одной строке.


"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Аноним , 08-Июн-20 04:10 
Было бы чему учиться...

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено InuYasha , 08-Июн-20 16:45 
Когда есть возможность ставить ';' - ставь ';'!
- правило башника (и сишника, само собой)

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Аноним , 08-Июн-20 08:34 
Потому что поколение сменилось. Если раньше был K.I.S.S., то теперь одни понты вперед скиллов бегут.

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Аноним , 08-Июн-20 15:47 
Да, раньше и трава зеленее была.

"Выпуск пакетного фильтра nftables 0.9.5"
Отправлено Аноним , 08-Июн-20 20:17 
Оболочка nft крайне неудобная кривая и баговпнная.