Читал man ipfw и различные доки, и теперь в голове имею кашу... Немогу уяснить простой вроде бы вещи, а именно:есть сервер с 2-мя или более интерфейсами, в разных сетях (как то интернет, ЛВС1, ЛВС2 и тп)... Чтобы не пущщать никого снаружи, мы ставим файрволл. Чтобы не пущать изнутри наружу, кроме как WEB-mail-ICQ или еще чего, мы тоже юзаем файрволл. Чтобы наши N-машин в ЛВС с fake-адресами ходили наружу, мы юзаем трансляцию адресов (natd, ipnat - неважно).
Так вот, собственно, что происходит с пакетами, когда они приходят на интерфейсы:
1. если снаружи - проверка в файрволе, если левый пакет - дропаем и пишем в лог. Все ясно.
2. если изнутри наружу, то либо дропаем (нечего лазить где-попало), либо, если это HTTP/HTTPS - то заворачиваем в прокси и наружу. Соот-но, запоминаем обратный путь пакета (stateful firewall?)
3. если пакет из ЛВС1 в ЛВС2 - то тут нужно иметь, во-первых, соот-ющее правило в firewall, и во-вторых, маршрутизировать, ретранслировать или nat-ить этот пакет ??? Вот тут не совсем ясно.
4. и если нужно завернуть снаружи траффик на внутренний web-сервер, то тут опять таки нужно соответствующее правило firewall и еще какой-то механизм nat? или просто forward?
исамое главное, что отрабатывает первым - файрволл с неизмененным еще ip-адресом или правило nat, изменяющее ip-адрес? И если nat поменял ip-адрес, то пакет этот отправляется на тот интерфейс, который соответствует адресу назначения, или проверяется firewall снова???
Буду благодарен за любый ответы, можно "на пальцах", или за ссылки... Хендбук, man и opennet читаю.
В FreeBSD пакет проходит через firewall два раза (по одному на каждом интерфейсе).
Ретрансляция адресов происходит в том порядке в котором написаны правила firewall.
Обычно divert ставят в самом начале. Поэтому пакеты с локальной сети и пакеты из и-нета проходят через firewall немного по разному:для внешнего пакета:
internet -> nat -> firewall -> firewall -> intranetдля внутреннего:
intranet -> firewall -> nat -> firewall -> internetЗавёртывание трафика можно сделать с помощью nat, при этом правила firewall никто не отменял :)
>В FreeBSD пакет проходит через firewall два раза (по одному на каждом
>интерфейсе).
>Ретрансляция адресов происходит в том порядке в котором написаны правила firewall.
>Обычно divert ставят в самом начале. Поэтому пакеты с локальной сети и
>пакеты из и-нета проходят через firewall немного по разному:
>
>для внешнего пакета:
>internet -> nat -> firewall -> firewall -> intranetзачем firewall -> firewall то ??? никаких изменений нет... На разных интерфейсах смотреть надо?
>
>для внутреннего:
>intranet -> firewall -> nat -> firewall -> internet
>
>Завёртывание трафика можно сделать с помощью nat, при этом правила firewall никто
>не отменял :)
>>В FreeBSD пакет проходит через firewall два раза (по одному на каждом
>>интерфейсе).
>>Ретрансляция адресов происходит в том порядке в котором написаны правила firewall.
>>Обычно divert ставят в самом начале. Поэтому пакеты с локальной сети и
>>пакеты из и-нета проходят через firewall немного по разному:
>>
>>для внешнего пакета:
>>internet -> nat -> firewall -> firewall -> intranet
>
>зачем firewall -> firewall то ??? никаких изменений нет... На разных интерфейсах смотреть надо?Для каждого интерфейса можно задать свои правила.
используй лучше ipf полегче и не только на FreeBSD используется
Ознакомился с приведенными выше статьями, спасибо...
и недавно наткнулся на интересную ветку на форуме sql.ru (http://sql.ru/forum/actualthread.aspx?tid=260895)Возник вопрос - если используются диманические правила, зачем использовать одновременно
check-state
и
allow tcp from any to any establishedТо есть, имеется правило
allow tcp from me to any dst-port 80 via ${ExtInt} setup keep-stateзначит, первый TCP пакет, инициирующий соединение, соласно флагу setup keep-state, создает динамическое правило, по которому все пакеты этого соединения также разрешаются (правилом check-state)... Зачем тогда использовать правило
allow tcp from any to any established
????Для обратных пакетов???
>Читал man ipfw и различные доки, и теперь в голове имею кашу...Давеча вот наткнулся:
http://www.bsdforums.org/forums/showthread.php?t=43858все "по полочкам". Надеюсь, не навредит.