The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Программный snat/dnat"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Программный snat/dnat"  
Сообщение от des email on 12-Июл-07, 15:53 
Здравствуйте!
Скажите:
1. как можно из программы на C сделать snat/dnat ? (т.е. вместо вызова iptables ... -j snat/dnat)
2. libipq может изменять содержимое пакета ?

спасибо!

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

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


1. "Программный snat/dnat"  
Сообщение от ppiitt123 on 12-Июл-07, 16:26 
>Здравствуйте!
>Скажите:
>1. как можно из программы на C сделать snat/dnat ? (т.е. вместо
>вызова iptables ... -j snat/dnat)
>2. libipq может изменять содержимое пакета ?
>
>спасибо!


libiptc и исходники модулей iptables

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Программный snat/dnat"  
Сообщение от des email on 12-Июл-07, 17:53 
>>Здравствуйте!
>>Скажите:
>>1. как можно из программы на C сделать snat/dnat ? (т.е. вместо
>>вызова iptables ... -j snat/dnat)
>>2. libipq может изменять содержимое пакета ?
>>
>>спасибо!
>
>
>libiptc и исходники модулей iptables

на сколько я понял, то разработчики netfilter не советуют использовать libiptc для этих целей =\

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

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Программный snat/dnat"  
Сообщение от int _0dh on 12-Июл-07, 18:23 
>>>Здравствуйте!
>>>Скажите:
>>>1. как можно из программы на C сделать snat/dnat ? (т.е. вместо
>>>вызова iptables ... -j snat/dnat)
>>>2. libipq может изменять содержимое пакета ?
>>>
>>>спасибо!
>>
>>
>>libiptc и исходники модулей iptables
>
>на сколько я понял, то разработчики netfilter не советуют использовать libiptc для
>этих целей =\
>
>если не добавлять правила "не лету", как можно из программы изменять содержимое
>пакетов ?
Из user-space программы можно использовать (отображаемые) PF_PACKET сокеты, но отправить пакет после получения и изменения далее по стеку нельзя.
Для этого нужно писать модуль ядра который будет делать это сам либо предоставит интерфейс (аналогичный например BPF) некоей юзеровой программе
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Программный snat/dnat"  
Сообщение от KdF (??) on 13-Июл-07, 00:47 
>>>>Здравствуйте!
>>>>Скажите:
>>>>1. как можно из программы на C сделать snat/dnat ? (т.е. вместо
>>>>вызова iptables ... -j snat/dnat)
>>>>2. libipq может изменять содержимое пакета ?
>>>>
>>>>спасибо!
>>>
>>>
>>>libiptc и исходники модулей iptables
>>
>>на сколько я понял, то разработчики netfilter не советуют использовать libiptc для
>>этих целей =\
>>
>>если не добавлять правила "не лету", как можно из программы изменять содержимое
>>пакетов ?
>Из user-space программы можно использовать (отображаемые) PF_PACKET сокеты, но отправить пакет после
>получения и изменения далее по стеку нельзя.
>Для этого нужно писать модуль ядра который будет делать это сам либо
>предоставит интерфейс (аналогичный например BPF) некоей юзеровой программе

ДАААААААААААА!

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

KdF

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Программный snat/dnat"  
Сообщение от KdF (??) on 13-Июл-07, 00:48 
>>>>>Здравствуйте!
>>>>>Скажите:
>>>>>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.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Программный snat/dnat"  
Сообщение от des email on 13-Июл-07, 10:24 
>Я имею в виду либу от netfilter и NFQUEUE.

а ты уверен? =\ откуда такая инфа?


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "Программный snat/dnat"  
Сообщение от KdF (??) on 13-Июл-07, 17:58 
>>Я имею в виду либу от netfilter и NFQUEUE.
>
>а ты уверен? =\ откуда такая инфа?


Kernel-часть своего биллинга на этом пишу.
На крайняк, если тебе нужны разные правила ната для разных критериев, ты можешь просто из обработчика nfqueue устанавливать MARK, а потом в правилах iptables установить действия согласно этому MARK-у

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "Программный snat/dnat"  
Сообщение от des email on 13-Июл-07, 10:49 
>Из user-space программы можно использовать (отображаемые) PF_PACKET сокеты, но отправить пакет после
>получения и изменения далее по стеку нельзя.
>Для этого нужно писать модуль ядра который будет делать это сам либо
>предоставит интерфейс (аналогичный например BPF) некоей юзеровой программе

хм, а причем тут BPF? насколько я понял, это просто фильтр.. или нет?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "Программный snat/dnat"  
Сообщение от int _0dh on 13-Июл-07, 12:46 
>>Из user-space программы можно использовать (отображаемые) PF_PACKET сокеты, но отправить пакет после
>>получения и изменения далее по стеку нельзя.
>>Для этого нужно писать модуль ядра который будет делать это сам либо
>>предоставит интерфейс (аналогичный например BPF) некоей юзеровой программе
>
>хм, а причем тут BPF? насколько я понял, это просто фильтр.. или
>нет?
при том что из него (/dev/bpf) можно читать пакеты, изменять из и писать обратно :). При этом они пойдут вверх по стеку/вниз по стеку - в зависимости от режима

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

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

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




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

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