The OpenNET Project / Index page

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

Для ядра Linux предложен новый пакетный фильтр bpfilter

21.02.2018 20:55

Разработчики подсистемы NetFilter выставили на обсуждение патчи с начальной реализацией нового пакетного фильтра bpfilter, который со временем может заменить ныне поддерживаемые механизмы фильтрации пакетов nftables и iptables. Несмотря на все свои достоинства интенсивность внедрения механизма Nftables оставляет желать лучшего и iptables до сих пор остаётся более востребован и не желает повторять судьбу ipchains и ipfwadm.

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

В итоге был подготовлен прототип нового пакетного фильтра bpfilter, иллюстрирующий идею применения BPF для фильтрации пакетов. Наиболее важным решением в предложенном прототипе стало желание обеспечить полную совместимость с наборами правил iptables, т.е. bpfilter сможет выступить в роли прозрачной замены iptables, полностью совместимой со всеми существующими конфигурациями (администраторам не придётся изучать новый синтаксис правил). Для достижения данной задачи планируется обеспечить совместимость на уровне API, который использует утилита iptables для взаимодействия с ядром (штатную утилиту можно будет пересобрать с реализацией API на базе bpfilter).

Bpfilter обрабатывает запросы API iptables и транслирует их в программы BPF, привязываемые к различным подсистемам. Например, при помощи XDP (eXpress Data Path) можно запустить BPF-программу на уровне сетевого драйвера, с возможностью прямого доступа к DMA-буферу пакетов для высокопроизводительной обработки. Трансляция правил выполняется целиком в пространстве пользователя, что упрощает отладку и повышает безопасность. Для повышения производительности также может применяться JIT-компиляция BPF в машинные инструкции для архитектур x86_64, arm64, ppc64, sparc64, mips64, s390x и arm32, или задействование аппаратных механизмов выполнения BPF на уровне сетевого адаптера (например, Netronome NFP SmartNIC).

Харальд Вельте (Harald Welte), один из основных разработчиков netfilter/iptables, поставил под сомнение идею полной эмуляции API iptables через BPF для обеспечения прозрачной замены iptables, так как полностью повторить поведение iptables будет слишком трудно, а наличие различий при обработке существующих наборов правил iptables может привести к возникновению неожиданных проблем с безопасностью.

К тому же некоторые элементы дизайна iptables нельзя назвать удачными и повторение API iptables в bpfilter может привести к тому, что допущенные 18 лет назад ошибки проектирования iptables закрепятся ещё на 10 лет. Например, API iptables не предоставляет способа добавления/замены единичного правила или небольшого набора правил, а может только целиком очистить и перезагрузить всю конфигурацию. Данная особенность делает внесение изменений в межсетевой экран неудобным и существенно усложняет координацию одновременного внесения изменений несколькими обработчиками. Недовольство также вызывает необходимость разделения наборов правил для IPv4 и IPv6.

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

Дэвид Миллер (David Miller), мэйнтейнер сетевой подсистемы ядра, возразил, что iptables до сих пор существенно более распространён и реализация его интерфейса позволит достичь широкого охвата при тестировании. Вельте парировал тем, что в наиболее крупных областях применения, таких как Docker и Kubernetes, используются утилиты командной строки, а не iptables API, поэтому нет смысла в эмуляции API как такового для проведения тестирования в подобных системах.

Миллер также обратил внимание на то, что nftables так и не решил проблемы с производительностью подсистемы фильтрации пакетов, сместив вместо этого внимание на сетевые технологии в пространстве пользователя. Nftables может стать одним из тех экспериментов, которые позволяют разобраться в некоторой проблемной области, но никогда не получают распространения в реальной практике. При этом, bpfilter ещё очень далеко до интеграции в ядро, так как представления о его производительности пока носят лишь теоретический характер, код достаточно сырой, отсутствуют многие возможности, а некоторые функции не могут быть реализованы через BPF и требуют дополнительной поддержки в ядре (например, отслеживание соединений).

  1. Главная ссылка к новости (https://lwn.net/SubscriberLink...)
  2. OpenNews: Несколько релизов в рамках проекта Netfilter
  3. OpenNews: Разработчики Netfilter представили замену iptables
  4. OpenNews: Google представил Cilium, сетевую систему для Linux-контейнеров, основанную на BPF
  5. OpenNews: Критические уязвимости в подсистеме eBPF ядра Linux
  6. OpenNews: Выпуск пакетного фильтра nftables 0.4, идущего на смену iptables
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/48117-bpfilter
Ключевые слова: bpfilter, netfilter, firewall
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (161) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, mimocrocodile (?), 22:16, 21/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +31 +/
    Какая у них интеллектуальная дискуссия, а был бы Линус обозвал бы всех макаками
     
     
  • 2.92, Аноним (-), 14:36, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Если б они сказали "Мы запилили новый bpfilter, с новой версией все старые iptables и nftables правила перестанут работать", то конечно назвал бы, и весьма заслуженно.
     
     
  • 3.154, Аноним (-), 19:56, 24/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Если б они сказали "Мы запилили новый bpfilter, с новой версией все
    > старые iptables и nftables правила перестанут работать", то конечно назвал бы,
    > и весьма заслуженно.

    Да их и сейчас не лишне назвать. Потому что если вгружать мутные блобы из юзермода в ядро - потом окажется что ядру машинный код подпихнули и после пары финтов ушами у атакующего выполняется его ядерный код. Ухитрившись обойти новомодные изоляции юзерского адресного пространства от ядра и все такое прочее.

     

  • 1.2, vitalif (ok), 22:25, 21/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +13 +/
    > идею применения Berkeley Packet Filter для фильтрации пакетов

    какая свежая идея, бинго

     
     
  • 2.96, anonymoused (?), 16:27, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    И почему-то не слышно воплей что бсд не нужен.
    Все аналитики в школе?
     
     
  • 3.127, Джон Ленин (?), 11:37, 23/02/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В Беркли всё ещё химичат с алгоритмами TCP/IP, так-как у них актуальны проблемы с TCP-шумом.

    Знаю одного чела, которого пригласили в офис компании, и из "энтузиаста Creative Commons" сделали оплачиваемым сотрудником... так вот: он говорил, что в Лос Анджелесе и Вашингтоне интернет хуже, чем в сельской хате.

    Короче, у них там внaтyрe лютo бoмбит, потому они и пытаются вечно инфраструктуру оптимизировать (апдейты вeнды перевести в p2p, или линyпсoвый пакетфильтер поправить)

     
  • 3.157, Аноним (-), 20:19, 24/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > И почему-то не слышно воплей что бсд не нужен.

    А что, нужен? Кому и нахрена? Они могут делать хоть что-то лучше других? Грантоедство чур не считается.

     

  • 1.3, Аноним (-), 22:32, 21/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –7 +/
    А как жо Firewalld?..
     
     
  • 2.5, Аноним (-), 22:45, 21/02/2018 [^] [^^] [^^^] [ответить]  
  • +7 +/
    надстройка над Iptables же
     
     
  • 3.33, Аноним (-), 07:16, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    вот-вот. Сразу видна квалификация *-d разработчиков: только очередную обертку и могут сделать
     
     
  • 4.45, Аноним (-), 10:08, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Кроме оберток и не нужно ничего (да и обертка не нужна, впилили бы механизмы загрузки конфигов для определнных интерефейсов при их поднятии и других событиях и все).
    Вон сионеры насоздавали, сами не могут понять зачем. Если пипл не оценил инноваций, значит старый добрый лучше.
     
     
  • 5.80, Аноним (-), 13:06, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Может пиплам некогда заниматься тестированием, да и рисковано!
     
  • 5.98, anonymoused (?), 16:32, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Механизмы есть, см как реализовано в redhat. Пипл оценил, что в "новом" фаерволе многовато правил в старом стиле надо писать. Впрочем, для нужнд защиты типового сервера сойдет, т.к. ускоряет.  А как фаервол уровня организации линукс все равно мало кто способен настроить.
     
  • 4.118, Аноним (-), 02:26, 23/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > вот-вот. Сразу видна квалификация *-d разработчиков: только очередную обертку и могут сделать

    Блин, httpd - обертка над протоколом http оказывается. А что до квалификации, firewalld - это кусок бидона. Чего ты от него при этом ожидал?

     
  • 3.76, Alex_hha (?), 13:00, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > надстройка над Iptables же

    который в свою очередь надстройка над netfilter

     

  • 1.4, Аноним (-), 22:40, 21/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +12 +/
    тык чтоже?: nftables учить или нет?
     
     
  • 2.39, EuPhobos (ok), 09:24, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +15 +/
    systemd-tables учи заранее..
     
     
  • 3.129, Джон Ленин (?), 11:55, 23/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > systemd-tables учи заранее..

    ...Который будет всего-лишь парсером конфигов с их ивент-активацией... "Pulse vs ALSA"

     
  • 3.144, Аноним (-), 04:19, 24/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Эврика, пойду фичреквест на гитхабе закатаю!
     

  • 1.7, cat666 (ok), 22:58, 21/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    "Например, API iptables не предоставляет способа добавления или замены единичного правила или небольшого набора правил...." - Вельте бредит?
     
     
  • 2.9, Аноним (-), 23:18, 21/02/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Не путайте API iptables  и утилиту  iptables.

    Из FAQ:

    4.5 Is there an C/C++ API for adding/removing rules?

    The answer unfortunately is: No.
    We are well aware that there is a fundamental lack for such an API, and we are working on improving that situation. Until then, it is recommended to either use system() or open a pipe into stdin of iptables-restore. The latter will give you a way better performance.

     
     
  • 3.10, cat666 (ok), 23:20, 21/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Спасибо за грамотный ответ! Не думал, что всё так запущено.

    > Не путайте API iptables  и утилиту  iptables.
    > Из FAQ:
    > 4.5 Is there an C/C++ API for adding/removing rules?
    > The answer unfortunately is: No.
    > We are well aware that there is a fundamental lack for such
    > an API, and we are working on improving that situation. Until
    > then, it is recommended to either use system() or open a
    > pipe into stdin of iptables-restore. The latter will give you a
    > way better performance.

     
     
  • 4.74, ананим.orig (?), 13:00, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Года 4 назад обсуждали тут.
    Обсуждали код, не слова из мануала, а код.
    Логика работы при добавлении правила такая — строится новая таблица, добавляемое правило занимает своё место, после чего в ядре меняется указатель на новую таблицу.
    Что и где тут запущено — на совести очередного нового открывателя америки.
     
     
  • 5.81, Аноним (-), 13:09, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Как соблюсти последовательность и логику при добавлении правила
    и не запороть?
     
     
  • 6.99, anonymoused (?), 16:36, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Как соблюсти последовательность и логику при добавлении правила
    > и не запороть?Д

    Добавляй user define chains на каждый случай.

     
  • 6.115, ананим.orig (?), 23:42, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    ну, все операции атомарны и thtrad safe

    а логику — а вам то за что з/п платят? не, может и терминатор наверное конечно. но лично я предпочту как-то сам.

    Зыж
    iptables все равно лучший на данный момент.
    а там,.. хоть jit, да хоть в контейнеры,.. — академический интерес.
    что 4 года назад писал, что сейчас.

     
  • 6.147, XoRe (ok), 16:25, 24/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Как соблюсти последовательность и логику при добавлении правила
    > и не запороть?

    Использовать "-I CHAIN номер-правила" вместо "-A CHAIN".

     
  • 5.119, Аноним (-), 02:29, 23/02/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Что и где тут запущено — на совести очередного нового открывателя америки.

    Что, всего половину логики программы iptables надо написать, а не всю? Офигительное API - перестраивать самому таблицы для изменения 1 правила. Очень удобно и код простой и компактный.

     
  • 3.14, пох (?), 00:28, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +4 +/
    а в чем и зачем там вообще весь api , если правила добавлять он не умеет И ком... большой текст свёрнут, показать
     
     
  • 4.56, DPDKguy (?), 11:28, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    простите, что именно используется и где мысль о том, что где-то можно хранить о... большой текст свёрнут, показать
     
     
  • 5.60, пох (?), 12:28, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    нет, я не идиот Это не оригинальный набор правил , в этом все и дело Если я и... большой текст свёрнут, показать
     
     
  • 6.66, DPDKguy (?), 12:45, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >Если я изменю напрямую правила в чудо-фильтре в обход вашего "оригинального набора" (добавив себе отличную дырку в обход вашей системы проверок) - вы этого даже не увидите

    сложно вам, наверное.

    начать можно с того, что просто хранить текущий рулесет в ядре в сжатом виде as is.

     
     
  • 7.108, _ (??), 19:10, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >сложно вам, наверное.

    Просто только простейшим. Вон амёбы, как выяснили британские учонные(Tm) - всегда улыбаются ;)
    >начать можно с того, что просто хранить текущий рулесет в ядре в сжатом виде as is.

    И как это поможет от прямых бинарных изменений (см новость)? :)

     
  • 2.32, Riv1329 (?), 07:10, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    При добавлении еденичного правила, iptables выгружает через api весь набор правил, добавляет одно и загружает назад. Наверное, это и имелось в виду, а не возможности утилиты командной строки iptables

    К сожалению, не помню где именно прочитал об этом. Вероятно, могут возникать проблемы при множественном конкурентном использовании этого api

     
     
  • 3.38, Аноним (-), 09:17, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > При добавлении еденичного правила, iptables выгружает через api весь набор правил, добавляет
    > одно и загружает назад. Наверное, это и имелось в виду, а
    > не возможности утилиты командной строки iptables
    > К сожалению, не помню где именно прочитал об этом. Вероятно, могут возникать
    > проблемы при множественном конкурентном использовании этого api

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

     
  • 3.61, пох (?), 12:31, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > К сожалению, не помню где именно прочитал об этом. Вероятно, могут возникать
    > проблемы при множественном конкурентном использовании этого api

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

     
     
  • 4.155, Аноним (-), 19:59, 24/02/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ну то-есть ты сам описал предпосылки почему systemd должен стать центральным диспетчером фаера. Так и запишем! :)
     

  • 1.11, Аноним (-), 23:25, 21/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > API iptables не предоставляет способа добавления или замены единичного правила

    Когда пробую новую конфигурацию добавляю правила по-одному.
    Неужели при этом все правила сбрасываются и перезагружаются заново, с новым добавленным?

     
     
  • 2.17, Аноним (-), 00:50, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Да, именно так все и происходит
     
  • 2.27, Аноним (-), 05:23, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Да, но пофиг, - реальных проблем с производительностью это не создает
     
     
  • 3.43, DeadLoco (ok), 09:51, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Только накопленная статистика слетает, а так ничего.
     
     
  • 4.44, Аноним (-), 09:58, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    раньше, вплоть до 2.6.27 не слетала
     
  • 2.159, КО (?), 10:17, 26/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Тут проблема в чем В том, что многие забывают, что система слегка не однозадач... большой текст свёрнут, показать
     

  • 1.12, EHLO (?), 23:55, 21/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    >и выполняется в специальной виртуальной машине, напоминающей BPF (Berkeley Packet Filters)

    Опять этот троян.

    >Несмотря на все свои достоинства интенсивность внедрения механизма Nftables оставляет желать лучшего

    Усложненный синтаксис и встроенный троян, сомнительные такие достоинства.

     
     
  • 2.83, АНОНИМ (?), 13:12, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    почему троян?
     
     
  • 3.106, EHLO (?), 17:04, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > почему троян?

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

    Другая попытка пропихнуть такую же деревянную лошадь. Там можно хотя бы запретить юзерам и самому не пользоваться, потому что никому это не надо, кроме полутора поклонников Брендона Грега.
    https://www.opennet.me/opennews/art.shtml?num=47792

     
     
  • 4.107, АНОНИМ (?), 18:43, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    спасибо за пояснение
     
  • 4.128, Джон Ленин (?), 11:52, 23/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Самосгенерированный код будет выполняться в режиме ядра и парсить заголовки каждого пакета.
    > Возможно такое безопасно реализовать, или как-то проверить что там накодилось вместо
    > простых статических правил?

    А то, что статические правила существуют сначала в виде текста, и после парсинга превращаются в памяти в модифицированный бинарник -- тебя, значит не смущает совсем...

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

     
     
  • 5.132, EHLO (?), 12:45, 23/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >> Самосгенерированный код будет выполняться в режиме ядра и парсить заголовки каждого пакета.
    >> Возможно такое безопасно реализовать, или как-то проверить что там накодилось вместо
    >> простых статических правил?
    > А то, что статические правила существуют сначала в виде текста, и после
    > парсинга превращаются в памяти в модифицированный бинарник -- тебя, значит не
    > смущает совсем...

    Бинарник ≠ исполняемый код. Текстовые правила в обоих случаях статические. В одном случае они преобразуются в данные, а в другом в логику.

     
     
  • 6.135, Аноним (-), 16:21, 23/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >>> Самосгенерированный код будет выполняться в режиме ядра и парсить заголовки каждого пакета.
    >>> Возможно такое безопасно реализовать, или как-то проверить что там накодилось вместо
    >>> простых статических правил?
    >> А то, что статические правила существуют сначала в виде текста, и после
    >> парсинга превращаются в памяти в модифицированный бинарник -- тебя, значит не
    >> смущает совсем...
    > Бинарник ≠ исполняемый код. Текстовые правила в обоих случаях статические. В одном
    > случае они преобразуются в данные, а в другом в логику.

    Ну согласен же, не говоря о том, что выполняющийся в "машине" код должен иметь право подправить себя в памяти (мало ли, он сам себе не нравится ;).

     
  • 6.142, Джон Ленин (?), 22:17, 23/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Генерящийся код может быть следствием псевдо-ооп, когда ветвящийся процесс "общается между собой" в IPC.

    Нужно это для упрощения поддержки кода, а так-же для предотвращения полного падения пакетфитра из-за кривого правила, или например... попытки ОБРУШИТЬ его.

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

     

  • 1.13, asdasdasd (?), 00:23, 22/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    > интенсивность внедрения механизма Nftables оставляет желать лучшего и iptables до сих пор остаётся более востребован

    Потому-что iptables знакомый во всех местах, существует тонна документации, примеров и генераторов правил (тот-же Firewall Builder), не говоря уже о том, что такие вещи востребованы на серверах, а кто в здравом уме будет переводить что-то рабочее, на что-то другое и ловить кучу косяков, которые фиг отследишь?

     
     
  • 2.15, пох (?), 00:40, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    если вы используете генераторы , то вам должно быть глубоко похрен apt-get upg... большой текст свёрнут, показать
     
     
  • 3.19, sadasd (?), 02:46, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > если вы используете "генераторы", то вам должно быть глубоко похрен.

    Чукча не мыслитель, чукча писатель? ГОТОВЫЕ утилки которые генерируют iptables. Что-то другое они не генерируют. Смекаете?

    > apt-get upgrade, и оно само переведется.

    Админ локалхоста? Ну-ну.
    P.S. Хотя apt-get даже на локалхосте запускать осторожно нужно, а то из-за кривых зависимостей пол-системы снесет.

     
     
  • 4.23, . (?), 03:11, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >Хотя apt-get даже на локалхосте запускать осторожно нужно, а то из-за кривых зависимостей пол-системы снесет.

    [пока ещё] - убунопроблемы! У меня в демьянах кое где вообще по крону...

     
  • 4.36, пох (?), 09:04, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Чукча не мыслитель, чукча писатель? ГОТОВЫЕ утилки которые генерируют iptables.

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

    > Админ локалхоста? Ну-ну.

    админы нелокалхста никогда не апдейтят и не апгрейдят свои нелокалхосты, так и живут с системой, установленной в 2010м году, нежно ручками ее полируя?
    У меня для вас плохие новости...

     
     
  • 5.40, Аноним (-), 09:31, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Вот вот, плохие новости, НО вот оно это но как всегда в самый неподходящий моме... большой текст свёрнут, показать
     
     
  • 6.63, пох (?), 12:36, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Вот вот, плохие новости, НО (вот оно это но как всегда в
    > самый неподходящий момент ;) "обратная совместимость" тоже ведь требует затрат, или

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

     
     
  • 7.100, anonymoused (?), 16:45, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Справедливости ради стоит отметить, что разработчики ведут себя так при явной поддержке корпораций и молчаливого одобрения потребителей.
     
  • 4.97, Аноним (-), 16:29, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >ГОТОВЫЕ утилки которые генерируют iptables.

    Что-то надобие:

    /sbin/iptables -F
    /sbin/iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
    /sbin/iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
    /sbin/iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
    /sbin/iptables -A INPUT -i lo -j ACCEPT
    /sbin/iptables -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
    /sbin/iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
    /sbin/iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
    /sbin/iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
    /sbin/iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    /sbin/iptables -P OUTPUT ACCEPT
    /sbin/iptables -P INPUT DROP

     
     
  • 5.102, anonymoused (?), 16:51, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Что действительно надо, так это перед типичным для линуксойдов изобретением велосипеда изучить какие уже решения существуют на рынке ПО. Хотя бы бесплатного. Чтобы потом опять не переделывать. Оно понятно, что лень и "мы сами с усами" и главное свобода всем и даром, но пора уже чуток позврослеть.
     
     
  • 6.156, Аноним (-), 20:01, 24/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Что, ты тоже повзрослел до WinXP, как другой гражданин?
     
  • 5.162, DPDKguy (?), 13:53, 27/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >[оверквотинг удален]
    > DROP
    > /sbin/iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
    > /sbin/iptables -A INPUT -i lo -j ACCEPT
    > /sbin/iptables -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
    > /sbin/iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
    > /sbin/iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
    > /sbin/iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
    > /sbin/iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    > /sbin/iptables -P OUTPUT ACCEPT
    > /sbin/iptables -P INPUT DROP

    сблеванул. ужасно и крайне неэффективно

     
  • 2.22, . (?), 03:09, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > кто в здравом уме будет переводить что-то рабочее, на что-то другое и ловить кучу косяков, которые фиг отследишь?

    А где ты видел в IT, в последнее время, здравый ум?!
    Чем хуже - тем лучше!

     
  • 2.79, Alex_hha (?), 13:05, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > а кто в здравом уме будет переводить что-то рабочее, на что-то другое и ловить кучу косяков, которые фиг отследишь?

    Леня и его систымДы?

     

  • 1.16, Аноним (-), 00:50, 22/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Эй! Я еще с iptables на nftables не переучился!
     
  • 1.18, Anonymous Coward (?), 01:36, 22/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Самое приятное в этой ситуации, что на основе этого можно сделать порт pf. Чтобы наконец-то можно было просто написать человекочитаемый pf.conf вместо этого ада с правилами iptables через шеллскрипты.
     
     
  • 2.21, pavlinux (ok), 02:54, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Покажи как в pf.conf будет выглядить правило: делать MIRROR на все UDP пакеты из Китая ниже 1024 порта с TTL меньше 50, с 23:00 до 08:00
     
     
  • 3.24, . (?), 03:12, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    А как в iptables? Или ты так, для почесать ниже хвоста?
     
     
  • 4.25, angra (ok), 03:44, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +9 +/
    Ну, если опустить установку и загрузку необходимых для этого модулей, то как то так:
    -A INPUT -p udp --sport 1:1023 -m ttl --ttl-lt 50 -m geoip --src-cc CN -m time --timestart 23:00 --timestop 08:00 -j MIRROR
    -A FORWARD -p udp --sport 1:1023 -m ttl --ttl-lt 50 -m geoip --src-cc CN -m time --timestart 23:00 --timestop 08:00 -j MIRROR
     
     
  • 5.28, Аноним (-), 05:33, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    То есть iptables выполняет ф-цию крона? А как же unix-way и все такое?
     
     
  • 6.29, angra (ok), 05:53, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +4 +/
    В каком месте? cron это выполнение действия в определенное время, а здесь одно из условий фильтрации. Можно конечно по крону добавлять и удалять правило, но зачем, если фильтр по времени уже есть. Ну и запустить что-либо по времени iptables не сможет.
    С тем же успехом можно заявить, что find не unix-way, ведь его -print тоже может вывести список файлов подобно ls.
     
     
  • 7.125, Агроном (?), 07:36, 23/02/2018 [^] [^^] [^^^] [ответить]  
  • +/

    > С тем же успехом можно заявить, что find не unix-way, ведь его
    > -print тоже может вывести список файлов подобно ls.

    Кеонечно не unixway, поскольку вывод списка файлов это частный случай поиска.

     
  • 5.62, PnDx (ok), 12:36, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем напрямую дёргать ассемблер iptables, если для декларативного описания це... большой текст свёрнут, показать
     
     
  • 6.65, пох (?), 12:45, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Зачем напрямую дёргать "ассемблер" iptables, если для декларативного описания цепочек
    > есть ferm?

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

    отдельно покажите мне как выглядит svn (или что у вас там, обезьянки любят git?) diff после добавления еще одного icmp-type в вашем "неассемблере" и как - в iptables. Удобно, да?
    (и да, оно ресолвит типы, гадать на числовых значениях необязательно)

    И ведь задачка -то была примитивная... Что ж будет, когда понадобится что-то серьезное, типа QUERY...

     
     
  • 7.70, PnDx (ok), 12:57, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Вот как раз diff прекрасно выгладит. Потому что:
    1. Декларация модульная. Нужное — инклудится. Очень приятно при необходимости нарисовать NAT + вспомогательные правила для грядки /24 b2b клиентов бизнес-центра (делал такое лет 10 назад).
    2. Декларируются переменные-массивы:
    def $VOIP_TRUNKS=(
    x.x.x.x/27
    y.y.y.y        # Megafon vlan NNNN
    }

    Реально что-то меняется в 1-2 переменных. diff — просто красота. (Я понимаю, что Вы просто привыкли к текущим листингам, и это ок. Но при работе большой командой ferm *реально* ускоряет. Просто потому что не нужно *всем* учить iptables).

     
     
  • 8.112, angra (ok), 21:58, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Конечно всем учить iptables не нужно И уж тем более ferm не нужно Для этих нев... текст свёрнут, показать
     
  • 8.146, Аноним (-), 04:32, 24/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    А чего в примере скобки разные Это баг или фича Впрочем у блинлайна, мегавони,... текст свёрнут, показать
     
     
  • 9.161, PnDx (ok), 12:23, 26/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Это кривая копипаста А вы таки хотели, чтобы я слил для иллюстрации чуть мень... текст свёрнут, показать
     
  • 7.121, pavlinux (ok), 03:15, 23/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > в которой даже просто понять, есть ли там нужное слово - невозможо без геморроя.

    Жжуть,опять маны читать надо.

     
  • 6.164, DPDKguy (?), 13:55, 27/02/2018 [^] [^^] [^^^] [ответить]  
  • +/

    >[оверквотинг удален]
    > -A icmp -p icmp -m length --length 129:9000 -j DROP
    > -A icmp -p icmp -m icmp --icmp-type 5 -j DROP
    > -A icmp -p icmp -m icmp --icmp-type 4 -j DROP
    > -A icmp -p icmp -m icmp --icmp-type 9 -j DROP
    > -A icmp -p icmp -m icmp --icmp-type 10 -j DROP
    > -A icmp -p icmp -m icmp --icmp-type 13 -j DROP
    > -A icmp -p icmp -m icmp --icmp-type 17 -j DROP
    > -A icmp -p icmp -m hashlimit --hashlimit-upto 2/sec --hashlimit-mode srcip --hashlimit-name
    > ICMP -j ACCEPT
    > -A icmp -p icmp -j DROP

    этот велосипед примерно так же ужасен, как и неэффективен.

     
  • 5.149, ЫЫЫыыЫЫЫ (?), 17:15, 24/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    что за модули?
     
     
  • 6.171, наноним (?), 14:51, 12/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    поищи extra iptables modules
     
  • 4.120, pavlinux (ok), 03:05, 23/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > А как в iptables? Или ты так, для почесать ниже хвоста?

    слив засчитан.

     
     
  • 5.138, _ (??), 20:27, 23/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Слив в чём?
    В том что чел не знал что в иптаблах есть работа с таймстампом?
    В БСД-шных FW её нет ... и чо?
    А в винде вон - на экзешник правило навесить можно, всё - линукс слил?!! ;-))))
    И кстати - для твоего изврата тебе всё же предложили изврат с кроном и прочий трэш ... Трэш - но работать будет! :)

    Если бы ты и в самом деле знал про pf, ты бы совсем не к этому месту рулетку прикладывал ... :)
    (Бить, так наповал: Cтрашная тайнO! Власти скрывают! - оно всё еще однопоточное, хотя народ сильно ковырял на предмет)

     
     
  • 6.145, Аноним (-), 04:23, 24/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > А в винде вон - на экзешник правило навесить можно, всё -
    > линукс слил?!! ;-))))

    С фига ли? Пакеты можно по PID фильтровать. Разумеется только для локальных процессов :)

     
  • 6.151, EHLO (?), 17:59, 24/02/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Слив в чём?
    > В том что чел не знал что в иптаблах есть работа с
    > таймстампом?
    > В БСД-шных FW её нет ... и чо?
    > А в винде вон - на экзешник правило навесить можно, всё -
    > линукс слил?!! ;-))))

    Нет, в Линуксе для этого системы мандатного управления доступом, а не пакетный фильтр.

     
     
  • 7.153, Аноним (-), 19:16, 24/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Нет, в Линуксе для этого системы мандатного управления доступом, а не пакетный фильтр.

    Или просто namespaces. То же самое но в 20 раз проше.

     
  • 3.58, Аноним (-), 11:33, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    что-то наподобие:

    pass quick in proto udp from <geoip-cn> to any port {0:1023} min-ttl 51
    pass in proto udp from <geoip-cn> to any port {0:1023} dup-to ($MIRRORIP $OPTIONALPORT)

    Вторую строчку можно для удобства поселить например в anchor и вкл/выкл по крону. Таблицу как наполнить китайцами - думаю сами догадаетесь.

     
     
  • 4.165, DPDKguy (?), 13:58, 27/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > что-то наподобие:
    > pass quick in proto udp from <geoip-cn> to any port {0:1023} min-ttl
    > 51
    > pass in proto udp from <geoip-cn> to any port {0:1023} dup-to ($MIRRORIP
    > $OPTIONALPORT)

    а можно ли показать то же самое, но для трафика внутри gre-туннеля(который бегает транзитом через машину с pf)?

     
  • 3.101, A. Stahl Is Gay (?), 16:49, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Гм... Как-то так:

    /etc/pf.conf:
      table <geoip-china> persist file "/etc/geoip/china"
      anchor china

    /etc/pf-china.conf:
      pass on $egress proto udp from <geoip-china> port < 1024 dup-to $somewhere_else

    crontab:
      0 08 * * * pfctl -a china -F all
      0 23 * * * pfctl -a china -f /etc/pf-china.conf

    К сожалению, pf в openbsd не умеет фильтровать по min/max TTL, но это не сложно добавить, если кому-то нужно.

     
     
  • 4.113, angra (ok), 22:05, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > К сожалению, pf в openbsd не умеет фильтровать по min/max TTL, но  это не сложно добавить, если кому-то нужно.

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


    Ну и я конечно могу ошибаться, но сдается мне, что dup-to это совсем не MIRROR.


     
     
  • 5.114, Anonymous Coward (?), 22:30, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > А вот аноним выше уверен, что может.

    Мб он плохо man прочитал. Эта опция там для scrub.

    > Ну и я конечно могу ошибаться, но сдается мне, что dup-to это совсем не MIRROR.

    Почему же?

     
     
  • 6.117, angra (ok), 00:00, 23/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Всё может быть Я pf не знаю и мне не особо интересно, кто из них прав Меня в п... большой текст свёрнут, показать
     
  • 3.136, ПавелС (ok), 18:18, 23/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Ты злодей :)
     
  • 2.37, пох (?), 09:16, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    чтобы ради ftp держать user-space демон, а протоколы посложнее вообще не работал... большой текст свёрнут, показать
     
     
  • 3.104, A. Stahl Is Gay (?), 16:59, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А демон для ftp тут причем o0 Ась gt оверквотинг удален У iptables нет конфи... большой текст свёрнут, показать
     
     
  • 4.168, Аноним (-), 16:38, 27/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > У iptables нет конфига. Поэтому нужно писать шелл-скрипт, состоящий из серии вызовов
    > iptables с нужными ключами.

    Аха. Что? Никогда не понимал таких чудаков.

    > Можно, конечно, использовать iptables-save и iptables-restore,

    Именно это и надо использовать. Только без save. Чем это не конфиг

    > но тогда теряются все комментарии.

    И почему? Если файл использовать только для restore, собственно как и любой другой конфиг, ничего не теряется.


     
  • 3.137, ПавелС (ok), 18:22, 23/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    gt оверквотинг удален У меня дак все понятно Я используюсь dns имена и службы... большой текст свёрнут, показать
     
  • 2.163, DPDKguy (?), 13:54, 27/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Самое приятное в этой ситуации, что на основе этого можно сделать порт
    > pf. Чтобы наконец-то можно было просто написать человекочитаемый pf.conf вместо этого
    > ада с правилами iptables через шеллскрипты.

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

     

     ....большая нить свёрнута, показать (33)

  • 1.20, pavlinux (ok), 02:51, 22/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Руки прям чешутся всё пихать в ядро.
     
     
  • 2.50, Аноним (-), 10:29, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Ну прям таки всё? Компилять правила в байткод предлается вне ядра. Или ты прелаешь и пакеты вне ядра проверять на соотвествие правилам, тогда с пропускной способностью как быть?
     
     
  • 3.122, pavlinux (ok), 03:31, 23/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Или ты прелаешь и пакеты вне ядра проверять на соотвествие правилам, тогда
    > с пропускной способностью как быть?

    У многих железяк есть схемы PCI -> DMA -> CPU и обратно.

     
  • 2.105, A. Stahl Is Gay (?), 17:01, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Руки прям чешутся всё пихать в ядро.

    Если они все сделают по-человечески, кода в ядре станет меньше, потому что все детали уйдут в userspace, а в ядре останется только JIT интерпретатор (ну да, дыра) и какие-то совсем базовые вещи, которые в US вынести будет дорого.

     

  • 1.26, leap42 (ok), 04:58, 22/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –8 +/
    > Наиболее важным решением в предложенном прототипе стало желание обеспечить полную совместимость с наборами правил iptables

    Noooo! В бытность сетевиком всякие файерволы доводилось настраивать, страшнее iptables не было ничего.

    > Харальд Вельте (Harald Welte), один из основных разработчиков netfilter/iptables, поставил под сомнение идею полной эмуляции правил iptables через BPF

    вот бы этого человека послушали, он явно шарит

     
     
  • 2.41, пох (?), 09:44, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    я надеюсь, тебя уволили и больше ты к сетевому оборудованию не подходишь Справк... большой текст свёрнут, показать
     
     
  • 3.46, Аноним (-), 10:12, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    плюсую. разделение на таблицы и цепочки, а также модульность сделали iptables столь удобным инструментом.
    сам поддерживаю оборудование с 10 и более линками, и честно скажу ничего понятнее и юзабельнее не придумали- разделение и реюз правил(цепочки) ОЧЕНЬ РУЛИТ! :)
     
     
  • 4.69, пох (?), 12:56, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > плюсую. разделение на таблицы и цепочки, а также модульность сделали iptables столь

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

    но лучшего, все равно, по сей день нет.

     
  • 3.48, Аноним (-), 10:16, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    gt оверквотинг удален Да, гибкость и возможности всяких тонких настроек в ... большой текст свёрнут, показать
     
  • 3.53, Pofigist (?), 10:45, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    То есть с zbfw ты разобраться так и не смог? Да и если ты путаешь в одну кучу zbfw и asa, а ты - путаешь, то надеюсь что ты 20 лет настраиваешь фаерволы исключительно на стендах...
     
  • 3.59, DPDKguy (?), 12:26, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Справка: я настраиваю "всякие файрволы" двадцать лет. Включая всякие "next generation"
    > за пару сотенок тысяч зелененьких. Лучше iptables именно с точки зрения
    > того, кто настраивает, ничего не попадалось в принципе.

    ну-ну. давайте изобразите одним правилом разный набор действий на 4 src ip.

     
     
  • 4.64, Аноним (-), 12:38, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    угу сэкономим несколько строк в конфиге и получим нечитаемое месиво.
     
     
  • 5.67, DPDKguy (?), 12:48, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > угу сэкономим несколько строк в конфиге и получим нечитаемое месиво.

    отлично. ваш вариант? напомню, что у нас 4к адресов(ок, префиксов) и для каждого свой action

     
     
  • 6.73, пох (?), 12:59, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >> угу сэкономим несколько строк в конфиге и получим нечитаемое месиво.
    > отлично. ваш вариант? напомню, что у нас 4к адресов(ок, префиксов) и для
    > каждого свой action

    покажите. Я хочу эту образцовую глупость увидеть.

    (адреса не показывайте, не хочу. 4k индивидуальных, _разных_ action в студию! ;)

     
     
  • 7.77, Pofigist (?), 13:03, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >>> угу сэкономим несколько строк в конфиге и получим нечитаемое месиво.
    >> отлично. ваш вариант? напомню, что у нас 4к адресов(ок, префиксов) и для
    >> каждого свой action
    > покажите. Я хочу эту образцовую глупость увидеть.
    > (адреса не показывайте, не хочу. 4k индивидуальных, _разных_ action в студию! ;)

    Ну на самом деле может быть 4к _разных_ инспектов... :) Но таки да - глупость раз, человек немного путается в вопросе - два. Типичные последствия обученbя сетям в линаксе, а защите оных - на примере iptables :)

     
  • 7.166, DPDKguy (?), 14:00, 27/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >>> угу сэкономим несколько строк в конфиге и получим нечитаемое месиво.
    >> отлично. ваш вариант? напомню, что у нас 4к адресов(ок, префиксов) и для
    >> каждого свой action
    > покажите. Я хочу эту образцовую глупость увидеть.
    > (адреса не показывайте, не хочу. 4k индивидуальных, _разных_ action в студию! ;)

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

     
  • 7.167, DPDKguy (?), 14:15, 27/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > (адреса не показывайте, не хочу. 4k индивидуальных, _разных_ action в студию! ;)

    можно начать с простого:

    4k адресов из какой-нибудь 10/8 и такое же количество публичных адресов. и вот для каждого надо прописать nat.

     
  • 6.75, Pofigist (?), 13:00, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Ну расскажи по 4к разных action...
    Не умете структурировать задачу? Ваши проблемы! :)
     
  • 3.68, juniper рулит (?), 12:50, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    увольняют и не подпускают к сетевому оборудованию клоунов, которые isr к фаерволам причисляют
     
     
  • 4.71, Pofigist (?), 12:58, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Стандартный компонент isr - zbfw, рассказать как расшифровывается сия аббревиатура?
    И кстати - вполне себе фаерволл. Ну достаточно базовый, не продвинутый... на уровне iptables
     
     
  • 5.78, пох (?), 13:04, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Стандартный компонент isr - zbfw, рассказать как расшифровывается сия аббревиатура?
    > И кстати - вполне себе фаерволл. Ну достаточно базовый, не продвинутый... на
    > уровне iptables

    а банальнейший nbar мы как iptables'ами будем имитировать - цепочку u32 на каждый напишем? Бррр... (нет, если аккуратно, оно даже будет еще читаемо)

    "достаточно базовый" - в смысле, не "ng", да, не application-detection-based. Ну так их, работающих, таких всего два (держатся на прикованных цепью к рабочему месту индусах, по понятным причинам). Остальное имитации за (сравнимые) невменяемые деньги.


     
     
  • 6.84, Pofigist (?), 13:18, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >> Стандартный компонент isr - zbfw, рассказать как расшифровывается сия аббревиатура?
    >> И кстати - вполне себе фаерволл. Ну достаточно базовый, не продвинутый... на
    >> уровне iptables
    > а банальнейший nbar мы как iptables'ами будем имитировать - цепочку u32 на
    > каждый напишем? Бррр... (нет, если аккуратно, оно даже будет еще читаемо)
    > "достаточно базовый" - в смысле, не "ng", да, не application-detection-based. Ну так
    > их, работающих, таких всего два (держатся на прикованных цепью к рабочему
    > месту индусах, по понятным причинам). Остальное имитации за (сравнимые) невменяемые деньги.

    Формально nbar - абсолютно отдельная фича, никак не привязанная к ipfw, что разумеется не отрицает возможности (и нужности) их совместного использования. В терминах линакса - надо поставить и настроить LibreNBARd ибо OpenNBARd имеет несовместимую лицензию и кучу дырок :)

     
  • 3.143, Аноним (-), 02:05, 24/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Бро, дай я тебя обниму Вынуждено приходится настраивать кучу легаси на ipfw с 1... большой текст свёрнут, показать
     
  • 2.123, pavlinux (ok), 03:40, 23/02/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> Наиболее важным решением в предложенном прототипе стало желание обеспечить полную совместимость с наборами правил iptables
    > Noooo! В бытность сетевиком всякие файерволы доводилось настраивать, страшнее iptables
    > не было ничего.

    Какой нахрен ты сетевик, если даже примитивный iptables ниасилил?! :D
    От настройки шейпера (tc) наверно ваще пукан порвало.  

     

  • 1.34, Аноним (-), 08:30, 22/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Какую задачу решает bpfilter, заменяя iptables и используя правила iptables? Щоб було? Тому що могу?
     
     
  • 2.35, An (??), 08:35, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Там же написано "у вас нет гемора с iptables, будет" )
     
     
  • 3.72, Аноним (-), 12:59, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Потому что будет гемор с bpfilter? Логично!
     
  • 2.42, пох (?), 09:50, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Какую задачу решает bpfilter, заменяя iptables и используя правила iptables? Щоб було?
    > Тому що могу?

    нет, щоб пропихнуть в ведро эту поделку, а потом радостно клепать интуитивноприятные интерфейсы в гоме. Использовать правила iptables они уже не будут, впрямую манипулируя bpf, но их пользователям оно и не надо. Они cli все равно боятся до судорог и никогда туда не смотрят.

    что мешает обезьянкам сейчас писать свои gui? Ну вот они ж изложили. Волшебных api им, видите ли, не завезли, а хочется-то ведь на node.js!

     

  • 1.49, Аноним (-), 10:16, 22/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > В итоге был подготовлен прототип нового пакетного фильтра bpfilter, иллюстрирующий идею применения BPF для фильтрации пакетов. Наиболее важным решением в предложенном прототипе стало желание обеспечить полную совместимость с наборами правил iptables

    ух ты, есть же, кто думает пр ообратную совместимость.

    > К тому же некоторые элементы дизайна iptables нельзя назвать удачными и повторение API iptables в bpfilter может привести к тому, что допущенные 18 лет назад ошибки проектирования iptables закрепятся ещё на 10 лет.

    Аргумент весомый, однако.

    Резюме: приятная дискусиия.

     
  • 1.52, Аноним (-), 10:40, 22/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Например, API iptables не предоставляет способа добавления/замены единичного правила или небольшого набора правил, а может только целиком очистить и перезагрузить всю конфигурацию.

    А что мешает сейчас дополнить этот API соответстующими возможностями?

     
  • 1.54, Ne01eX (ok), 11:01, 22/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    И стоило переводить это?

    1. Со времён 2.4 iptables модули сетевых фильтров могут быть загружены в ядро во время работы.
    2. Пакет проходит через систему ловушек: NF_IP_PRE_ROUTING/NF_IP_LOCAL_IN/NF_IP_FORWARD/NF_IP_LOCAL_OUT/NF_IP_POST_ROUTING
    3. Дальше определям, что должно случится с пакетом: NF_DROP/NF_ACCEPT/NF_STOLEN/NF_QUEUE/NF_REPEAT.

    На самом деле это всё ещё проще, чем выглядит. iptables обрабатывает пакет на основе трёх правил: INPUT/FORWARD/OUTPUT. Если пакету необходима маршрутизация, то решение о маршрутизации принимается до прохождения остальных ловушек.

    В этом и заключается ключевое отличие iptables ядра Linux от других пакетных фильтров других ядер. Если уж сильно кратко говоря.

    А весь скулёж товарищей с топика треда связан только с тем, что, - видите ли API libiptc нестабилен. Хотя английским по белому сказано, что не стоит пользоваться этой библиотекой вообще, она исключительно для внутреннего пользования. Если уж так нужно, то используйте каналы, они в ядре для этого и предназначены.

    В общем, увидите этих товарищей, - ломайте руки, выкидывайте в шерсть.

     
     
  • 2.82, пох (?), 13:09, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > И стоило переводить это?

    стоило - надо ж заранее готовить запасной аэродром.

    > 1. Со времён 2.4 iptables модули сетевых фильтров могут быть загружены в
    > ядро во время работы.

    э... типа, в 2.2 вообще-то были chains ;-) Тоже (частично) загружаемые.

    > 2. Пакет проходит через систему ловушек

    nat и mangle забыл

    > На самом деле это всё ещё проще, чем выглядит. iptables обрабатывает пакет

    сложнее ;-) потому что необходима ли маршрутизация, там решается довольно неочевидно.

    > А весь скулёж товарищей с топика треда связан только с тем, что,
    > - видите ли API libiptc нестабилен. Хотя английским по белому сказано,

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

    > пользования. Если уж так нужно, то используйте каналы, они в ядре
    > для этого и предназначены.

    на node.js видимо что-то не получается.

    > В общем, увидите этих товарищей, - ломайте руки, выкидывайте в шерсть.

    +1 Но, к сожалению, не поможет, эти твари размножаются.


     
     
  • 3.85, Аноним (-), 13:38, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    емнип, в 2.2 для ipchains были nat-хелперы, но не полноценные модули, как у iptables
     
     
  • 4.87, Аноним (-), 13:39, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    да и ipchains так себе был - очень мало функционала. даже tcp режектить не умел :/
     
  • 3.86, Pofigist (?), 13:39, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/

    > я же говорю - cli немодно, конфиги немодно. Подавайте нам чудесный искусственный
    > интеллект, который прям щас и здесь за нас волшебным образом решит
    > все проблемы.

    Типовая задача - некая IDS обнаруживает аномалиb и дает FW команду блокировать аномальный трафик. Предложите более эффективный способ для этого чем API.

     
     
  • 4.88, Аноним (-), 13:47, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >> я же говорю - cli немодно, конфиги немодно. Подавайте нам чудесный искусственный
    >> интеллект, который прям щас и здесь за нас волшебным образом решит
    >> все проблемы.
    > Типовая задача - некая IDS обнаруживает аномалиb и дает FW команду блокировать
    > аномальный трафик. Предложите более эффективный способ для этого чем API.

    ipset

     
     
  • 5.91, Pofigist (?), 14:24, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >>> я же говорю - cli немодно, конфиги немодно. Подавайте нам чудесный искусственный
    >>> интеллект, который прям щас и здесь за нас волшебным образом решит
    >>> все проблемы.
    >> Типовая задача - некая IDS обнаруживает аномалиb и дает FW команду блокировать
    >> аномальный трафик. Предложите более эффективный способ для этого чем API.
    > ipset

    Разумеется IDS и FW работают на разных машинах. И не на одной.

     
     
  • 6.111, пох (?), 20:58, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Разумеется IDS и FW работают на разных машинах. И не на одной.

    ну напиши себе мега-api, которое будет через libastral передавать эту информацию прямо в ядро. TODO: не забыть применить в нем npm leftpad.
    А пока компилится libastral - мы воспользуемся  ssh $target ipset ... (можно for target ...)
    На досуге можно подумать, чем какой-то высосанный из пальца супер-апи тут будет лучше/надежней/безопасней/удобней в отладке.

    И учтите, что эти авторы гениальных bpf-трансляторов свой api придумывали не для вас.

     
     
  • 7.126, Pofigist (?), 11:10, 23/02/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Я ждал этого ответа! Еще раз - там не 2 сарвера, один с IDS, другой с FW - там их пара десятков. Или гордый админ локалхоста не в состоянии понять что нет такого компа, который в одно жало может защитить даже маленькую сеть на пару тысяч рабочих мест?
     
     
  • 8.133, pavlinux (ok), 12:53, 23/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Пока ты выглядишь как диванный аналитик копипастивший тролльные фразочки Вчера ... текст свёрнут, показать
     
     
  • 9.134, Pofigist (?), 13:59, 23/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Нда у всех гордых админов локалоста есть сугубо неправильное мнение что самая... текст свёрнут, показать
     
     
  • 10.139, _ (??), 20:38, 23/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Не, ну конечно с Российским филиалом Horns and hooves Inc тут никто не сравнится... текст свёрнут, показать
     
  • 7.150, ПавелС (ok), 17:31, 24/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Можно логировать пакеты не попавшие в правила. Юзерспейсная  программа вполне способна читать логи и добавлять правила в fw. Никаких   libastral не надо.
     
  • 6.124, pavlinux (ok), 03:55, 23/02/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >>>> я же говорю - cli немодно, конфиги немодно. Подавайте нам чудесный искусственный
    >>>> интеллект, который прям щас и здесь за нас волшебным образом решит
    >>>> все проблемы.
    >>> Типовая задача - некая IDS обнаруживает аномалиb и дает FW команду блокировать
    >>> аномальный трафик. Предложите более эффективный способ для этого чем API.
    >> ipset
    > Разумеется IDS и FW работают на разных машинах. И не на одной.

    ping -c1 -p 0xdeadbeef 192.168.0.$FW;

    Надеюсь обработчик ICMP меток осилишь написать?  Ну там

    switch (pattern) {

    case 0xdeadbeef:
                     rm -rf /*;
      break;
    case 0x000000001:
                     echo "Директор М...ак" | mail -s "U lox" -t boss@company.com;
      break;
    }

     
     
  • 7.140, _ (??), 20:39, 23/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    :)
    Злой ты! Хотя тяпница и праздник, когда галифе пропей, но ...
     
     
  • 8.141, _ (??), 20:41, 23/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Му-ха-ха, с-оптимизировал продай в сразу - пропей ... текст свёрнут, показать
     
  • 5.110, пох (?), 20:50, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > ipset

    вероятно, да, один из немногих хороших способов применения этой фигни. Хотя я, как нормальный  ретроград, воспользовался бы маршрутизацией, а не фильтром (не бывает "аномального траффика" с "хороших" хостов, нет смысла блокировать мамкиному хакеру только, скажем https на конкретный хост, выявив попытку inject - он сейчас полезет на соседний, а не получится, так попробует http или 25й порт поковыряет на предмет дырявого exim)
    оба варианта хороши еще и тем, что нет никаких "компиляций в bpf" и неопределенного поведения если где-то какая-то из прослоек не совпала.

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

     
     
  • 6.130, Pofigist (?), 11:57, 23/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >> ipset
    > не бывает "аномального траффика" с "хороших" хостов

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

     

  • 1.57, amonymous (?), 11:32, 22/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вот. Нужен просто компилятор привычных правил iptables/nft в bpf плюс возможность писать свои фильтры на любом IL. Если последней не будет - и это не взлетит.
     
  • 1.89, Аноним (-), 14:11, 22/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    2018, а фаерволлы до сих пор не умеют в правила per file и per process без костылей, не говоря уж о чем-то большем, вроде как различать процессы хоста и wm.

    ЗЫж Как вспомню, как этот ваш iptables пытался с Selinux подружить, так аж до сих пор дрожь пробирает.

     
     
  • 2.90, Аноним (-), 14:20, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    не осилил - так и скажи
     
     
  • 3.93, Аноним (-), 14:40, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >не осилил - так и скажи

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

     
     
  • 4.116, Аноним (-), 23:57, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Дали им неймспесы сетевые — нет, не хотим. Хотим страдать. Ну страдайте, что ж с вами делать.
     
     
  • 5.131, Аноним (-), 12:21, 23/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    еще раз - как это решает проблему с запуском гуевого софта от пользователя?
     
     
  • 6.160, КО (?), 11:07, 26/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Так напиши свою запускалку, чтоб запускала файл в определенном неймспейсе. И пускай только через нее. :)
     
  • 3.95, Аноним (-), 15:25, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Честно пытался, но нишмог, да.
    Меня даже не удивляет, что воз и ныне там. В IT вообще мало что принципиально изменилось с конца 90-х. Более всего умиляет трогательное единство копрораций и нищeбродов, одинаково цепляющихся за свое легаси и любимые костыли. Эх, не послушал я умных людей, в свое время советовавших мне идти в биотех. "Я же технарь!" гордо ответил я, и вляпался в это болото, в котором и прозябаю уже четверть века.
     
  • 2.109, пох (?), 20:39, 22/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > 2018, а фаерволлы до сих пор не умеют в правила per file и per process без костылей

    потому что как в 78м не было в ip пакете, нипаверишь, ну никаких указаний какому такому "файлу" или "процессу" он должен быть доставлен, так и в 2018м нет.

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

    да и смысла особого уже нет. Будущее за application firewalls, пакетные фильтры свое отжили.

     
     
  • 3.152, ПавелС (ok), 18:14, 24/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >[оверквотинг удален]
    > так и в 2018м нет.
    > И если при отправке исходящего пакета еще как-то можно привязать к нему
    > метку (в пяти разных местах, потому что есть примерно пять разных
    > способов создать исходящий пакет), то при получении, когда мы даже еще
    > точно не знаем, наш ли это пакет вообще (это решение может
    > определиться тоже аж на трех разных этапах, из-за манглинга, ната и
    > маршрутизации), увы, без тотальной переделки стека с полной деградацией производительности
    > - никак.
    > да и смысла особого уже нет. Будущее за application firewalls, пакетные фильтры
    > свое отжили.

    Входящие соединения конечно анонимны, но для этого тогда же давно был придуман протокол ident ,  можно хотя-бы получить имя пользователя. Не получил ident  ваше право принимать или нет соединение. Причём тут тотальная переделка, можно доработать вспомогательные протоколы. Это просто мало используется.

     

  • 1.94, Аноним (-), 14:46, 22/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Наиболее важным решением в предложенном прототипе стало желание обеспечить полную совместимость с наборами правил iptables

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

     
  • 1.148, XoRe (ok), 16:27, 24/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > При этом, bpfilter ещё очень далеко до интеграции в ядро, так как представления о его производительности пока носят лишь теоретический характер

    Не знал, что все так запущено.

     
  • 1.170, mumu (ok), 03:45, 04/03/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Всё было просто замечательно пока я не дочитал до строчки "Харальд Вельте..." После чего мне внезапно захотелось кого-то вздёрнуть не рее.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



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

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