- Программный snat/dnat, ppiitt123, 16:26 , 12-Июл-07 (1)
>Здравствуйте! >Скажите: >1. как можно из программы на C сделать snat/dnat ? (т.е. вместо >вызова iptables ... -j snat/dnat) >2. libipq может изменять содержимое пакета ? > >спасибо! libiptc и исходники модулей iptables
- Программный snat/dnat, des, 17:53 , 12-Июл-07 (2)
>>Здравствуйте! >>Скажите: >>1. как можно из программы на C сделать snat/dnat ? (т.е. вместо >>вызова iptables ... -j snat/dnat) >>2. libipq может изменять содержимое пакета ? >> >>спасибо! > > >libiptc и исходники модулей iptables на сколько я понял, то разработчики netfilter не советуют использовать libiptc для этих целей =\ если не добавлять правила "не лету", как можно из программы изменять содержимое пакетов ?
- Программный snat/dnat, int _0dh, 18:23 , 12-Июл-07 (3)
>>>Здравствуйте! >>>Скажите: >>>1. как можно из программы на C сделать snat/dnat ? (т.е. вместо >>>вызова iptables ... -j snat/dnat) >>>2. libipq может изменять содержимое пакета ? >>> >>>спасибо! >> >> >>libiptc и исходники модулей iptables > >на сколько я понял, то разработчики netfilter не советуют использовать libiptc для >этих целей =\ > >если не добавлять правила "не лету", как можно из программы изменять содержимое >пакетов ? Из user-space программы можно использовать (отображаемые) PF_PACKET сокеты, но отправить пакет после получения и изменения далее по стеку нельзя. Для этого нужно писать модуль ядра который будет делать это сам либо предоставит интерфейс (аналогичный например BPF) некоей юзеровой программе
- Программный snat/dnat, KdF, 00:47 , 13-Июл-07 (4)
>>>>Здравствуйте! >>>>Скажите: >>>>1. как можно из программы на C сделать snat/dnat ? (т.е. вместо >>>>вызова iptables ... -j snat/dnat) >>>>2. libipq может изменять содержимое пакета ? >>>> >>>>спасибо! >>> >>> >>>libiptc и исходники модулей iptables >> >>на сколько я понял, то разработчики netfilter не советуют использовать libiptc для >>этих целей =\ >> >>если не добавлять правила "не лету", как можно из программы изменять содержимое >>пакетов ? >Из user-space программы можно использовать (отображаемые) PF_PACKET сокеты, но отправить пакет после >получения и изменения далее по стеку нельзя. >Для этого нужно писать модуль ядра который будет делать это сам либо >предоставит интерфейс (аналогичный например BPF) некоей юзеровой программе ДАААААААААААА! При использовании nfqueue - механизма, нормально работающего в ядрах после 2.6.18, что ли, это можно делать. Уж переписывали-переписывали, переписали наконец. KdF
- Программный snat/dnat, KdF, 00:48 , 13-Июл-07 (5)
>>>>>Здравствуйте! >>>>>Скажите: >>>>>1. как можно из программы на C сделать snat/dnat ? (т.е. вместо >>>>>вызова iptables ... -j snat/dnat) >>>>>2. libipq может изменять содержимое пакета ? >>>>> >>>>>спасибо! >>>> >>>> >>>>libiptc и исходники модулей iptables >>> >>>на сколько я понял, то разработчики netfilter не советуют использовать libiptc для >>>этих целей =\ >>> >>>если не добавлять правила "не лету", как можно из программы изменять содержимое >>>пакетов ? >>Из user-space программы можно использовать (отображаемые) PF_PACKET сокеты, но отправить пакет после >>получения и изменения далее по стеку нельзя. >>Для этого нужно писать модуль ядра который будет делать это сам либо >>предоставит интерфейс (аналогичный например BPF) некоей юзеровой программе > > > >ДАААААААААААА! > >При использовании nfqueue - механизма, нормально работающего в ядрах после 2.6.18, что >ли, это можно делать. Уж переписывали-переписывали, переписали наконец. > >KdF Я имею в виду либу от netfilter и NFQUEUE.
- Программный snat/dnat, des, 10:24 , 13-Июл-07 (6)
>Я имею в виду либу от netfilter и NFQUEUE. а ты уверен? =\ откуда такая инфа?
- Программный snat/dnat, KdF, 17:58 , 13-Июл-07 (9)
>>Я имею в виду либу от netfilter и NFQUEUE. > >а ты уверен? =\ откуда такая инфа? Kernel-часть своего биллинга на этом пишу. На крайняк, если тебе нужны разные правила ната для разных критериев, ты можешь просто из обработчика nfqueue устанавливать MARK, а потом в правилах iptables установить действия согласно этому MARK-у
- Программный snat/dnat, des, 10:49 , 13-Июл-07 (7)
>Из user-space программы можно использовать (отображаемые) PF_PACKET сокеты, но отправить пакет после >получения и изменения далее по стеку нельзя. >Для этого нужно писать модуль ядра который будет делать это сам либо >предоставит интерфейс (аналогичный например BPF) некоей юзеровой программе хм, а причем тут BPF? насколько я понял, это просто фильтр.. или нет?
- Программный snat/dnat, int _0dh, 12:46 , 13-Июл-07 (8)
>>Из user-space программы можно использовать (отображаемые) PF_PACKET сокеты, но отправить пакет после >>получения и изменения далее по стеку нельзя. >>Для этого нужно писать модуль ядра который будет делать это сам либо >>предоставит интерфейс (аналогичный например BPF) некоей юзеровой программе > >хм, а причем тут BPF? насколько я понял, это просто фильтр.. или >нет? при том что из него (/dev/bpf) можно читать пакеты, изменять из и писать обратно :). При этом они пойдут вверх по стеку/вниз по стеку - в зависимости от режима
|