LINUX.ORG.RU

История изменений

Исправление Moisha_Liberman, (текущая версия) :

Мне важно что бы любым способом нужный мне трафик можно было ИЗМЕНИТЬ (а не дропнуть или пропустить).

У Вас должен быть «пакет». Который Вы получили из сетевого интерфейса и отправили в user-space на анализ. Если у Вас есть «пакет», то совершенно пофиг что Вы с ним сделаете дальше (измените флаги, поменяете payload, дропните или что ещё, что подскажет фантазия). Достаётся пакет из kernel space в user space через интерфейс netlink. А это именно файервол, оттуда пакет можно выцепить чтобы поменять каким-либо образом. Нельзя так просто выцепить пакеты RAW, т.к. они обрабатываются не файером, а непосредственно приложением. Его мы не рассматриваем.

Здесь я затрудняюсь что-либо конкретное Вам сказать, т.к. словосочетание «трафик можно было бы ИЗМЕНИТЬ» является слишком общим. Как именно Вы собрались менять трафик из этого определения мне не ясно.

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

Мне не важно iptables или nftables.

Одним из неприятных открытий будет «скорость» iptables в сравнении с... Так что, оно Вам «не важно» пока Вы не начали писать свой фильтр пакетов для устройства и не столкнулись с тем, что всё реализуется через задницу (для iptables) и всё дико тормозит. Ну и работа с iptables over netlink это ещё то «удовольствие».

Писать здесь проксик? Не уверен, т.к. насколько я понимаю, разговор идёт обо всех пакетах, приходящих на интрефейс, невзирая на их протокол. Тогда это уровень L2 (ну максимум L3), но уж совсем ни как не проксик, который работает на L4. Кто вообще чего-то брякнул про проксирование, я так и не понял, но это и не важно.

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

Ну а дальше уже дело Ваше. Успехов.

Теперь точно высказался.

Исходная версия Moisha_Liberman, :

Нет. Не так. Всё не так.

Мне важно что бы любым способом нужный мне трафик можно было ИЗМЕНИТЬ (а не дропнуть или пропустить).

У Вас должен быть «пакет». Который Вы получили из сетевого интерфейса и отправили в user-space на анализ. Если у Вас есть «пакет», то совершенно пофиг что Вы с ним сделаете дальше (измените флаги, поменяете payload, дропните или что ещё, что подскажет фантазия). Достаётся пакет из kernel space в user space через интерфейс netlink. А это именно файервол, оттуда пакет можно выцепить чтобы поменять каким-либо образом. Нельзя так просто выцепить пакеты RAW, т.к. они обрабатываются не файером, а непосредственно приложением, но это и не Ваш случай, т.к. приложения с RAW-sockets это случай отдельный и в данном случае явно не Ваш. Его мы не рассматриваем.

Здесь я затрудняюсь что-либо конкретное Вам сказать, т.к. словосочетание «трафик можно было бы ИЗМЕНИТЬ» является слишком общим. Как именно Вы собрались менять трафик из этого определения мне не ясно.

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

Мне не важно iptables или nftables.

Одним из неприятных открытий будет «скорость» iptables в сравнении с... Так что, оно Вам «не важно» пока Вы не начали писать свой фильтр пакетов для устройства и не столкнулись с тем, что всё реализуется через задницу (для iptables) и всё дико тормозит. Ну и работа с iptables over netlink это ещё то «удовольствие».

Писать здесь проксик? Не уверен, т.к. насколько я понимаю, разговор идёт обо всех пакетах, приходящих на интрефейс, невзирая на их протокол. Тогда это уровень L2 (ну максимум L3), но уж совсем ни как не проксик, который работает на L4. Кто вообще чего-то брякнул про проксирование, я так и не понял, но это и не важно.

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

Ну а дальше уже дело Ваше. Успехов.

Теперь точно высказался.