Представлен (http://lists.netfilter.org/pipermail/netfilter-announce/2015...) iptables 1.6.0, первый выпуск новой значительной ветки инструментария для управления пакетным фильтром Linux (http://netfilter.org/). Ветка 1.6 сформирована спустя восемь лет с момента выпуска прошлой стабильной ветки 1.4.x и включает в себя ряд нарушающих совместимость изменений, а также первую официальную реализацию инструментария iptables-compat, построенного поверх инфраструктуры пакетного фильтра nftables (https://www.opennet.me/opennews/art.shtml?num=41282).
Новый слой совместимости iptables-compat позволяет мигрировать на nftables, продолжив использовать привычные инструменты, не отказываясь от синтаксиса iptables и постепенно внедряя новый синтаксис nft (https://home.regit.org/netfilter-en/nftables-quick-howto/). Работающая поверх nftables прослойка включает в себя утилиты iptables-compat, iptables-compat-save, iptables-compat-restore, ip6tables-compat, ip6tables-compat-save, ip6tables-compat-restore, ebtables-compat и arptables-compat, которые являются аналогами штатных утилит без метки "-compat" и используют тот же самый код разбора опций.
Напомним, что подсистема Nftables примечательна унификацией интерфейсов фильтрации пакетов для IPv4, IPv6, ARP и сетевых мостов, а также оставлением в ядре лишь общего интерфейса, не зависящего от конкретного протокола и предоставляющего базовые функции извлечения данных из пакетов, операций с данными и управления потоком. Логика фильтрации и специфичные для протоколов обработчики компилируются в байткод в пространстве пользователя, после чего данный байткод загружается в ядро при помощи интерфейса Netlink и выполняется в специальной виртуальной машине, напоминающей BPF (Berkeley Packet Filters). Подобный подход позволяет значительно сократить размер кода фильтрации, работающего на уровне ядра и вынести все функции разбора правил и логики работы с протоколами в пространство пользователя. Синтаксис правил nft не похож на iptables, основан на реальной грамматике и отличается использованием иерархических блочных структур вместо линейной схемы.
Из изменений iptables 1.6.0, нарушающих совместимость, отмечается удаление устаревших действий (target) MIRROR и SAME, а также прекращение поддержки критерия (match) "unclean", который уже достаточно давно исключён из состава ядра Linux. Кроме того, в новом выпуске представлена достаточна большая порция мелких исправлений и улучшений, которые затрагивают действия CT, REJECT, SET, SNAT, SNPT, DNPT, SYNPROXY и TEE, а также критерии ah, connlabel, cgroup, devgroup, dst, icmp6, ipcomp, ipv6header, quota, set, socket и string.URL: http://lists.netfilter.org/pipermail/netfilter-announce/2015...
Новость: http://www.opennet.me/opennews/art.shtml?num=43552
Давно смигрировал на netfilter. Последний год всё достаточно стабильно. К сожалению, по-прежнему отсутствует -j TCPMSS - для CPE устройств это всё ещё важно.
Вот объясните анонимы, нахрена вы пишете ради того, чтобы написать?!
Иль очкуете, что херню напишете? Ну тогда да, netfilter - это и есть iptables.
> Вот объясните анонимы, нахрена вы пишете ради того, чтобы написать?!
> Иль очкуете, что херню напишете? Ну тогда да, netfilter - это и
> есть iptables.АнОним "хотел" написать nftables же, и ссылка на новость про него есть под этой новостью. Но не смог! Наверное, в глаза ни одного, ни другого, ни третьего не видел. Мы-то с тобой не "очкуем херню пистать", но надо же дать чуть простора мОлодёжи -- пусть же и им можно будет. Не изверги ж мы!
Вы не просто не очкуете, вы ее активно пишите.
> Вы не просто не очкуете, вы ее активно пишите.Успех! Нейден читатель опенета, понявши, что я написал. Он почему-то это пытается _мне_ объяснить. Ну, да, не всё сразу. Удовольствуюсь малым. Спасибо!!!
Рад доставить удовольствие.
Почём?
>> Ну тогда да, netfilter - это и есть iptables.
> АнОним "хотел" написать nftables жеЯ и говорю, описка по-Фрейду.
Были бы тут лайки (нормальные, с указанием того кто лайкнул),
тут бы ни одного комента не было.
> Вот объясните анонимы, нахрена вы пишете ради того, чтобы написать?!
> Иль очкуете, что херню напишете? Ну тогда да, netfilter - это и есть iptables.Сейчас netfilter все-таки уже ближе nftables, а iptables - это надстройка над nftables.
> по-прежнему отсутствует -j TCPMSS - для CPE устройств это всё ещё важно.Гмм..его что реально не впилили в nftables?
Они там свято верят что у всех чистый эзернет в пути и так далее?
>даление устаревших действий MIRRORЯ конечно всего пару раз его использовал за все время пользования, но почему его убрали, прикольная ведь штука ?
И компиляция в байткод, должна была увеличить производительность при разборе правил, сравнительные тесты кто-то уже делал ?
>>даление устаревших действий MIRROR
> Я конечно всего пару раз его использовал за все время пользования, но
> почему его убрали, прикольная ведь штука ?Его выпилили из iptables сто-питсот лет назад, как деструктивная фича.
Шло только с апдейтами patch-o-matic> Works under Linux kernel 2.3 and 2.4. It was removed from 2.5 and 2.6 kernels
> due to it's inherent insecurity. Do not use this target!...
> тесты кто-то уже делал ?Конечно делал, для over 100k строчек правил есть прирост производительности, по этому нужно все сделать на xml и "бинарный формат" для всех без исключения, даже для админов на 50 компов
> Конечно делал, для over 100k строчек правил есть прирост производительности, по этому
> нужно все сделать на xml и "бинарный формат" для всех без
> исключения, даже для админов на 50 комповНу зачем сразу XML, у нас тут не юникс какой-нибудь.
А бинарный формат, точнее, ruleblob, был как раз у старый айпитаблесов :)
Ему более 15 лет, поэтому не нужно, устарело и должно быть заменено на что-нибудь новое. Даёшь Firewalld по умолчанию!
у Firewalld что под капотом? ;)
Какая разница? Iptables устарел по определению! Айти ушагало далеко вперёд, всё надо переписывать!
json RESTful api firewall ?
> всё надо переписывать!Интель и Кингстон наверняка, с превеликим удовольствием, проспонсируют переписывание на жабе/жабо-скрипте или питоне!
Проспонсируют это очень мало вероятно, но ты можешь открыть проект на кикстартере.
> Даёшь Firewalld по умолчанию!agnitumoutpostd :)
>>Firewalld
> agnitumoutpostd :)Гадость какая. //iddqd уже вносили?
>>>Firewalld
>> agnitumoutpostd :)
> Гадость какая. //iddqd уже вносили?idkfa добавить не забудьте, чтоб уж точно никто не прорвался, а то мало ли... ;)
>> Даёшь Firewalld по умолчанию!
> agnitumoutpostd :)antihumanfirewalld
В одном месте я видел ваш новый синтаксис!
Я конечно все понимаю, но можно было оставить синтаксис хотя бы здесь такой как есть.
Это не требует много времени или специальных затрат. Тем более уже есть утилита с новым синтаксисом. Насильственное подсиживание на новый синтаксис попахивает снобизмом и не желание слышать желание пользователя. Я честно пытался пользоваться им. Но там реально все сливается в одном тексте и трудно визуально воспринять нужную информацию.
Похоже и тут форк надо делать.
>Насильственное подсиживание на новый синтаксис попахивает
> снобизмом и не желание слышать желание пользователя. Я честно пытался пользоваться
> им. Но там реально все сливается в одном тексте и трудно
> визуально воспринять нужную информацию.Как я Вас понимаю! Кинулся -- ан systemd кругом. Заговор, насилие и вольюмтаризьм. Не понимают эти сволочные кодеры, что нужно простому потреб**телю их продукта.
Это их бородатый http://lists.gnu.org/archive/html/emacs-devel/2015-12/msg004... науськивает! Супртив нас, _пользотателЕй_. Вирус, тлен и опухоль -- правы были Бил и Стив! Куда бедному пейзанину податься-то? </девочки за мной, в монас^Wвертеп-фон>
> Похоже и тут форк надо делать.
Не надорвитесь только! А то ж как же ж мы то тут без Вас?!
> Как я Вас понимаю! Кинулся -- ан systemd кругом. Заговор, насилие и вольюмтаризьм. Не понимают эти сволочные кодеры, что нужно простому потреб**телю их продукта.
> Это их бородатый http://lists.gnu.org/archive/html/emacs-devel/2015-12/msg004... науськивает! Супртив нас, _пользотателЕй_. Вирус, тлен и опухоль -- правы были Бил и Стив! Куда бедному пейзанину податься-то? </девочки за мной, в монас^Wвертеп-фон>В его словах куда больше смысла, чем в ваших.
> Не надорвитесь только! А то ж как же ж мы то тут без Вас?!
Не переживайте найдутся люди и без меня сделают.
У меня к сожалению нету на это времени.
>> Это их бородатый http://lists.gnu.org/archive/html/emacs-devel/2015-12/msg004... науськивает! Супртив нас, _пользотателЕй_. Вирус, тлен и опухоль -- правы были Бил и Стив! Куда бедному пейзанину податься-то? </девочки за мной, в монас^Wвертеп-фон>
> В его словах куда больше смысла, чем в ваших."Его" - это Ричарда, Била или девелоперз-девелоперз-Стива? Я отказываюсь сравниваться с обоими тремя и считаю Вашу попытку оного сравнения оскорбительным выпадом. С чем и оставлю Вас.
>> Не надорвитесь только! А то ж как же ж мы то тут без Вас?!
> Не переживайте найдутся люди и без меня сделают.
> У меня к сожалению нету на это времени.Пока что наблюдаю людей, которые сделали то, что в новости сверху, и Ваши переживания, исполненные смыслом, и потраченное Вами время на изложение оных тут. Согласен, что-то я тоже разволновался. Выдыхаю!
> "Его" - это Ричарда, Била или девелоперз-девелоперз-Стива?Прошу прощение, забыл уточнить. Столлмана, конечно.
> Пока что наблюдаю людей, которые сделали то, что в новости сверху, и Ваши переживания, исполненные смыслом, и потраченное Вами время на изложение оных тут. Согласен, что-то я тоже разволновался. Выдыхаю!
:)
> Я конечно все понимаюНе льсти себе.
> попахивает снобизмом
Cходи помойся.
> Похоже и тут форк надо делать.
Спорим ниасилишь? Тупые горлопаны вроде тебя только и могут что лужи газафицировать.
> В одном месте я видел ваш новый синтаксис!А надо было шчёлкнуть по ссылочке, и прочитать там:
..."so the syntax remains the same".
И не бурлеть попусту.
Да nft где-то там. Пациент, примите пиримидону и раслабьтесь. Нет, где-то там вам не тут.
Ага, префикс "-compat" просто так сделали.Ну ну.
> Ага, префикс "-compat" просто так сделали.Конечно! И анонсий на таробрском напейсали -- нас, православных пейзан путають!!
> Ну ну.
Тпру-тпру.
Ну так в нормальном дистрибутиве полюбасу симлинки сделают и переключалку. Не ссы, короче, скорее всего ты еще лет пять и не заметишь изменений.
> В одном месте я видел ваш новый синтаксис!Согласен на все 100!
Этот "новый" "синтаксис" (прости, Г-ди!) пусть прикрутят сбоку в виде модуля для мальчиков-извращенцев, администрирующих локалхост. А для нормальных мужиков оставят обычный синтаксис iptables.Иначе, это очередная диверсия против СПО!
>> В одном месте я видел ваш новый синтаксис!
> Согласен на все 100!
> Этот "новый" "синтаксис" (прости, Г-ди!) пусть прикрутят сбоку в виде модуля для
> мальчиков-извращенцев, администрирующих локалхост. А для нормальных мужиков оставят
> обычный синтаксис iptables.
> Иначе, это очередная диверсия против СПО!diversity-я.
> обычный синтаксис iptables.
> Иначе, это очередная диверсия против СПО!Нихрена, только xml, и только прибитый гвоздями к systemd.
На каждое правило пишем свой юнит-файл на 5 строчек, после запуска оных содержимое файла будет рождать xml-файл, который будет генерироваться в бинарный файл, который будет читаться новым iptables, и да, еще именоваться юнит-файлы должны как rule.0001.0001.systemd.iptables.system.systemd@003ZvsdfPo1где 003ZvsdfPo1 - это имя сетевого интерфейса, чтоб никаких там eth0, eth1 и тем более, упаси боже "lolcal" "inet" "office".
> Нихрена, только xml, и только прибитый гвоздями к systemd.
> На каждое правило пишем свой юнит-файл на 5 строчек, после запуска оных
> содержимое файла будет рождать xml-файл, который будет генерироваться в бинарный файл,
> который будет читаться новым iptables, и да, еще именоваться юнит-файлы должны
> как rule.0001.0001.systemd.iptables.system.systemd@003ZvsdfPo1XML - это слишкому юниксвейно, он в инитах солярки и мака используется. Разрабы systemd его сразу лесом пошлют, им виндyзячий INI ближе.
> Согласен на все 100!
> Этот "новый" "синтаксис" (прости, Г-ди!) пусть прикрутят сбоку в виде модуля для
> мальчиков-извращенцев, администрирующих локалхост. А для нормальных мужиков оставят
> обычный синтаксис iptables."Не учите меня жить, и я не скажу вам, куда вы можете идти" - ответил бы на это Pablo Neira Ayuso, главный разработчки nftables и лидер Netfilter Core Team.
> Иначе, это очередная диверсия против СПО!
Скорее, против мамкиных ветеран-админов. И это, кстати, хорошо.
Чем меньше эникеев от СПО - тем лучше.
>против мамкиных ветеран-Вот мне интересно, сий отрок воспитан двумя папами и горд этим? ...или в лесу и горд этим? ...или живёт с "мамкой" и проецирует в комментах? ---В здании есть доктор??
Похоже, вас задело за живое :)
Я этой бучи не понимаю. Посмотрел, что будет. Красивые синтаксис на командах с позиционными аргументами.Вы, я вижу, утверждаете, что старый был более читаем; ну так это у вас похоже профессиональное: Вы глаз уже на старый синтаксис наметали, потому вам теперь и удобнее старый.
А мне вот новый очень даже по душе.
> Вы, я вижу, утверждаете, что старый был более читаем; ну так это
> у вас похоже профессиональное: Вы глаз уже на старый синтаксис наметали,
> потому вам теперь и удобнее старый.А может, просто у человека очень ограничен объем памяти, и новые знания и навыки туда уже не лезут. В народе этот недуг известен как syndrome of "veteran unix admin".
Нужно! А то приходилось самому собирать из гита и мейнтейнить...
кто использоваол модуль string ? он позволяет проверять совпадения больше 255 символов по умолчанию?
> кто использоваол модуль string ? он позволяет проверять совпадения больше 255 символов
> по умолчанию?Там ещё 1 весёлость - не работает если пакетики фрагментированы судя по всему
>> кто использоваол модуль string ? он позволяет проверять совпадения больше 255 символов
>> по умолчанию?
> Там ещё 1 весёлость - не работает если пакетики фрагментированы судя
> по всемуКонечно. "Скользящее окно" как-никак.
Мне как-то всегда было сложно понять такие действия.
Возможно в душе я консерватор, но есть некие фундаментальные вещи с которыми работаешь и уже делаешь все на автомате или заготовленными шаблонами. А тут говорят мол, вот вам nftables - пользуйтесь. Который скорее всего так или иначе придет на замену штатно. Теперь для выполнения обычных задач при настройке сервера придется либо менять nftables на iptables или изучать новый синтаксис. Не у всех есть на это время и желание.Я категорически считаю, что можно было бы и iptables допилить до нужного состояния с нужными/новыми возможностями.
Синтаксис в nftables для меня не удобен, т.к. читать строку за правило мне куда проще, чем разбираться в блоках.
Но это ИМХО.
> Мне как-то всегда было сложно понять такие действия.
> Возможно в душе я консерватор, но есть некие фундаментальные вещи с которыми
> работаешь и уже делаешь все на автомате или заготовленными шаблонами.И это очень плохо. Делать на автомате может и компьютер, а человек нужен для того, чтобы _думать_.
> Я категорически считаю, что можно было бы и iptables допилить до нужного состояния с нужными/новыми возможностями.
Подобное заявление говорит о том, что вы плохо разбираетесь в теме.
Если вы считаете иначе - можете представить на суд общественности альтернативную версию iptables. Если она действительно будет лучше - есть шансы, что кто-то даже будет ее использовать. Вот только сомневаюсь, что у вас получится.
> Синтаксис в nftables для меня не удобен, т.к. читать строку за правило мне куда проще, чем разбираться в блоках.
А чем необходимость разбираться в цепочках лучше необходимости разбираться в блоках?
С точки зрения логики правил, особой разницы между ними нет.
nftables под капотом намного лучше, так что миграция неизбежна. Привыкнем.
Что интересно, минусуют тех кто радуется тому, что поломали синтаксис в очередной раз, при этом также минусы отхватывают фряшники в отдельном трэде, за то что ратуют за противоположную вещь. Парадокс однако:)
Хотелось бы объяснить старперам которые не хотят учить новый синтаксис откуда он взялся. Он такой не просто потому что им захотелось поменять и устарело, а потому что внутренняя структура у нового фильтра другая.
В старом айпитейблс правила насколько я понимаю из каждого пакета перебираются все подряд для каждого чейна, пока какое-нибудь не сработает и не укажет что делать с пакетом дальше. Ясное дело что для такого используется массив правил - каждый чейн табличек это тупо массив правил.
Новый фильтр работает иначе, правила компилируются в байткод, который потом компилится нативный код, который просто проверяет какие байты находятся по таким-то смещениям и на основе этого переходит на ту или иную часть своего кода выполняться дальше, ну тоесть так же как и if else конструкции в любом языке программирования.
И это действительно прогресс, такой подход куда быстрее работает, система проверяет условия и на основе этого выбирает что дальше проверять, ей не нужно перебирать кучу правил ради того единственного. Не говоря уж о том, что байткод(а тем более jit скомпиленный в нативный код) будет куда быстрее чем тупая чекалка перебирающая массив правил.
При этом всем всеравно что там думает куча старперов не понимающих откуда идет различие в синтаксисах, для вас сделали прослойку совместимости. Хотя код написанный через прослойку будет медленней, нежели вручную скорее всего. Вообще не хочешь учиться - вон из профессии.
>Новый фильтр работает иначе, правила компилируются в байткод, который потом компилится нативный код,Который загружается в ядро и исполняется для обработки любого трафика.
Хочу Знать какая наглая рыжая трехбуквенная аббревиатура заказала эту прелесть.>И это действительно прогресс, такой подход куда быстрее работает, система проверяет условия и на основе этого выбирает что дальше проверять, ей не нужно перебирать кучу правил ради того единственного.
Почитай мануал по iptables.
>При этом всем всеравно что там думает куча старперов не понимающих откуда идет различие в синтаксисах
О просветленный, расскажи нам старперам, в чем принципиальная несовместимость нового нетфильтра и старого синтаксиса.
> О просветленный, расскажи нам старперам, в чем принципиальная несовместимость нового нетфильтра и старого синтаксиса.Начнем с простого - как в "старом синтаксисе" создать новую базовую цепочу (типа INPUT или POSTROUTING) и прикрепить ее к нужному хуку netfilter с нужны приоритетом?
> Начнем с простого - как в "старом синтаксисе" создать новую базовую цепочу
> (типа INPUT или POSTROUTING) и прикрепить ее к нужному хуку netfilter
> с нужны приоритетом?Как обычно,
connmark
This module matches the netfilter mark field associated with a connection (which can be set using the CONNMARK target below).+
CONNMARK
This module sets the netfilter mark value associated with a connection. The mark is 32 bits wide., насколько я ничего не понял в влролсе.
> насколько я ничего не понял в влролсе.Я вижу. Ответ совсем мимо. Совсем-совсем.
>> О просветленный, расскажи нам старперам, в чем принципиальная несовместимость нового нетфильтра и старого синтаксиса.
> Начнем с простого - как в "старом синтаксисе" создать новую базовую цепочу
> (типа INPUT или POSTROUTING) и прикрепить ее к нужному хуку netfilter
> с нужны приоритетом?Умница, кавычки поставил, понимаешь, что это не вопрос синтаксиса. Если добавил функциональность в бэкенд, можно и в интерфейс добавить опцию, а не новый интерфейс изобретать.
"Чем синтаксис не устраивает?" Вопрос был.
>> О просветленный, расскажи нам старперам, в чем принципиальная несовместимость нового нетфильтра и старого синтаксиса.
> Начнем с простого - как в "старом синтаксисе" создать новую базовую цепочу
> (типа INPUT или POSTROUTING) и прикрепить ее к нужному хуку netfilter
> с нужны приоритетом?iptables -N chain ?
> Вообще не хочешь учиться - вон из профессии.бред, по причине, мне например не влом разобратся с новым синтаксисом но покажт мне эквивалентный хэндбукс для nftables как у iptables
>> Вообще не хочешь учиться - вон из профессии.
> бред, по причине, мне например не влом разобратся с новым синтаксисом но
> покажт мне эквивалентный хэндбукс для nftables как у iptableswiki.nftables.org
Когда с ipchains на iptables переходили - столько не ворчали, поспокойнее все проходило.
>...Nftables примечательна унификацией интерфейсов фильтрации пакетов для IPv4, IPv6...IPv6.
Блин... Сколько лет уже этот "вэшесть" уже внедряют?
Никого не настораживает такой период "становления" такой "стройной и удачной" архитектуры?
Ну ведь адресов-то хватит на все холодильники и виртуалочки на планете! Ан нет, не приживается что-то... Может - человечество другое нужно для "вэшесть"?
Круто что еще обновляется.
Круто что добавили инструментарий COMPAT.
Я не старпер, но на новый синтаксис у меня не стоит. Старый намного удобнее и понятнее. Нет, новый синтаксис выучить не проблема, но под старый у меня куча кода написана, впрочем тоже уже старого.. И вообще, мне кажется, все эти изменения в структуре nftables можно было сделать и без внедрения нового синтаксиса.. Может конечно я не вникал глубоко и не понимаю какие преимущества новый синтаксис имеет перед старым, но пока я этого не понимаю - я реально не понимаю зачем он нужен.. Похоже, пока будет работать инструментарий COMPAT и пока не осознаю преимущества nft - буду пользоваться старым синтаксисом.
> все эти изменения в структуре nftables можно было сделать и без внедрения нового синтаксисаДля этого надо много думать. Это сейчас немодно.
*>>Круто что добавили инструментарий COMPAT.
>> все эти изменения в структуре nftables можно было сделать и без внедрения нового синтаксиса
> Для этого надо много думать. Это сейчас немодно.Ога. Особенно, если при ближайшем рассмотрении обнаруживается, что "все эти изменения в структуре" таки и были сделаны _без_ изменения синтаксиса -- в этих самых -compat утилитах.
Впрочем, да, позитив. Г-н pauk разрешил это сделать. #успех
Вообще то изменения были сделаны с изменением синтаксиса, в том самом nftables, к которому уже потом были допилены compat. Так что забирайте свой сарказм и несите его туда где его оценят.
> Вообще то изменения были сделаны с изменением синтаксиса, в том самом nftables,
> к которому уже потом были допилены compat. Так что забирайте свой
> сарказм и несите его туда где его оценят.В iptables 1.4.21 синтаксис не менялся, в -compat утилитах в версии 1.6.0 пишут, что не менялся. nftables, как утилита ком.строки имеет другой синтаксис, да. И не имеет никакого отношения к сабжу. И тот, и другой _управляют_ файервволом в ядре. Оба. Берёшь или один, или другой.
Какое-то из ядер вот здесь http://wiki.nftables.org/wiki-nftables/index.php/List_of_upd... вот тебе, убогий, "сломало" синтаксис? Версии утилит iptables 1.4.xx?
Утилиты nftables по-прежнему http://www.netfilter.org/projects/nftables/#backward-compati... числятся "in development". Ты поставил себе какую-то другую devel-уровня утилиту, и жидко удивился прямо сюда, что тебе "поломали синтаксис"?
То, где они там "поменяли синтаксис" тебя не коснулось ни разу. Истеричка?
-----
2015-Dec-18 iptables 1.6.0 [...] the first release of the iptables over nftables compatibility tools
2007-Oct-15 iptables-1.4.0rc1 [...] adds support for the generic xtables infrastructure that strongly improves IPv6 support.
2005-Feb-01 iptables 1.3.0rc1 release [...] contains the much-hyped libiptc rewrite.
> не понимаю какие преимущества новый синтаксис имеет перед старымСкажу по секрету - он проще и логичнее. Но чтобы это осознать, нужно в нем хотя бы немного разобраться. Вряд ли вы будете этим заниматься.
>> не понимаю какие преимущества новый синтаксис имеет перед старым
> Скажу по секрету - он проще и логичнее. Но чтобы это осознать,
> нужно в нем хотя бы немного разобраться. Вряд ли вы будете
> этим заниматься.Разобраться там не долго, даже ты думаешь что осилил. В tcpdump похожие фильтры.
А вот переписывать и отлаживать скрипты и инструменты это не то, чем желает заниматься специалист, которому платят за решение задачи, а не за прогулки по новым динамичноразвивающимся граблям.
Ну почему их ручонки постоянно, что-то меняют и усложняют. Ну почему? Где старый добрый iptables, где я могу сделать так iptables -A INPUT -p tcp -s 192.168.0.1/24 -j ALLOWED?
> Ну почему их ручонки постоянно, что-то меняют и усложняют. Ну почему?Потому что упрощать -- сложнее? %)
>Где старый добрый iptables, где я могу сделать
Там вверху, в новости же. Сколько ж можно-то??
> Где старый добрый iptables, где я могу сделать так iptables -A INPUT -p tcp -s 192.168.0.1/24 -j ALLOWED?Нигде. Такого никогда не было и уже никогда не будет.
P.S. ACCEPT
Вот пример dnat в iptables
% iptables -t nat -A PREROUTING -p tcp --dport 1000 -j DNAT --to-destination 1.1.1.1:1234
% iptables -t nat -A PREROUTING -p udp --dport 2000 -j DNAT --to-destination 2.2.2.2:2345
% iptables -t nat -A PREROUTING -p tcp --dport 3000 -j DNAT --to-destination 3.3.3.3:3456А вот новый синтаксис
% nft add rule nat prerouting dnat \
tcp dport map { 1000 : 1.1.1.1, 2000 : 2.2.2.2, 3000 : 3.3.3.3} \
: tcp dport map { 1000 : 1234, 2000 : 2345, 3000 : 3456 }Помоему ничего такого заурядного чем то на vyOs правила похоже в плане блочной структуры. Думаю для многих переход не станет такой уж большой проблемой.
Я ничего не имею против блочной структуры, кому удобно -- пользуйтесь.
Но наличие рядом слова dport помогает увидеть и понять все правило сразу.
Глядя на запись ниже все не так понятно. Нужно потратить лишнее время что бы понять что написано в правиле. И дело тут не в переучивании, а в интуитивном восприятии информации.Я честно не понимаю как это:
printf("table %s %s {\n",
http://git.netfilter.org/nftables/tree/src/rule.c#n1069может быть лучше. Это прибитый гвоздями синтаксис к коду. И это 2015 год?
Даже если это обвесить макросами, можно хоть какую-то гибкость добавить и подкрутить вывод под себя. А в каком формате писать это вообще дело десятое: можно xml, ini и другие форматы прикрутить. Хоть на си, программе от этого не холодно не жарко.
Сам подход к разработке очень убогий.
Я понимаю если предложили действительно что-то стоящее, но это сырой продукт.
Этим нельзя пользоваться в продакшене.
Когда по работе приходится много смотреть правила, то это не должно создавать дискомфорт.
>[оверквотинг удален]
> % iptables -t nat -A PREROUTING -p udp --dport 2000 -j DNAT --to-destination 2.2.2.2:2345
> % iptables -t nat -A PREROUTING -p tcp --dport 3000 -j DNAT --to-destination 3.3.3.3:3456
> А вот новый синтаксис
> % nft add rule nat prerouting dnat \
> tcp dport map { 1000 : 1.1.1.1, 2000 : 2.2.2.2, 3000 : 3.3.3.3} \
> : tcp dport map { 1000 : 1234, 2000 : 2345, 3000 : 3456 }Или я чего-то не понял, или ты сделал ошибку в пробросе udp 2000 на 2.2.2.2:2345
"Всё просто и элементарнно"?