>> При запросе на соединение из локальной сети пакет сначала появится на локальном
>> интерфейсе сервера как входящий, а только потом уйдёт с внешнего интерфейса
>> сервера. Т.е. как минимум для интернета изнутри вам надо разрешить входящий
>> траф на внутренних интерфейсах и исходящий на внешних. Обратный траф будет
>> попадать под состояения, созданные keep state.
> Если я правильно понял мне надо перед правилом которое я создал для
> сети
> добавить правило которое пропускает весь трафик внутреннего интерфейса на внешний ?
> А первой строкой прописать правила block in и out ?В pf выполняется последнее совпавшее правило. Поэтому разрешить внутренний траф вам надо где-нибудь после block all. И трафик из внутренней подсети будет идти не на внешний интерфейс, а куда угодно в интернет. Т.е. вам после блокирующего правила надо добавить правило, разрешающее на внутреннем интерфейсе весь входящий траф из внутренней подсети куда угодно (или куда угодно кроме самого сервера, если вам не надо изнутри попадать на сервер).
pass in on $lan_if_1 inet from ($lan_if_1) to any keep state
Если вам надо чтобы сам сервер ходил во внутреннюю подсеть, то также надо разрешить исходящий трафик на внутреннем интерфейсе от сервера во внутреннюю подсеть
хороший ман. почитайте:
https://www.opennet.ru/base/net/pf_faq.txt.html