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

Исходное сообщение
"Матчасть по firewall + NAT"

Отправлено Orlic , 04-Сен-06 16:35 
Читал 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 читаю.


Содержание

Сообщения в этом обсуждении
"Матчасть по firewall + NAT"
Отправлено Serjant , 04-Сен-06 18:05 
В FreeBSD пакет проходит через firewall два раза (по одному на каждом интерфейсе).
Ретрансляция адресов происходит в том порядке в котором написаны правила firewall.
Обычно divert ставят в самом начале. Поэтому пакеты с локальной сети и пакеты из и-нета проходят через firewall немного по разному:

для внешнего пакета:
internet -> nat -> firewall -> firewall -> intranet

для внутреннего:
intranet -> firewall -> nat -> firewall -> internet

Завёртывание трафика можно сделать с помощью nat, при этом правила firewall никто не отменял :)


"Матчасть по firewall + NAT"
Отправлено Orlic , 04-Сен-06 18:10 
>В FreeBSD пакет проходит через firewall два раза (по одному на каждом
>интерфейсе).
>Ретрансляция адресов происходит в том порядке в котором написаны правила firewall.
>Обычно divert ставят в самом начале. Поэтому пакеты с локальной сети и
>пакеты из и-нета проходят через firewall немного по разному:
>
>для внешнего пакета:
>internet -> nat -> firewall -> firewall -> intranet

зачем firewall -> firewall то ??? никаких изменений нет... На разных интерфейсах смотреть надо?
>
>для внутреннего:
>intranet -> firewall -> nat -> firewall -> internet
>
>Завёртывание трафика можно сделать с помощью nat, при этом правила firewall никто
>не отменял :)



"Матчасть по firewall + NAT"
Отправлено Serjant , 04-Сен-06 18:18 
>>В FreeBSD пакет проходит через firewall два раза (по одному на каждом
>>интерфейсе).
>>Ретрансляция адресов происходит в том порядке в котором написаны правила firewall.
>>Обычно divert ставят в самом начале. Поэтому пакеты с локальной сети и
>>пакеты из и-нета проходят через firewall немного по разному:
>>
>>для внешнего пакета:
>>internet -> nat -> firewall -> firewall -> intranet
>
>зачем firewall -> firewall то ??? никаких изменений нет... На разных интерфейсах смотреть надо?

Для каждого интерфейса можно задать свои правила.


"Матчасть по firewall + NAT"
Отправлено liver , 04-Сен-06 19:09 
используй лучше ipf полегче и не только на FreeBSD используется

"Матчасть по firewall + NAT"
Отправлено Orlic , 06-Сен-06 15:58 
Ознакомился с приведенными выше статьями, спасибо...
и недавно наткнулся на интересную ветку на форуме 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
????

Для обратных пакетов???



"Матчасть по firewall + NAT"
Отправлено axbat , 05-Сен-06 08:52 
>Читал man ipfw и различные доки, и теперь в голове имею кашу...

Давеча вот наткнулся:
http://www.bsdforums.org/forums/showthread.php?t=43858

все "по полочкам". Надеюсь, не навредит.