The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Выпуск пакетного фильтра nftables 1.0.8"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Выпуск пакетного фильтра nftables 1.0.8"  +/
Сообщение от opennews (??), 15-Июл-23, 13:04 
Опубликован выпуск пакетного фильтра nftables 1.0.8, унифицирующего интерфейсы фильтрации пакетов для IPv4, IPv6, ARP и сетевых мостов (нацелен на замену iptables, ip6table, arptables и ebtables). В пакет nftables входят компоненты пакетного фильтра, работающие в пространстве пользователя, в то время как на уровне ядра работу обеспечивает подсистема nf_tables, входящая в состав ядра Linux начиная с выпуска 3.13. На уровне ядра предоставляется лишь общий интерфейс, не зависящий от конкретного протокола и предоставляющий базовые функции извлечения данных из пакетов, выполнения операций с данными и управления потоком...

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

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по ответам | RSS]

1. Сообщение от Роман (??), 15-Июл-23, 13:04   +1 +/
Нормально, JSON для автогенераций, счётчики для биллинга в "облаках"
Ответить | Правка | Наверх | Cообщить модератору

2. Сообщение от Аноним (2), 15-Июл-23, 13:05   +2 +/
Ничему их история успеха флэша не научила, всё тянут свои виртуальные машины с житами.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #3

3. Сообщение от Тот_Самый_Анонимус__ (?), 15-Июл-23, 13:43   –1 +/
Надо на webassebly — он универсален.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

4. Сообщение от Всадник Апокалипсиса (?), 15-Июл-23, 14:46   +/
Что лучше использовать для изучения сетей: nftables или pf?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #5, #7

5. Сообщение от Аноним (5), 15-Июл-23, 15:08   +1 +/
лучше пару лет потерпеть и сразу учить пакетный фильтр будущего, вместо этих кусков г.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #6

6. Сообщение от Всадник Апокалипсиса (?), 15-Июл-23, 15:26   –1 +/
Что это ещё за пакетный фильтр будущего?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #31

7. Сообщение от leap42 (ok), 15-Июл-23, 15:30   +3 +/
> Что лучше использовать для изучения сетей: nftables или pf?

Cisco

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #8, #9, #21

8. Сообщение от Аноним (8), 15-Июл-23, 15:36   +4 +/
Он попросил для изучения, а не мучения
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #26

9. Сообщение от Иваня (?), 15-Июл-23, 15:37   +/
А если на это нет денег?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7

10. Сообщение от lucentcode (ok), 15-Июл-23, 17:24   +1 +/
Ну, а фильтрацию по string, как в iptables --match string не завезли до сих пор? Уже не один год простейшее(модуль string) завести не могут. Нет, я конечно понимаю, что можно перевести строку в байты, и по байтам фильтровать пакеты, но делать это вручную жутко не удобно. То ли дело фичи модуля string, с ними дело идёт куда веселей.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #11, #15

11. Сообщение от Аноим (?), 15-Июл-23, 17:54   +/
Если вас не устраивает nftables, зачем на него переезжать?
Оставайтесь с iptables
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10 Ответы: #13

13. Сообщение от Андрей04091977 (ok), 15-Июл-23, 17:59   +2 +/
из rhel 9 iptables выпилен
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11 Ответы: #24

14. Сообщение от Аноним (14), 15-Июл-23, 18:00   +4 +/
Даже Red Hat офигел от вида этих правил и написал к ним фронтенд - firewalld. Потому что знали, что иначе саппорт утонет в вопросас от тех, кому не посчастливилось родиться гиком и кто не в состоянии вникнуть в эту мешанину фигурных скобок...
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #17, #19, #23, #27, #28, #29, #30

15. Сообщение от Аноним (15), 15-Июл-23, 18:50   +5 +/
Айпишник - это не строка. Это 32 бита в случае с IPv4. Фильтруются по префиксу.

Пакет - это тоже не строка. Это не UTF-8 строка, это не ASCII-строка, это не еще-черт-знает-в-какой-кодировке строка. Это набор байт, причем потенциально зашифрованных в случае с TLS. Что ты там собрался фильтровать по строке - остается загадкой блдь.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10 Ответы: #22, #25, #41

17. Сообщение от Пушок (?), 15-Июл-23, 19:10   +2 +/
>Даже Red Hat офигел от вида этих правил и написал к ним фронтенд - firewalld. Потому что знали, что всё меньше остаётся желающих тратить жизнь на мешанину фигурных скобок...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14

19. Сообщение от Аноним (19), 15-Июл-23, 20:03   +/
> посчастливилось родиться гиком

Не дац боженька такого счастья. Уд лучше алкоголиком.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14 Ответы: #20

20. Сообщение от Аноним (19), 15-Июл-23, 20:04   +/
(писал выпимши)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #19

21. Сообщение от Аноним (21), 15-Июл-23, 20:16   –1 +/
Ушла
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7

22. Сообщение от Аноним (21), 15-Июл-23, 20:19   +/
Собирается впарить в пользовательские браузеры корпоратиный безопастный сертефикат.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15

23. Сообщение от Аноним (23), 15-Июл-23, 20:28   +1 +/
В firewalld я стараюсь берег не терять из виду, там тоже можно утонуть. Хорошо, что 99% задач на поверхности. А если от скуки заглянуть поглубже в кроличью нору, получаешь по ЧСВ нокаутирующий удар.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14

24. Сообщение от Tron is Whistling (?), 15-Июл-23, 20:44   +/
Кто вам такое сказал? iptables-legacy на месте, мы допустим на nftables не переехали ещё.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13

25. Сообщение от Tron is Whistling (?), 15-Июл-23, 20:45   +1 +/
В DNS-запросах например можно строку поискать.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15 Ответы: #32

26. Сообщение от Аноним (26), 16-Июл-23, 02:34   +/
я бы сказал vendor"имения"
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8

27. Сообщение от Аноним (27), 16-Июл-23, 05:06   –1 +/
Так-то все совсем наоборот, firewalld нарисован чтобы можно было на плоских портянках iptables соорудить что-то удобоваримое.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14

28. Сообщение от Аноним (5), 16-Июл-23, 06:55   +/
однако json лучше чем yaml, а то ещё пропустишь пробел пока редактируешь в nano
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14

29. Сообщение от Аноним (29), 16-Июл-23, 07:07   +/
А как я много лет пользовался firewalld ДО появления nftables тогда? Вообще firewalld лишь недавно портировали для работы с nftables (и то в связи с депрекацией iptables).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14 Ответы: #34

30. Сообщение от пох. (?), 16-Июл-23, 09:57   +1 +/
> Даже Red Hat офигел от вида этих правил и написал к ним фронтенд - firewalld.

наоборот. Эти невменяемые простыни с фигурными скобочками, непригодные для управления из командной строки и чтения человеком - как раз и придуманы чтобы упростить написание firewalld и гомощельных интерфейсов какввенде.

Или ты думал, что формат вывода в нескучном json - это для людей делали?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14 Ответы: #33, #40

31. Сообщение от Госпидя (?), 16-Июл-23, 18:24   +1 +/
достаточно одной команды deny
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6

32. Сообщение от Аноним (32), 16-Июл-23, 18:50   +/
Можно, и даже изредка нужно. Но чаще всё равно приходится пользоваться отдельным AF типа Knot resolver, потому что строку поискать мало, надо ещё с результатом что-то сделать, и чаще нетривиальное.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25

33. Сообщение от Аноним (32), 16-Июл-23, 18:52   –1 +/
Так хорошо же. Наконец-то делают удобно. А когда неудобно, всегда можно собственный генератор правил написать. Кодить-то хоть умеешь?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #30 Ответы: #36

34. Сообщение от jeyson (?), 16-Июл-23, 20:03   +/
Всё просто: до появления nftables firewalld был фронтом для itables. Т.е. для тех, кто умел только firewalld пользоваться, переход состоялся вобще незаметно. Круто же
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #29

36. Сообщение от пох. (?), 16-Июл-23, 21:44   +/
Кому удобно? Мне было вполне удобно с iptables. Не без косяков (которые не могли исправить годами - эти вот умеющие кодить) но пользоваться было можно.

А какввенде у меня уже есть - в венде. И кодить не надо.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #33 Ответы: #37

37. Сообщение от Аноним (32), 17-Июл-23, 17:33   +/
Мне удобно. Ну и ещё пару ребят знаю, им тоже нравится как оно в продах топ500 работает. Если тебе не подходит, ну что ж сделаешь? Не пользуйся, накодь своё.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #36 Ответы: #38

38. Сообщение от пох. (?), 17-Июл-23, 18:22   +/
> Мне удобно. Ну и ещё пару ребят знаю, им тоже нравится как
> оно в продах топ500 работает.

ок. Вот такой линoops. Паре ребят сделали щастье (потому что за ними платиновый спонсор, зато сэкономивший на сетевом железе за их счет), остальным устроили п-ц. А потом такие "пачиму вы нас не любите".

> Если тебе не подходит, ну что ж сделаешь? Не пользуйся, накодь своё.

ты уже много накодил-то?

Не пользуюсь, линoops пошел нахрен со всех моих сетевых фильтров. Доживает свой век в паре совсем древних систем, естественно, с iptables и древним-древним ведром без вредных улучшизмов додолбавших их таки в хлам. Либо ng-fw, либо уж хрен с ним, древний цискин аплайанс. По сравнению с iptables чудовищно уродливо (но спасает трассировщик которого у вас нет и не будет) по сравнению с этим фигурноскобчатым невменозом - просто само совершенство.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #37 Ответы: #39

39. Сообщение от Аноним (32), 18-Июл-23, 23:03   +/
> Паре ребят сделали щастье (потому что за ними платиновый спонсор

Кто девушку ужинает, тот её и танцует. Ты вроде взрослый мужик, уже стыдно думать в твоём возрасте что тебе мир что-то должен.

> А потом такие "пачиму вы нас не любите".

Это тебе кажется. Вряд ли кто-то так спрашивает на самом деле. Отчасти потому, что в гнавшихся три дня, чтобы сказать как им безразличен линукс в интернете никогда не было недостатка, отчасти потому, что без разницы кто там кого любит или не любит. Любить или не любить можно человека. А линукс — просто инструмент для зарабатывания денег. Если ты не можешь на нём зарабатывать, чьи это проблемы?

> ты уже много накодил-то?

Сегодня прям дохера, часа три код писал не отрываясь. А ты?

> линoops пошел нахрен со всех моих сетевых фильтров

КИСА ТЫ ОБИДЕЛАС?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #38

40. Сообщение от Легивон (?), 21-Июл-23, 21:33   +/
Я пишу без фигурных скобочек (за исключением минималистичной части - объявляения таблиц/чейнов/хуков, которые я забил 1 раз в плейбук и больше о них не вспоминал) и у меня все работает. И от iptables отличается лишь синтаксисом (в iptables короткие аргументы с тире, а в nftables слова, но соотвествие по сути 1:1, переучиваться не надо).
За это небольшое неудобство я получаю дичайшую киллер фитчу - бесшовное обновление МЭ находу и ipsets встроеные в фаервол! Только за это можно смело сказать: nftables - NUJNO, хорошо сделали.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #30

41. Сообщение от lucentcode (ok), 31-Июл-23, 13:18   +/
> Айпишник - это не строка. Это 32 бита в случае с IPv4. Фильтруются по префиксу.

А кто говорил, что IP — это строка? Я, выше, подобного нигде не писал. Сами за меня придумали тезис, сами его опровергли? Как это похоже на школьника🤣

> Пакет - это тоже не строка. Это не UTF-8 строка, это не ASCII-строка, это не еще-черт-знает-в-какой-кодировке строка.

О великий гуру! Спасибо за твоё наставление(на самом деле — нет, не спасибо). Все в курсе, что пакет — это набор байт, представляете? Как и про то, что некоторые наборы байт можно сопоставить с другими наборами байт, и если они матчатся, правило может дропнуть пакеты, где обнаружило такое совпадение. Прикольно, правда? Бьюсь об заклад, что вам подобное в голову даже не приходило, мало работаете с сетевыми сервисами, верно?

Теперь по существу:

С помощью модуля string можно резать на серваке с веб-сервером запросы к определённому домену

```
iptables -I INPUT -p tcp --dport 80 -m string --string "Host: example.com" --algo kmp -j DROP
```

фильтрация идёт по пакетам, составляющим строку с hostname заголовка Host:. Очень удобное решение, когда у вас на серваке пара десятков сайтов, и на один из них валит HTTP FLOOD, а сайт не стоит того, чтобы его уводить на защиту L7 от DDoS, при этом остальные сайты должны продолжать нормально работать. Да, трюк с такой блокировкой можно обойти, и я даже могу подсказать как, чтобы серверу опять поплохело, но большинство атакующих такие ламеры, что про такие нюансы просто не знают, а потому в 99.99% этот трюк просто работает. И да, заблокировать доступ к виртуальному хосту в конфиге сервера на время, пока сайт заблокирован, ради очень редких случаев обхода подобной блокировки можно, но до этого админу сервачка с недо-сайтами ещё додуматься надо. А порезать трафик правилом, что указано выше, легко, как два пальца об асфальт.

Режем трафик к конкретной странице

```
iptables -I INPUT -p tcp --dport 80 -m string --string "Host: example.com" --algo kmp -m
string --string "GET /admin" --algo kmp -j DROP
```

тоже просто, верно?

Да, последний кейсы будет работать только с HTTP, на HTTPS не сработает. А предыдущий, блокирующий весь домен, отлично работает и с HTTPS со SNI.

А почему работает? Потому что модуль string отлично знает, строка преобразовывается в байты, и умеет сопоставлять байты из трафика с фрагментом строки, переданным ему в качестве образца.

Можно ли сделать то же самое, тупо передав в параметрах фильтрующего правила уже перекодированную в байты подстроку? Естественно. И nftables это умеет, представляете? Но, это не удобно, так как нужно специальным скриптом, или вручную, перекодировать строку в байты. И если правил таких у вас несколько, при просмотре правил, и удалении уже не актуальных, вам нужно каждый раз вспоминать, как выглядит набор байт(к примеру в шестнадцатеричной кодировке), сопоставимых с вашей строкой. Одна беда, nftables умеет фильровать пакеты по содержимому байт только если известно, на смещении  от начала пакета находятся байты, что нужно сравнивать с вашим образцом. iptables же такие низкоуровневые подробности не требует, он и в этом пока ложит nftables на лопатки.

Про DNS выше комрады уже писали. Тоже кейс вполне себе часто встречающийся, когда нужно сделать что-то с трафиком, упоминающим какую-то строку. Но, для udp-запросов режем пакеты по набору байт, так как в случае с udp запросами к dns домен выглядит не так, как в строке(точки заменяются на нули, к примеру), такое сопоставление требует -m string --hex-string.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру