# MACROS
# INTERFACES
ext_if = "hme0"
int_if = "hme1"
dmz_if = "xl0"
# LAN
lan_net = "10.0.0.0/8"
cary_n1 = "10.10.11.1"
# INTERNET TRAFFIC
tcp_services = "{ www, https, ftp-data, ftp, ssh, domain, pop3, pop3s, \
smtp, auth, nntp, cvspserver, 446, 1863, 2628, 8000, \
8080 }"
udp_services = "{ domain, ntp }"
udp_voip = "{ 5060:5061, 16384, 16482 }"
torrents = "{ 15566:15766 }"
icmp_types = "echoreq"
# OPTIONS
#set block-policy drop
set loginterface $ext_if
set skip on lo
scrub in all no-df
scrub in all random-id
# NAT
nat on $ext_if from !($ext_if) to any -> ($ext_if)
nat-anchor "ftp-proxy/*"
rdr-anchor "ftp-proxy/*"
# TRAFFIC REDIRECTION
rdr pass on $int_if proto tcp to port ftp -> 127.0.0.1 port 8021
rdr on $ext_if proto udp from any to $ext_if port $udp_voip -> 10.10.4.1
rdr on $ext_if proto tcp from any to $ext_if port 80 -> $cary_n1
rdr on $ext_if proto tcp from any to $ext_if port 25 -> $cary_n1
rdr on $ext_if proto tcp from any to $ext_if port { 15566:15766 } -> 10.0.100.9
# FILTER RULES
# DEFAULT DENY RULES
#block in log all
#block out log all
# PASS TRAFFIC TO AND FROM FIREWALL
pass in on $int_if from 10.0.0.0/8 to $int_if keep state
pass in on $int_if from 10.0.0.0/8 to ! $int_if keep state
# DEFAULT TRAFFIC OUT
pass out on $ext_if proto { tcp, udp, icmp } from ($ext_if) to any \
keep state
# ALLOW SPECIFIED PORT TRAFFIC IN
pass in on $ext_if inet proto tcp from any to ($ext_if) \
port $tcp_services flags S/SA keep state
# ALLOW SPECIFIED REDIRECTS
pass in on $ext_if inet proto tcp from any to $cary_n1 port 80 \
flags S/SA synproxy state
pass in quick log (all) on $ext_if inet proto tcp from any to 10.0.100.9 \
port { 15566:15766 } flags S/SA keep state
pass in on $ext_if proto udp from any to 10.10.4.1 port $udp_voip
pass out on $ext_if proto udp from $ext_if port $udp_voip to ! $lan_net \
keep state queue(voip_out)
# ALLOW PING
pass in inet proto icmp all icmp-type $icmp_types keep state
anchor "ftp-proxy/*"
#antispoof for { $int_if }