# PF configuration for Central de Vendas Informatica LTDA. # admin@centralinf.com.br # macros. ext_if = "xl0" int_if = "re0" int_odin= "192.168.1.134" ext_odin= "201.12.35.52" priv_nets = "{ 127.0.0.0/8, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 }" priv_users = "{ 192.168.1.120, 192.168.1.121, 192.168.1.122, 192.168.1.123 }" # options. set block-policy return set loginterface $ext_if set skip on lo # scrub. scrub in all fragment reassemble # nat. nat on $ext_if from $int_if:network to any -> $ext_if:0 nat-anchor "ftp-proxy/*" # ftp-proxy. rdr-anchor "ftp-proxy/*" rdr pass on $int_if proto tcp to port ftp -> 127.0.0.1 port 8021 # transparent proxy. rdr on $int_if proto tcp from any to any port 80 -> 127.0.0.1 port 3128 # tomcat and ftp redirect to odin. rdr on $ext_if proto tcp from any to $ext_odin -> $int_odin # filter rules. # block everything. block all # allow all traffic on $int_if. pass quick on $int_if # antispoof and ftp-proxy anchor. antispoof quick for { lo, $int_if } anchor "ftp-proxy/*" # block privileged nets. block drop in quick on $ext_if from $priv_nets to any block drop out quick on $ext_if from any to $priv_nets # block msn. block drop quick inet proto tcp from any to any port 1863 # allow msn to priv_users ;). pass out on $ext_if inet proto tcp from $priv_users to any \ port 1863 modulate state flags S/SA # allow ping. pass in quick inet proto icmp all icmp-type echoreq keep state # allow vpn (1723) and tun interfaces. pass in quick on $ext_if inet proto tcp from any to ($ext_if) \ port 1723 modulate state flags S/SA pass in quick on $ext_if inet proto gre from any to ($ext_if) \ keep state pass in quick on tun all pass out quick on tun all # allow ssh from internal network. pass in quick on $int_if inet proto tcp from any to \ any port ssh flags S/SA keep state # pass out all tcp, udp and icmp. pass out quick on $ext_if inet proto tcp all modulate state flags S/SA pass out quick on $ext_if inet proto { udp, icmp } all keep state