Есть сет интерфейс 12.12.12.0/30
Есть инеьфейс с выходом в inet
Нужно 12.12.12.0/30 разрешить только 3128 и ping
Как это правильно сделать??
pass on $inet proto tcp from 12.12.12.0/30 to port 3128 -> ($inet)
pass on $inet proto tcp from 12.12.12.0/30 to icmp ??
block all
Маны нашел, изучаю ..подскажите, туда ли смотрю?
Правило в pf
ext_if="внеш интерфэйс"
int_if="внутр интерфэйс"
inet="12.12.12.0/30"
icmp_types="echoreq"
set optimization normal
set fingerprints "/etc/pf.os"
set block-policy drop
set skip on lo0
scrub in all fragment reassemble
nat on $ext_if from $inet to any -> ($ext_if)
block all
pass out keep state
pass inet proto icmp all icmp-type $icmp_types
pass in on $int_if proto tcp from any to any port { 53 3128 } flags S/SA
pass in on $int_if proto udp from any to any port 53
pass in on $ext_if inet proto tcp from any to any port > 49152 keep state
а вообще - http://house.hcn-strela.ru/BSDCert/BSDA-course/apc.html
Пока пришел к такому, в работу еще не запускал ..вроде ок?
pass quick in on $12.12.12.0/30 proto tcp from $12.12.12.0/30 to 12.12.12.2 port=3128 keep state
pass quick in on $12.12.12.0/30 proto icmp from any to any
block quick in on $12.12.12.0/30 from any to any
Вернее так
pass in quick on $12.12.12.1 proto tcp from $12.12.12.0/30 to 12.12.12.2 port=3128 keep state
pass in quick on $12.12.12.1 proto icmp from any to any
block in quick on $12.12.12.1 from any to any
1 и 3 строка синтаксис эрорр! в чем может быть эрор?
я тебе написал примерный pf для тебя ( открыты только ТСР3128, ТСР 53 иUDP 53, для чего 53 порты надеюсь объяснять не надо? , если у тебя не прозрачный squid то надо открыть ещё 3130 ) , смотри синтаксис моих правил , твои не рабочие , используй макросы
ссылку по pf я тебе дал
за ссылку спасибо,
Вот, полностью рабочая конфигурация
Работает как хотел
pass quick on $int_if proto tcp from $inet to 12.12.12.1 port=3128 keep state
pass quick on $int_if proto icmp from any to 12.12.12.1 keep state
block in quick on $int_if all