URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 33529
[ Назад ]

Исходное сообщение
"Ipfw"

Отправлено vpeleh , 17-Авг-03 00:57 
Вроде все в нем понятно но есть два темних места
ето динамические правила і эти приставки до интерфейсов in, recv, xmit ...
вроде ничего сложного но вот немогу понять токе правило
from any to 192.168.243.12 "in recv" rl0
что значит "in recv"?
recv - ето понятно принятые а вот "in recv"
from 192.168.1.0/24 to any "out xmit" rl0
тоже не понимаю что такое out xmit подскажите где можно прочитать толково ато я уже и английскии мен читал и руский и не понял
и про динамические правила
Спасибо

Содержание

Сообщения в этом обсуждении
"Ipfw"
Отправлено Free , 17-Авг-03 04:10 
>Вроде все в нем понятно но есть два темних места
>ето динамические правила і эти приставки до интерфейсов in, recv, xmit ...
>
>вроде ничего сложного но вот немогу понять токе правило
>from any to 192.168.243.12 "in recv" rl0
>что значит "in recv"?
>recv - ето понятно принятые а вот "in recv"
>from 192.168.1.0/24 to any "out xmit" rl0
>тоже не понимаю что такое out xmit подскажите где можно прочитать толково
>ато я уже и английскии мен читал и руский и не
>понял
>и про динамические правила
>Спасибо

Насчет динамических правил - не понятно, что спрашиваешь.

Насчет остального:

in и out относятся к направлению движения пакета.

recv, xmit, via - это относится к интерфейсу. То есть интерфейс получил пакет, передал пакет, или via-через (неважно в какую сторону).

Типа примеры:

in recv rl0 - входящий пакет, полученный с интерфейса rl0
out recv rl0 - исходящий пакет, полученный rl0 интерфейсом
out xmit rl0 - исходящий пакет, отправленный rl0 интерфейсом

in xmit rl0 - входящий пакет, отправленный rl0 интерфейсом. Если подумать, то такого быть не может :) То есть это типа бред.

out recv ed0 xmit ed1 - пример из манула - исходящий пакет, полученный через ed0 и отправленный через ed1.

Если будешь писать out via или in via, то автоматом будет подставляться out xmit или in recv.

Надеюсь ничего не напутал :) Если что - люди поправят.


"Ipfw"
Отправлено vpeleh , 17-Авг-03 16:45 
>>Вроде все в нем понятно но есть два темних места
>>ето динамические правила і эти приставки до интерфейсов in, recv, xmit ...
>>
>>вроде ничего сложного но вот немогу понять токе правило
>>from any to 192.168.243.12 "in recv" rl0
>>что значит "in recv"?
>>recv - ето понятно принятые а вот "in recv"
>>from 192.168.1.0/24 to any "out xmit" rl0
>>тоже не понимаю что такое out xmit подскажите где можно прочитать толково
>>ато я уже и английскии мен читал и руский и не
>>понял
>>и про динамические правила
>>Спасибо
>
>Насчет динамических правил - не понятно, что спрашиваешь.
>
>Насчет остального:
>
>in и out относятся к направлению движения пакета.
>
>recv, xmit, via - это относится к интерфейсу. То есть интерфейс получил
>пакет, передал пакет, или via-через (неважно в какую сторону).
>
>Типа примеры:
>
>in recv rl0 - входящий пакет, полученный с интерфейса rl0
>out recv rl0 - исходящий пакет, полученный rl0 интерфейсом
>out xmit rl0 - исходящий пакет, отправленный rl0 интерфейсом
>
>in xmit rl0 - входящий пакет, отправленный rl0 интерфейсом. Если подумать, то
>такого быть не может :) То есть это типа бред.
>
>out recv ed0 xmit ed1 - пример из манула - исходящий пакет,
>полученный через ed0 и отправленный через ed1.
>
>Если будешь писать out via или in via, то автоматом будет подставляться
>out xmit или in recv.
>
>Надеюсь ничего не напутал :) Если что - люди поправят.


большое спасибо!!! вроде понял

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


           ipfw add check-state
           ipfw add deny tcp from any to any established
           ipfw add allow tcp from my-net to any setup keep-state

вот ето было в примере, непонятно какое изних динамическое, когда оно всплывет, то что второе все закривае для всех established ето понятно, третие тоже вроде ясно, разрешает моей сети доступ к любому на setup(но причем оно здесь мы же делаем ето для внешних атак)

извини если я что-то не так понял и если можешь обясни пожалуйста
спасибо


"Ipfw"
Отправлено Free , 17-Авг-03 19:24 
>>>Вроде все в нем понятно но есть два темних места
>>>ето динамические правила і эти приставки до интерфейсов in, recv, xmit ...
>>>
>>>вроде ничего сложного но вот немогу понять токе правило
>>>from any to 192.168.243.12 "in recv" rl0
>>>что значит "in recv"?
>>>recv - ето понятно принятые а вот "in recv"
>>>from 192.168.1.0/24 to any "out xmit" rl0
>>>тоже не понимаю что такое out xmit подскажите где можно прочитать толково
>>>ато я уже и английскии мен читал и руский и не
>>>понял
>>>и про динамические правила
>>>Спасибо
>>
>>Насчет динамических правил - не понятно, что спрашиваешь.
>>
>>Насчет остального:
>>
>>in и out относятся к направлению движения пакета.
>>
>>recv, xmit, via - это относится к интерфейсу. То есть интерфейс получил
>>пакет, передал пакет, или via-через (неважно в какую сторону).
>>
>>Типа примеры:
>>
>>in recv rl0 - входящий пакет, полученный с интерфейса rl0
>>out recv rl0 - исходящий пакет, полученный rl0 интерфейсом
>>out xmit rl0 - исходящий пакет, отправленный rl0 интерфейсом
>>
>>in xmit rl0 - входящий пакет, отправленный rl0 интерфейсом. Если подумать, то
>>такого быть не может :) То есть это типа бред.
>>
>>out recv ed0 xmit ed1 - пример из манула - исходящий пакет,
>>полученный через ed0 и отправленный через ed1.
>>
>>Если будешь писать out via или in via, то автоматом будет подставляться
>>out xmit или in recv.
>>
>>Надеюсь ничего не напутал :) Если что - люди поправят.
>
>
>большое спасибо!!! вроде понял
>
>а вот с динамическими правилами как оно работает
>
>
>           ipfw
>add check-state
>           ipfw
>add deny tcp from any to any established
>           ipfw
>add allow tcp from my-net to any setup keep-state
>
>вот ето было в примере, непонятно какое изних динамическое, когда оно всплывет,
>то что второе все закривае для всех established ето понятно, третие
>тоже вроде ясно, разрешает моей сети доступ к любому на setup(но
>причем оно здесь мы же делаем ето для внешних атак)
>
>извини если я что-то не так понял и если можешь обясни пожалуйста
>
>спасибо

Хм…  ну не знаю даже с чего начать.

Скажу так. Ты не путай динамические правила с другими вещами.

К динамике относятся:
keep-state
check-state

А вот параметры:
established
setup
отбирают пакеты, у которых определенным образом стоят флаги. К динамике отношения не имеют.


Теперь о том, зачем все это используется (наверняка твой вопрос связан с какой-то конкретной задачей). Обычно это используют, чтобы построить файрвол на шлюзе твоей локальной сети (то есть на машине, которая будет являться default gateway для твоей внутренней сети).

В чем сымсл? Смысл в том, что любой входящий пакет должен быть ответом на наш запрос. Если к нам приходит пакет, а мы его не заказывали :), то ну его нафиг в deny. Нефиг к нам ломиться. Вот, собственно в чем смысл. Защита, разумеется, не абсолютная, но действует по принципу: разрешить, что надо и запретить все остальное. Так надежнее. То есть последним правилом у тебя всегда должно идти deny all from any to any.

Итак можем это забацать двумя способами:

Динамика (пример из man ipfw):

ipfw add check-state
если, есть динамическое правило, которое было сгенерировано keep-state, то пакет проходит, если нет, то он долетает далее до deny tcp from any to any


ipfw add allow tcp from my-subnet to any setup keep-state
создаем динамические правила на наши исходящие TCP соединения, чтобы ответ мог вернуться и не попасть в deny


ipfw add deny tcp from any to any
сюда попадают все, для чего нет динамических правил. В общем случае вообще все, что мы ранее не разрешили.


*****
Второй вариант:

add allow tcp from any to any established
пропустить пакеты с выставленными флагами, что это уже установленное воединение


add allow tcp from my-subnet to any setup
пропустить пакеты с высталенными флагами, что это происходит установка соединения


ipfw add deny tcp from any to any
Все остально – на фиг


Получается, что мы пропускаем setup только из нашей сетки. Если к нам кто-то будет долбиться, то на него правила с setup нету и он попадает в deny.


Вообщем вот такие примерчики… В реале, конечно, все сложнее. Многие вещи надо снаружи разрешать setup (например 53, 80, 22 порты...). Поищи готовые конфиги на файрвол и попробуй теперь их сам разобрать…


"Ipfw"
Отправлено A Clockwork Orange , 22-Авг-03 20:12 
in и out относятся к направлению движения пакета.
recv, xmit, via относятся к интерфейсу. Т.е. интерфейс получил пакет, передал пакет, или via-через (неважно в какую сторону).

Типа примеры:

in recv rl0 - входящий пакет, полученный с интерфейса rl0

НЕ ЯСНО !
входящий пакет (тут просто),
полученный интерфейсом rl0? или полученный С интерфейса r0 (не ясно)

out recv rl0 - исходящий пакет, полученный rl0 интерфейсом
out xmit rl0 - исходящий пакет, отправленный rl0 интерфейсом


"Ipfw"
Отправлено SergeyKa , 23-Авг-03 11:42 
небольшая добавочка.
in, out - подразумевается относительно операционной системы на которой установлен ipfw.

Вот пример работы правил на внешнем интерфейсе:
Работаем через nat (ipnat)

out xmit rl0
(ipfw add 90 pass log tcp from any to any out xmit rl0)
Смотрим лог
Aug 23 11:30:50 myd.ru /kernel: ipfw: 90 Accept TCP 195.195.95.15:4244 81.222.132.139:80 out via rl0

ipfw del 90

out recv rl0
(ipfw add 90 pass log tcp from any to any out recv rl0)
Смотрим лог
Aug 23 11:33:30 myd.ru /kernel: ipfw: 90 Accept TCP 81.222.132.139:80 192.168.10.98:3182 out via rl1

ipfw del 90

in  recv rl0
(ipfw add 90 pass log tcp from any to any out recv rl0)
Смотрим лог
Aug 23 11:36:05 myd.ru /kernel: ipfw: 90 Accept TCP 216.136.204.117:80 192.168.10.98:3182 in via rl0

ipfw del 90


Хочу заметить, что в случае использования natd результат может быть другой.


"Ipfw"
Отправлено SergeyKa , 23-Авг-03 12:38 
Прошу прощения, что сразу не сделал ударение на втором пункте

Правило out recv rl0 пропускает пакеты (ответ на наш запрос) с внешнего сервера во внутреннюю сеть после возврата исходных заговолков, перепеисанных НАТом при отправке
Это правило самое интересное и по этому чаще встречается в реальных правилах файрволов.
Мы пропускаем исходящие пакеты (относительно нашего шлюза) - тоесть пакет для нашей локальной сети, полученный rl0 интерфейсом, а значит правило касается всех интерфейсов работающих на выход (относительно нашего шлюза).
Тогда сколько бы нибыло локальных сетей подключено к нашему шлюзу все пакеты адресованные им были бы пропущены с помощью этого правила - rl1, rl2, rl3 ...
Именно исходя из этого чаще всего встречаются правила типа out recv rl0 xmit rl1 - с указание конкретного интерфейса для выхода из системы


"Ipfw"
Отправлено A Clockwork Orange , 25-Авг-03 09:01 
Вот замутил Сергейка.

Дайте точный перевод man ipfw касательно in|out recv|xmit|via.

Возможно это прольет больльше света