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

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

Отправлено opennews , 19-Авг-19 23:22 
Состоялся (https://marc.info/?l=netfilter&m=156621590113089&w=2) релиз пакетного фильтра nftables 0.9.2 (https://netfilter.org/projects/nftables/), развивающегося в качестве замены iptables, ip6table, arptables и ebtables за счёт унификации интерфейсов фильтрации пакетов для IPv4, IPv6, ARP и сетевых мостов. В пакет nftables входят компоненты пакетного фильтра, работающие в пространстве пользователя, в то время как на уровне ядра работу обеспечивает подсистема nf_tables, входящая в состав ядра Linux начиная с выпуска 3.13. Необходимые для работы выпуска nftables 0.9.2 изменения включения в состав ядра Linux 5.3.


На уровне ядра предоставляется лишь общий интерфейс, не зависящий от конкретного протокола и предоставляющий базовые функции извлечения данных из пакетов, выполнения операций с данными и управления потоком. Непосредственно логика фильтрации и специфичные для протоколов обработчики компилируются в байткод в пространстве пользователя, после чего данный байткод загружается в ядро при помощи интерфейса Netlink и выполняется в специальной виртуальной машине, напоминающей BPF (Berkeley Packet Filters). Подобный подход позволяет значительно сократить размер кода фильтрации, работающего на уровне ядра и вынести все функции разбора правил и логики работы с протоколами в пространство пользователя.

Основные новшества:

-  Возможность проверки номера порта из заголовка пакета транспортного уровня независимо от типа протокола 4 уровня:

   add rule x y ip protocol { tcp, udp } th dport 53


-  Поддержка восстановления времени жизни набора элементов:


   add element ip x y { 1.1.1.1 timeout 30s expires 15s }

-  Возможность проверки отдельных опций (lsrr, rr, ssrr и ra) из пакетов  IPv4:

   add rule x y ip option rr exists drop


Для опций маршрутизации возможна проверка полей type, ptr, length и addr:

   add rule x y ip option rr type 1 drop



-  В выражениях теперь допустимо указание сетевых префиксов и диапазонов адресов:

   iifname ens3 snat to 10.0.0.0/28
   iifname ens3 snat to 10.0.0.1-10.0.0.15


-  Поддержка использования переменных в определениях цепочек:

    define default_policy = accept
    add chain ip foo bar { type filter hook input priority filter; policy $default_policy }

-  Указание приоритета цепочки теперь может производиться как в числовом, таки символьном виде:

    define prio = filter
    define prionum = 10
    define prioffset = "filter - 150"

    add table ip foo
    add chain ip foo bar { type filter hook input priority $prio; }
    add chain ip foo ber { type filter hook input priority $prionum; }
    add chain ip foo bor { type filter hook input priority $prioffset; }

-  Реализована поддержка модуля synproxy. Например, для размещения TCP-порта 8888 под защитой synproxy можно использовать набор правил:

    table ip x {
            chain y {
                    type filter hook prerouting priority raw; policy accept;
                    tcp dport 8888 tcp flags syn notrack
            }

            chain z {
                    type filter hook forward priority filter; policy accept;
                    tcp dport 8888 ct state invalid,untracked synproxy mss 1460 \\
                       wscale 7 timestamp sack-perm  ct state invalid drop
            }
    }

-  Для определения в таблице conntrack связанных с текущим соединением  ожидаемых дополнительных соединений, которые применяются в требующих установки нескольких соединений сложных протоколах, таких как FTP, SIP и  H.323, теперь можно определять политики через штатные наборы правил. Например, для определения ожидаемых после соединений к TCP порту 5432 последующих соединений к порту 8888  можно указать следующие правила:


        table x {
                ct expectation myexpect {
                        protocol tcp
                        dport 5432
                        timeout 1h
                        size 12
                        l3proto ip
                }

                chain input {
                        type filter hook input priority 0;
                        ct state new tcp dport 8888 ct expectation set myexpect
                        ct state established,related counter accept
                }
        }


URL: https://marc.info/?l=netfilter&m=156621590113089&w=2
Новость: https://www.opennet.me/opennews/art.shtml?num=51312


Содержание

Сообщения в этом обсуждении
"Выпуск пакетного фильтра nftables 0.9.2"
Отправлено адмирал третьего флота очевидность , 19-Авг-19 23:22 
осталось подождать когда на eBPF портируют..

"Выпуск пакетного фильтра nftables 0.9.2"
Отправлено Аноним , 20-Авг-19 01:45 
> пакетного фильтра

Правильно говорить файрволл.


"Выпуск пакетного фильтра nftables 0.9.2"
Отправлено Аноним , 20-Авг-19 03:10 
Ага, брандмауер

"переводится с немецкого на английский как"
Отправлено Andrey Mitrofanov_N0 , 20-Авг-19 08:55 
> Ага, брандмауер

https://www.opennet.me/openforum/vsluhforumID3/38585.html#11


"Выпуск пакетного фильтра nftables 0.9.2"
Отправлено Sgt. Gram , 20-Авг-19 16:25 
> Ага, брандмауер

http://gramota.ru/slovari/dic/?word=%D0%B1%D1...


"Выпуск пакетного фильтра nftables 0.9.2"
Отправлено OpenEcho , 20-Авг-19 06:00 
не-a, - Огненная Стена (ОгнеCтен то бишь :)

"Выпуск пакетного фильтра nftables 0.9.2"
Отправлено Ю.Т. , 20-Авг-19 08:27 
сетекран
(сетевой экран)

"Выпуск пакетного фильтра nftables 0.9.2"
Отправлено Аноним , 20-Авг-19 12:53 
Пофигизм в воспитании детей.

"Выпуск пакетного фильтра nftables 0.9.2"
Отправлено Аноним , 20-Авг-19 03:12 
> Для определения в таблице conntrack связанных с текущим соединением ожидаемых дополнительных соединений

Вот это интересно, в таблесах нет такого вроде.


"Выпуск пакетного фильтра nftables 0.9.2"
Отправлено Andrey Mitrofanov_N0 , 20-Авг-19 09:01 
>>в таблице conntrack связанных с текущим соединением ожидаемых дополнительных соединений
>в таблесах нет такого вроде.

Есть. https://duckduckgo.com/?q=conntrack+iptables&t=ffnt&ia=web

$ ( cd /lib/modules/$(uname -r) && find -name '*conntrack*' )
./kernel/net/ipv4/netfilter/nf_conntrack_ipv4.ko
./kernel/net/ipv6/netfilter/nf_conntrack_ipv6.ko
./kernel/net/netfilter/nf_conntrack_amanda.ko
./kernel/net/netfilter/nf_conntrack_broadcast.ko
./kernel/net/netfilter/nf_conntrack_ftp.ko
./kernel/net/netfilter/nf_conntrack_h323.ko
./kernel/net/netfilter/nf_conntrack_irc.ko
./kernel/net/netfilter/nf_conntrack_netbios_ns.ko
./kernel/net/netfilter/nf_conntrack_netlink.ko
./kernel/net/netfilter/nf_conntrack_pptp.ko
./kernel/net/netfilter/nf_conntrack_proto_dccp.ko
./kernel/net/netfilter/nf_conntrack_proto_gre.ko
./kernel/net/netfilter/nf_conntrack_proto_sctp.ko
./kernel/net/netfilter/nf_conntrack_proto_udplite.ko
./kernel/net/netfilter/nf_conntrack_sane.ko
./kernel/net/netfilter/nf_conntrack_sip.ko
./kernel/net/netfilter/nf_conntrack_snmp.ko
./kernel/net/netfilter/nf_conntrack_tftp.ko
./kernel/net/netfilter/xt_conntrack.ko
./kernel/net/netfilter/nf_conntrack.ko
$ _


"Выпуск пакетного фильтра nftables 0.9.2"
Отправлено граммарнаци , 20-Авг-19 10:20 
Так для iptables только набор готовых модулей, а тут можно прямо в конфиге новый протокол добавить

"Выпуск пакетного фильтра nftables 0.9.2"
Отправлено пох. , 20-Авг-19 11:00 
> Так для iptables только набор готовых модулей, а тут можно прямо в конфиге новый ненужный
> протокол добавить

поправил, не благодари.

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


"Выпуск пакетного фильтра nftables 0.9.2"
Отправлено привет , 20-Авг-19 09:06 
Кто то им реально пользуется? Так вроде и просто выглядит, и одновременно сложно, из мэ замутили скриптовый язык. Понимаю есть, конечно, серьезные конфигурации , но это вроде больше к сетевикам..

"Выпуск пакетного фильтра nftables 0.9.2"
Отправлено Аноним , 20-Авг-19 09:34 
А там уже другие железки со своим фаерволом.

"Выпуск пакетного фильтра nftables 0.9.2"
Отправлено Аноним , 20-Авг-19 09:49 
Многие, причём даже не зная об этом.

"Выпуск пакетного фильтра nftables 0.9.2"
Отправлено пох. , 20-Авг-19 09:51 
> Кто то им реально пользуется?

firewalld и прочие нескучные десктоп-перделки.

> Понимаю есть, конечно, серьезные конфигурации

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

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

Ну ничего, зато циска и палоальта продадут больше коробок. (там внутри тоже будет линух, но ни разу не его сетевой стек)


"Выпуск пакетного фильтра nftables 0.9.2"
Отправлено привет , 20-Авг-19 10:30 
Ну я имел ввиду - попытка сделать что то серьезное
на чем то несерьезном, но ты прав, это - фейл.

Остается только надеятся что в один прекрасный
момент прослойку с таблесами не уберут.. :)

Да уж лучше пусть продают коробки :)


"Выпуск пакетного фильтра nftables 0.9.2"
Отправлено пох. , 20-Авг-19 10:40 
как это то есть не уберут? Они ее уже объявили deprecated. Что у нас в ведре случается с таким кодом, надо объяснять?

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

Ну будем теперь вместо поделок на линухе использовать краденую asaV. Там хоть packet tracer нормальный. Линейные acl'и - ну как-нибудь переживем.


"Выпуск пакетного фильтра nftables 0.9.2"
Отправлено size_t , 21-Авг-19 11:29 
> "сириозные конфигурации" на этом нечитаемом трэшаке невозможны. Это я тебе как сетевик говорю.

Серьезный сетевик конечно же купит отдельную железку для stateful firewall, да?

Как, кстати, на серьезных железках будет выглядеть правило, фильтрующее upd/53 внутри gre-туннеля?
Да, туннель транзитный.


"Выпуск пакетного фильтра nftables 0.9.2"
Отправлено пох. , 21-Авг-19 12:16 
>> "сириозные конфигурации" на этом нечитаемом трэшаке невозможны. Это я тебе как сетевик говорю.
> Серьезный сетевик конечно же купит отдельную железку для stateful firewall, да?

ну а куда деваться-то? Если последний условно-вменяемый пакетный фильтр десять лет не чинили в десяти тривиальных и нескольких нетривиальных местах, а потом просто притащили вместо него неработающий мартышачий кал, а его объявили устаревшим и неправильным?

> Как, кстати, на серьезных железках будет выглядеть правило, фильтрующее upd/53 внутри gre-
> туннеля?

на серьезных железках такой херней не занимаются.

Правило будет выглядеть совершенно иначе - что-нибудь типа "allow dns from vpn clients to google and cloudflare"
Без уточнения айпишников и того что второй - DoH, и без детальных описаний всех возможных оберток.

Минус, что в этом полуестественном интеллекте, у тебя только видимость контроля. А реальный - у индуса где-то в горах. Но никакие другие варианты в общем-то уже давно не имеют смысла (ты все равно хуже индуса, да и не очень хочется за него месить навоз). Кроме васянхостовых, а с теми и firewalld справится.


"Выпуск пакетного фильтра nftables 0.9.2"
Отправлено пох. , 21-Авг-19 12:18 
> ну а куда деваться-то? Если последний условно-вменяемый пакетный фильтр десять лет не
> чинили в десяти тривиальных и нескольких нетривиальных местах, а потом просто

кстати, вот тривиальнейшее место - это нормальный nat/conntrack для gre туннелей.
Нет, никогда не работал, и не мог - и в код лучше даже вообще не смотрите, это п-ц.


"Выпуск пакетного фильтра nftables 0.9.2"
Отправлено sabitov , 20-Авг-19 10:15 
Угу, я использую за ради поиграться на парочке машин. Количество косяков и граблей зашкаливает. 092 еще не пробовал ничего не скажу, но 07-091 -- те ещё наборы для нескучных развлечений.

"Выпуск пакетного фильтра nftables 0.9.2"
Отправлено AlexYeCu_not_logged , 20-Авг-19 11:48 
>Кто то им реально пользуется?

В последнем debian он, вроде как, дефолтный. Правда там есть пока возможность старые правила с iptable-овским синтаксисом использовать.


"Выпуск пакетного фильтра nftables 0.9.2"
Отправлено пох. , 20-Авг-19 16:53 
"если бы еще и работали".

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


"Выпуск пакетного фильтра nftables 0.9.2"
Отправлено Аноним , 20-Авг-19 19:04 
Я пользуюсь, благодаря новым возможностям nftables получилось оптимизировать правила и снизить нагрузку на процессор в 2 раза по сравнению с iptables.

"Выпуск пакетного фильтра nftables 0.9.2"
Отправлено Анонимный селебрити , 20-Авг-19 23:17 
Ничеси,какой суксесс стори? Детали и бенчи будут?

"Выпуск пакетного фильтра nftables 0.9.2"
Отправлено Аноним , 20-Авг-19 09:37 
>В выражениях теперь допустимо указание сетевых префиксов и диапазонов адресов:

Этого не умел? Так теперь чтобы данный функционал появился в стабильных дистрибутивах минимум года три надо будет ждать.


"Выпуск пакетного фильтра nftables 0.9.2"
Отправлено пох. , 20-Авг-19 09:53 
это нынче такой модный подход - объявить уже почти совсем окончательно готовым, предыдущее работающее решение поломать и выкинуть, а потом доделывать базовые тривиальные вещи, патамушта альтернативно-одаренному разработчику они вообще в голову не приходили - там смузи бродит.


"Выпуск пакетного фильтра nftables 0.9.2"
Отправлено лютый жабист__ , 20-Авг-19 09:54 
1:0 Девопусы vs сисадмины

девопусы iptables не знали, а теперь он и не нужен. а админам опять страдать.


"Выпуск пакетного фильтра nftables 0.9.2"
Отправлено пох. , 20-Авг-19 10:06 
> девопусы iptables не знали

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

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

> а админам опять страдать.

админы ненужно и должны страдать, выбрав линух в качестве специализации.
Вон админы вмвари ни разу не страдают - да, фиревал убогонький, но вполне заточен под ручное управление в тех пределах, в которых надо.


"Выпуск пакетного фильтра nftables 0.9.2"
Отправлено PnDx , 20-Авг-19 13:16 
Файервол. На гипервизоре. Ох.
* Если оно пилится под аренду "по виртуалке на рыло", вмварь весь профит съест. И вообще непонятно как фронтэнд отдавать. RHEV тогда уж.
* Если арендаторы "внутренние", 802.1q vlan'ы наружу и там на нормальном оборудовании расписывать.
** Если в проекте нет денег, там и трафик вряд ли есть. До ≈200kpps можно непринуждённо таскать через виртуальный "маршрутизатор". Цена вопроса — в пределах 4xCPU, включая NAT. Появятся деньги — меньше проблем вывести маршрутизацию наружу.

"Выпуск пакетного фильтра nftables 0.9.2"
Отправлено пох. , 20-Авг-19 16:51 
> Файервол. На гипервизоре.

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

(нет, файрвол не защищает виртуалки, они у вмвари вообще в физически отдельной сети будут, если все делать по инструкции, а не как подешевле-попроще)

> Если оно пилится под аренду "по виртуалке на рыло", вмварь весь профит съест.

расскажи это вооон тем ребятам: https://www.arubacloud.com/ -  а то мне они не верят.
(смотрю, уже не скромное .it, а вполне себе com? хехехе - видать не все вмварь съела)

> И вообще непонятно как фронтэнд отдавать.

ну вот эти - справились.


"Выпуск пакетного фильтра nftables 0.9.2"
Отправлено Мертвые_опята , 20-Авг-19 21:23 
> смотрю, уже не скромное .it, а вполне себе com

У них оба адреса были изначально. Кстати, от твари они постепенно уходят, мне на одной из виртуалок в IT1 предложили нажать кнопку для миграции на KVM, прислали письмо, что начали миграцию и если я хочу, то могу нажать кнопочку, что бы встать в очередь на миграцию(а если не хочу то могу пока сидеть внутри твари)


"Выпуск пакетного фильтра nftables 0.9.2"
Отправлено пох. , 21-Авг-19 10:24 
изначально на .com не перенаправляло. Пацаны явно растут, и уже поняли, что .it - плохая марка за пределами родной Италии.

> Кстати, от твари они постепенно уходят, мне на одной из виртуалок в IT1 предложили нажать кнопку

мне пока ничего не предлагают, может, я их меньше затрахал? ;-)
При том что это пресловутые одноевровые виртуалки, для меня в общем загадка, каково экономическое оправдание этого бизнеса.

Деньги мафии отмывать, разьве что?


"Выпуск пакетного фильтра nftables 0.9.2"
Отправлено mumu , 20-Авг-19 16:39 
> Возможность проверки номера порта из заголовка пакета транспортного уровня независимо от типа протокола 4 уровня

Расскажите как это? В каких случаях использовать? Звучит интересно, но пока не очень понятно.


"Выпуск пакетного фильтра nftables 0.9.2"
Отправлено sabitov , 20-Авг-19 18:56 
Например, для работы современного DNS надо отрывать и 53udp и 53tcp. Раньше тебе надо было 2 правила для этого. Сейчас -- одно.

Правда жизни состоит в том, что это можно было и раньше решить одним правилом в iptables + ipset.


"Выпуск пакетного фильтра nftables 0.9.2"
Отправлено Igor , 20-Авг-19 20:47 
> Правда жизни состоит в том, что это можно было и раньше решить одним правилом в iptables + ipset

А можно пожалуйста пример как выглядит такое правило?


"Выпуск пакетного фильтра nftables 0.9.2"
Отправлено Igor , 20-Авг-19 21:04 
На ручнике что то я сегодня, вот же оно это правило
> iptables -A INPUT -m set --match-set dropips src -j DROP

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


"Выпуск пакетного фильтра nftables 0.9.2"
Отправлено evilman , 21-Авг-19 09:47 
ipset create allowed_in bitmap:port range 0-10240 counters
ipset add allowed_in 53
iptables -A INPUT -m conntrack --ctstate NEW -m set --match-set allowed_in -j ACCEPT

"Выпуск пакетного фильтра nftables 0.9.2"
Отправлено Аноним , 21-Авг-19 15:27 
А то же самое одновременно для IPv4 и IPv6?

"Выпуск пакетного фильтра nftables 0.9.2"
Отправлено evilman , 21-Авг-19 20:23 
Одним правилом через netfilter невозможно сделать. Нужно одно правило в iptables, а второе - в ip6tables. Теоретически можно извернуться через ingress queue, классификатором ipset и tc action. Но зачем?

"Выпуск пакетного фильтра nftables 0.9.2"
Отправлено Аноним , 22-Авг-19 21:58 
> Simplified dual stack IPv4/IPv6 administration, through the new inet family which allows you to register base chains that see both IPv4 and IPv6 traffic. Thus, you don't need to rely on scripts to duplicate your ruleset anymore.

https://wiki.nftables.org/wiki-nftables/index.php/Main_diffe...


"Выпуск пакетного фильтра nftables 0.9.2"
Отправлено mumu , 21-Авг-19 10:18 
Спасибо. Вспомнил, что действительно по два правила раньше писал для tcp и udp. RDP сюда же или openvpn, например.

"Выпуск пакетного фильтра nftables 0.9.2"
Отправлено Аноним , 23-Авг-19 13:34 
Так что там с заменой ipset? Будет не?

"Выпуск пакетного фильтра nftables 0.9.2"
Отправлено Аноним , 23-Авг-19 14:59 
https://wiki.nftables.org/wiki-nftables/index.php/Sets