PF. Логика работы

FreeBSD, NetBSD, OpenBSD, DragonFly и т. д.

Модератор: arachnid

Аватара пользователя
gabell
Сообщения: 125
ОС: FreeBSD, Archlinux

PF. Логика работы

Сообщение gabell »

Всем, привет!
Есть пару вопросиков про PF.

Упрощенная схема сети выглядит так:
net1 <--> gw1 <--> net2 <--> gw2 <--> net3

gw1 - шлюз на FreeBSD с интерфесами if1 и if2 смотрящими соответственно в сети net1 и net2.

Кусок pf.conf:

Код: Выделить всё

# Outbound on $if1
# Inbound on $if1
pass in quick on $if1 from $net1 to $net3 keep state
# Outbound on $if2
#pass out on $if2 from $net1 to $net3
# Inbound on $if2
block in log on $if2 all
pass in quick on $if2 from $net3 to $net1 keep state

Никаких блокирующих правил, кроме представленных нету. Чтобы из сети net1 мне попасть в сеть net3, мне нужно раскомментировать строчку #pass out on $if2 from $net1 to $net3.
Если я уберу все правила, то также смогу попасть в сеть net3. Т.е. default policy - pass all. Я всегда полагал, что block in log on $if2 all значит "заблокировать все входящие пакеты на интерфейсе if2". Как оно влияет на исходящий трафик? Более того, в логах я вижу заблокированные пакеты из сети 3 в 1. Как это можно объяснить?
Заранее спасибо за помощь.
Спасибо сказали:
Аватара пользователя
Shura
Сообщения: 1537
Статус: Оказывается и без KDE есть жизнь
ОС: FreeBSD 8.0-RC2

Re: PF. Логика работы

Сообщение Shura »

Я всегда полагал, что block in log on $if2 all значит "заблокировать все входящие пакеты на интерфейсе if2". Как оно влияет на исходящий трафик?

Никак
Более того, в логах я вижу заблокированные пакеты из сети 3 в 1

Всё правильно, они же идут через if2
Rock'n'roll мертв © БГ
Спасибо сказали:
Аватара пользователя
gabell
Сообщения: 125
ОС: FreeBSD, Archlinux

Re: PF. Логика работы

Сообщение gabell »

Я всегда полагал, что block in log on $if2 all значит "заблокировать все входящие пакеты на интерфейсе if2". Как оно влияет на исходящий трафик?

Никак


Но на практике как-то влияет. Кстати, похоже, что только с этой машинкой проблемы. И там pf в ядре, а не модулем. Может быть с эти связано?

Более того, в логах я вижу заблокированные пакеты из сети 3 в 1

Всё правильно, они же идут через if2

Т.е. вы хотите сказать, "log" применяется к интерфейсу, а не к правилу?
Спасибо сказали:
Аватара пользователя
Shura
Сообщения: 1537
Статус: Оказывается и без KDE есть жизнь
ОС: FreeBSD 8.0-RC2

Re: PF. Логика работы

Сообщение Shura »

Т.е. вы хотите сказать, "log" применяется к интерфейсу, а не к правилу?

К правилу, только у тебя правило привязано к интерфейсу.
block in log on $if2 all
Rock'n'roll мертв © БГ
Спасибо сказали:
Аватара пользователя
gabell
Сообщения: 125
ОС: FreeBSD, Archlinux

Re: PF. Логика работы

Сообщение gabell »

Разобрался в чем проблема. Действительно правило block in никак не влияет на исходящие пакеты. Просто, по-умолчанию, правила фильтрации дополняются опциями "flags S/SA keep state". Соответственно в моей конфигурации pf дропает обратные пакеты так как это не SYN пакеты. Будте внимательны и осторожны с keep state.
Спасибо сказали: