Здравствуйте.
У меня возникла проблема с настройкой pf не могу понять в чем причина.
Если есть кто разбирается в теме - буду очень благодарен.
Итак есть внешний интерфейс ed0 - подсоединен к ADSL (рутеру)
Внутренний интерфейс dc0
Поднят mpd, где ng0 - внешний интерфейс, через PPPoE в интернет.
Внутренние интерфейсы ng1 по ng5 - входящие VPN каналы.
По мере подключения (VPN)IP пользователей добавляются в таблицу.
Содержимое /etc/pf.conf
ext_if = "ed0"
int_str_if = "ng0"
table <users_str_if> persist
int_if = "dc0"
priv_nets = "{ 127.0.0.0/8 192.168.0.0/16 172.16.0.0/12 10.0.0.0/8 }"
scrub in all
nat on $int_str_if from { <users_str_if> lo0 } to any -> ($int_str_if)
#-------------------------------------------------------
# blochim vse
block all
# razreshaem loopback
pass quick on lo0 all
# antispoof
block drop in quick on $int_str_if from $priv_nets to any
block drop out quick on $int_str_if from any to $priv_nets
# allow icmp
pass in inet proto icmp all keep state
pass out inet proto icmp all keep state
#allow local net
pass in on $int_if from $int_if:network to any keep state
pass out on $int_if from any to $int_if:network keep state
# allow external
pass out on $int_str_if inet from { <users_str_if> lo0 } to any modulate state flags S/SA
pass out on $int_chret_if inet proto { udp icmp } from { <users_chret_if> lo0 } to any keep state
pass on $ext_if all
#-------------------------------------------
Возможно какие-то излишества (например lo0) возможно еще что-то не так, подскажите ПЛЗ.
Таблица <users_chret_if> содержит IP подключенных в данный момент людей.
Задача - натить входящие VPN соединения на внешний интерфейс.
ICMP - бегает нормально, а вот зателнетиться хотя бы на 80 порт яндекса - не выходит.
Работает лишь если добавить
pass in all
pass out all
но вы сами видите что это не вариант...
Первый раз pf настраиваю, возможно чего-то недопонял...направьте на путь истиный.