The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Программный snat/dnat, !*! des, 12-Июл-07, 15:53  [смотреть все]
Здравствуйте!
Скажите:
1. как можно из программы на C сделать snat/dnat ? (т.е. вместо вызова iptables ... -j snat/dnat)
2. libipq может изменять содержимое пакета ?

спасибо!

  • Программный 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) можно читать пакеты, изменять из и писать обратно :). При этом они пойдут вверх по стеку/вниз по стеку - в зависимости от режима




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

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