The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Не понимаю работу divert в IPFW"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"Не понимаю работу divert в IPFW"
Сообщение от stnik Искать по авторуВ закладки on 16-Фев-04, 19:00  (MSK)
Объясните пожайлуста работу divert.
Есть строчки в правилах IPFW:
intnet - внутренняя сеть,
extnet - внешняя сеть,
ifout - карта смотрящая в инет,
divert natd ip from ${intnet} to any out via ${ifout}
divert natd ip from any to ${extnet} in via ${ifout}
эти строчки у меня стоят первыми.
Вообще-то сам NAT у меня работает, вопрос в другом.
Никак не могу никак понять, что происходит с пакетом при попадании на любую из этих строчек?
Не в принципе саму их запись понимаю следующим образом, при попадании на первое правило, пакет, пришедший из внутренней сети, перебрасывается с адресом NAT во внешнюю сеть. А вот далее, что происходит, если брать во внимание man ipfw("Дальнейший поиск прекращается."), то как бы выбрасывается и все. Следовательно, пакеты должны спокойно пробегать, не подвергаясь ни каким проверкам ниже, но этого не происходит. Наверное потому, что в том же man ipfw написано, что для gateway они проверяются дважды. Вот здесь и вся загвоздка, т.е. после переброски натом пакет проверяется второй раз, но какой и с какого места не понятно совсем. Если со второго правила и уже с подставленным адресом получателя ${extnet}, то как я себе представляю, произойдет зацикливание.
Помогите разобраться, мне тогда намного будет проще писать следующие правила и тем самым спокойнее спать.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Не понимаю работу divert в IPFW"
Сообщение от alexkid emailИскать по авторуВ закладки on 17-Фев-04, 10:39  (MSK)
Пакет проверяется дальше следующими правилами под условие которых он попадает.
Т.е. если у тебя ниже прописано правило что IP1 разрешено принимать пакеты  из внешней сети, а с остальным запрещено, то только IP1 пакеты дойдут от  второго правилом divert.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Не понимаю работу divert в IPFW"
Сообщение от A Clockwork Orange Искать по авторуВ закладки on 17-Фев-04, 10:46  (MSK)
диверт
диверт натд
тем и отличаются, что при втором пакет проверятся дальше после правила с нат.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Не понимаю работу divert в IPFW"
Сообщение от stnik Искать по авторуВ закладки on 17-Фев-04, 11:45  (MSK)
>диверт
>диверт натд
>тем и отличаются, что при втором пакет проверятся дальше после правила с
>нат.
Огромное спасибо за ответы.
В принципе я так и предпологал, но дока меня запутала.
И последний вопрос, дальнейшая проверка идет с перевернутым адресом?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Не понимаю работу divert в IPFW"
Сообщение от A Clockwork Orange Искать по авторуВ закладки on 17-Фев-04, 11:53  (MSK)
А это когда, где и что проверяешь
  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "Не понимаю работу divert в IPFW"
Сообщение от stnik Искать по авторуВ закладки on 17-Фев-04, 12:32  (MSK)
>А это когда, где и что проверяешь
Когда срабатывает первый divert natd, во внешнюю сеть. Он дальше будет проверять, можно его выкинуть или нет. Просто не хочется проверать это опытным путем.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "Не понимаю работу divert в IPFW"
Сообщение от A Clockwork Orange Искать по авторуВ закладки on 17-Фев-04, 12:35  (MSK)
Когда срабатывает
divert natd ip from ${intnet} to any out via ${ifout}
пакет имеет
адрес источника = адресу на который нитишь
адрес назначения = не изменился,
Пакетов с такими адресами и идет дальнейшая проверка.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "Не понимаю работу divert в IPFW"
Сообщение от stnik Искать по авторуВ закладки on 17-Фев-04, 12:48  (MSK)
Пока вроде все понял(хотя в принципе и догадывался).
Всем ответившим, огромное спасибо.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "Не понимаю работу divert в IPFW"
Сообщение от СергейКа Искать по авторуВ закладки on 17-Фев-04, 13:39  (MSK)
>Пока вроде все понял(хотя в принципе и догадывался).
>Всем ответившим, огромное спасибо.

Эх опоздал однако :)
Напоследок приведу цитату из man natd:

After translation by natd, packets re-enter the firewall at the rule number following the rule number that caused the diversion (not the next rule if there are several at the same number).

После трансляции natd, пакеты возвращаются в систему сетевой защиты и проверяются начиная с номера после номера правила, который вызвал divert natd (не следующее правило, что примечательно, а следующий номер).

Исходя из последнего возникает вопрос - если
${fwcmd} add 1000 divert natd ip from any to any via ${LanOut}
${fwcmd} add 1000 pass all from any to any

Будут ли пакеты проверятся вторым правилом с номером 1000?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

9. "Не понимаю работу divert в IPFW"
Сообщение от stnik Искать по авторуВ закладки on 17-Фев-04, 18:18  (MSK)
>Эх опоздал однако :)
>Напоследок приведу цитату из man natd:
>
>After translation by natd, packets re-enter the firewall at the rule number
>following the rule number that caused the diversion (not the next
>rule if there are several at the same number).
>
>После трансляции natd, пакеты возвращаются в систему сетевой защиты и проверяются начиная
>с номера после номера правила, который вызвал divert natd (не следующее
>правило, что примечательно, а следующий номер).
>
>Исходя из последнего возникает вопрос - если
>${fwcmd} add 1000 divert natd ip from any to any via ${LanOut}
>
>${fwcmd} add 1000 pass all from any to any
>
>Будут ли пакеты проверятся вторым правилом с номером 1000?
Спасибо за цитату из man natd. Если честно, то ее я и не заметил.
Мое понимание цитаты таково: что любой следующий номер, который строго > номера с правилом divert natd( т.е. в приведенном примере следующая проверка будет идти с номера >=1001).
Интересно вообще как работатет в таких ситуациях IPFW?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

10. "Не понимаю работу divert в IPFW"
Сообщение от СергейКа Искать по авторуВ закладки on 17-Фев-04, 19:09  (MSK)
Вставил в живые правила строчку
00600  88  58356 divert 8668 ip from any to <внешний ИП> in recv rl0
00600 598 347108 allow log logamount 30 ip from any to any

192.168.10.10 - Локальная машина
195.195.195.195 - Внешний ИП natd
192.168.10.1 - Внутрений ИП

Feb 17 19:00:06 mydomin /kernel: ipfw: 600 Accept TCP 192.168.10.1:22 192.168.10.10:2692 out via rl1
Feb 17 19:00:06 mydomin /kernel: ipfw: 600 Accept TCP 192.168.10.10:2692 192.168.10.1:22 in via rl1
Feb 17 19:00:08 mydomin /kernel: ipfw: 600 Accept TCP 192.168.10.10:2715 194.85.34.226:80 in via rl1
Feb 17 19:00:08 mydomin /kernel: ipfw: 600 Accept TCP 195.195.195.195:2715 194.85.34.226:80 out via rl0
Feb 17 19:00:08 mydomin /kernel: ipfw: 600 Accept TCP 194.85.34.226:80 192.168.10.10:2715 out via rl1
Feb 17 19:00:08 mydomin /kernel: ipfw: 600 Accept TCP 192.168.10.10:2715 194.85.34.226:80 in via rl1
Feb 17 19:00:08 mydomin /kernel: ipfw: 600 Accept TCP 195.195.195.195:2715 194.85.34.226:80 out via rl0
Feb 17 19:00:08 mydomin /kernel: ipfw: 600 Accept TCP 192.168.10.10:2715 194.85.34.226:80 in via rl1
Feb 17 19:00:08 mydomin /kernel: ipfw: 600 Accept TCP 195.195.195.195:2715 194.85.34.226:80 out via rl0
Feb 17 19:00:08 mydomin /kernel: ipfw: 600 Accept TCP 194.85.34.226:80 192.168.10.10:2715 out via rl1
Feb 17 19:00:10 mydomin last message repeated 2 times
Feb 17 19:00:10 mydomin /kernel: ipfw: 600 Accept TCP 192.168.10.10:2715 194.85.34.226:80 in via rl1
Feb 17 19:00:10 mydomin /kernel: ipfw: 600 Accept TCP 195.195.195.195:2715 194.85.34.226:80 out via rl0
Feb 17 19:00:10 mydomin /kernel: ipfw: 600 Accept TCP 194.85.34.226:80 192.168.10.10:2715 out via rl1
Feb 17 19:00:10 mydomin /kernel: ipfw: 600 Accept TCP 192.168.10.10:2715 194.85.34.226:80 in via rl1
Feb 17 19:00:10 mydomin /kernel: ipfw: 600 Accept TCP 195.195.195.195:2715 194.85.34.226:80 out via rl0
Feb 17 19:00:10 mydomin /kernel: ipfw: 600 Accept TCP 194.85.34.226:80 192.168.10.10:2715 out via rl1
Feb 17 19:00:10 mydomin /kernel: ipfw: 600 Accept TCP 192.168.10.10:2715 194.85.34.226:80 in via rl1
Feb 17 19:00:10 mydomin /kernel: ipfw: 600 Accept TCP 195.195.195.195:2715 194.85.34.226:80 out via rl0
Feb 17 19:00:10 mydomin /kernel: ipfw: 600 Accept TCP 192.168.10.10:2716 194.85.34.226:80 in via rl1
Feb 17 19:00:10 mydomin /kernel: ipfw: 600 Accept TCP 195.195.195.195:2716 194.85.34.226:80 out via rl0
Feb 17 19:00:10 mydomin /kernel: ipfw: 600 Accept TCP 194.85.34.226:80 192.168.10.10:2715 out via rl1
Feb 17 19:00:10 mydomin /kernel: ipfw: 600 Accept TCP 194.85.34.226:80 192.168.10.10:2715 out via rl1
Feb 17 19:00:10 mydomin /kernel: ipfw: 600 Accept TCP 192.168.10.10:2715 194.85.34.226:80 in via rl1
Feb 17 19:00:10 mydomin /kernel: ipfw: 600 Accept TCP 195.195.195.195:2715 194.85.34.226:80 out via rl0
Feb 17 19:00:10 mydomin /kernel: ipfw: 600 Accept TCP 194.85.34.226:80 192.168.10.10:2716 out via rl1
Feb 17 19:00:10 mydomin /kernel: ipfw: 600 Accept TCP 192.168.10.10:2716 194.85.34.226:80 in via rl1
Feb 17 19:00:10 mydomin /kernel: ipfw: 600 Accept TCP 195.195.195.195:2716 194.85.34.226:80 out via rl0
Feb 17 19:00:10 mydomin /kernel: ipfw: 600 Accept TCP 192.168.10.10:2716 194.85.34.226:80 in via rl1
Feb 17 19:00:10 mydomin /kernel: ipfw: limit 30 reached on entry 600

Меняю на 00601

Feb 17 18:58:33 mydomin /kernel: ipfw: 601 Accept TCP 192.168.10.1:22 192.168.10.10:2692 out via rl1
Feb 17 18:58:33 mydomin /kernel: ipfw: 601 Accept TCP 192.168.10.10:2692 192.168.10.1:22 in via rl1
Feb 17 18:58:34 mydomin /kernel: ipfw: 601 Accept UDP 192.168.10.10:138 192.168.10.255:138 in via rl1
Feb 17 18:58:39 mydomin /kernel: ipfw: 601 Accept TCP 192.168.10.10:2712 194.85.34.226:80 in via rl1
Feb 17 18:58:39 mydomin /kernel: ipfw: 601 Accept TCP 195.195.195.195:2712 194.85.34.226:80 out via rl0
Feb 17 18:58:39 mydomin /kernel: ipfw: 601 Accept TCP 194.85.34.226:80 192.168.10.10:2712 in via rl0
Feb 17 18:58:39 mydomin /kernel: ipfw: 601 Accept TCP 194.85.34.226:80 192.168.10.10:2712 out via rl1
Feb 17 18:58:39 mydomin /kernel: ipfw: 601 Accept TCP 192.168.10.10:2712 194.85.34.226:80 in via rl1
Feb 17 18:58:39 mydomin /kernel: ipfw: 601 Accept TCP 195.195.195.195:2712 194.85.34.226:80 out via rl0
Feb 17 18:58:39 mydomin /kernel: ipfw: 601 Accept TCP 192.168.10.10:2712 194.85.34.226:80 in via rl1
Feb 17 18:58:39 mydomin /kernel: ipfw: 601 Accept TCP 195.195.195.195:2712 194.85.34.226:80 out via rl0
Feb 17 18:58:39 mydomin /kernel: ipfw: 601 Accept TCP 194.85.34.226:80 192.168.10.10:2712 in via rl0
Feb 17 18:58:39 mydomin /kernel: ipfw: 601 Accept TCP 194.85.34.226:80 192.168.10.10:2712 out via rl1
Feb 17 18:58:40 mydomin /kernel: ipfw: 601 Accept TCP 194.85.34.226:80 192.168.10.10:2712 in via rl0
Feb 17 18:58:40 mydomin /kernel: ipfw: 601 Accept TCP 194.85.34.226:80 192.168.10.10:2712 out via rl1
Feb 17 18:58:40 mydomin /kernel: ipfw: 601 Accept TCP 194.85.34.226:80 192.168.10.10:2712 in via rl0
Feb 17 18:58:40 mydomin /kernel: ipfw: 601 Accept TCP 194.85.34.226:80 192.168.10.10:2712 out via rl1
Feb 17 18:58:40 mydomin /kernel: ipfw: 601 Accept TCP 192.168.10.10:2712 194.85.34.226:80 in via rl1
Feb 17 18:58:40 mydomin /kernel: ipfw: 601 Accept TCP 195.195.195.195:2712 194.85.34.226:80 out via rl0
Feb 17 18:58:40 mydomin /kernel: ipfw: 601 Accept TCP 194.85.34.226:80 192.168.10.10:2712 in via rl0
Feb 17 18:58:40 mydomin /kernel: ipfw: 601 Accept TCP 194.85.34.226:80 192.168.10.10:2712 out via rl1
Feb 17 18:58:40 mydomin /kernel: ipfw: 601 Accept TCP 194.85.34.226:80 192.168.10.10:2712 in via rl0
Feb 17 18:58:40 mydomin /kernel: ipfw: 601 Accept TCP 194.85.34.226:80 192.168.10.10:2712 out via rl1
Feb 17 18:58:40 mydomin /kernel: ipfw: 601 Accept TCP 192.168.10.10:2712 194.85.34.226:80 in via rl1
Feb 17 18:58:40 mydomin /kernel: ipfw: 601 Accept TCP 195.195.195.195:2712 194.85.34.226:80 out via rl0
Feb 17 18:58:40 mydomin /kernel: ipfw: 601 Accept TCP 192.168.10.54:2341 192.168.10.1:110 in via rl1
Feb 17 18:58:40 mydomin /kernel: ipfw: 601 Accept TCP 192.168.10.1:110 192.168.10.54:2341 out via rl1
Feb 17 18:58:40 mydomin /kernel: ipfw: 601 Accept TCP 192.168.10.54:2341 192.168.10.1:110 in via rl1
Feb 17 18:58:40 mydomin /kernel: ipfw: 601 Accept TCP 192.168.10.1:110 192.168.10.54:2341 out via rl1
Feb 17 18:58:40 mydomin /kernel: ipfw: 601 Accept TCP 192.168.10.54:2341 192.168.10.1:110 in via rl1
Feb 17 18:58:40 mydomin /kernel: ipfw: limit 30 reached on entry 601


Вывод - ничего не изменилось...

Может кто знает более правильный перевод мана...

  Рекомендовать в FAQ | Cообщить модератору | Наверх

11. "Не понимаю работу divert в IPFW"
Сообщение от Rippy Искать по авторуВ закладки on 25-Фев-04, 13:40  (MSK)
>Вставил в живые правила строчку
>00600  88  58356 divert 8668 ip from any to <внешний ИП> in recv rl0
>00600 598 347108 allow log logamount 30 ip from any to any

Покажи в первом варианте строчку из лога, которая бы удовлетворяла правилу
00600  88  58356 divert 8668 ip from any to <внешний ИП> in recv rl0
и
правилу
00600 598 347108 allow log logamount 30 ip from any to any
???  Я не увидел
А вот во втором случае после диверта 600 правилом, правило 601 кинуло в лог
Feb 17 18:58:40 mydomin /kernel: ipfw: 601 Accept TCP 194.85.34.226:80 192.168.10.10:2712 in via rl0

так что все правильно написано в мане

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




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

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