Начал разбираться в PF по мануалу на сайте openBsd.org. Насколько я понял, в случае если пакет должен натится, то PF сначала преобразует адресс, а потом уже передает его фильтру. А как же тогда фильтровать пакеты прищедшие из локалки на основе политик разграничения по ip, ведь, насколько я понял, фильтр увидит пакет с уже измененным айпишником, т.е. айпишником шлюза......а как мне тогда сначала решить можно ли этот пакет вообще пропускать,а потом уже натить? Или же пакет сначала проходит правила фильтра входящих пакетов, потом натится, а потом уже передается на фильтр исходящих пакетов?
> Начал разбираться в PF по мануалу на сайте openBsd.org. Насколько я понял,
> в случае если пакет должен натится, то PF сначала преобразует адресс,
> а потом уже передает его фильтру. А как же тогда фильтровать
> пакеты прищедшие из локалки на основе политик разграничения по ip, ведь,
> насколько я понял, фильтр увидит пакет с уже измененным айпишником, т.е.
> айпишником шлюза......а как мне тогда сначала решить можно ли этот пакет
> вообще пропускать,а потом уже натить? Или же пакет сначала проходит правила
> фильтра входящих пакетов, потом натится, а потом уже передается на фильтр
> исходящих пакетов?на внутреннем (входящем) интерфейсе будут оригинальные ip
> на внутреннем (входящем) интерфейсе будут оригинальные ipт.е получается такая схема пакет ---> внутренний интерфейс (проверяются правила фильтрации для этого интерфейса) ---> NAT ---> внешний интерфейс (проверяются правила фильтрации для этого интерфейса)
правильно я понимаю?
>> на внутреннем (входящем) интерфейсе будут оригинальные ip
> т.е получается такая схема пакет ---> внутренний интерфейс (проверяются правила фильтрации
> для этого интерфейса) ---> NAT ---> внешний интерфейс (проверяются правила фильтрации
> для этого интерфейса)
> правильно я понимаю?да.
внутренний интерфейс фильтр > внешний интерфейс nat > внешний интерфейс фильтр
> да.
> внутренний интерфейс фильтр > внешний интерфейс nat > внешний интерфейс фильтрБольшое спасибо!
> внутренний интерфейс фильтр > внешний интерфейс nat > внешний интерфейс фильтрПоганая ситуация, кстати. Я не пойму, это баг или фича, но это противоречит ВСЕМ мануалам. Абсолютно везде написано, что правила трансляции срабатывают до правил фильтрации. Мало того, есть специальная указивка для правил трансляции (необязательная) - pass - в этом случае пакет в блок фильтрации вообще не должен попадать! Но и это не работает. Вернее, работает только в отношении фильтрации на исходящем плече.