# DEFAULT OPTIONS
#################
set block-policy drop
set loginterface $ext_if
set skip on lo0
#################
# NAT
#################
match in all scrub (no-df max-mss 1440)
match out on $ext_if inet from $localnet nat-to ($ext_if)
match out on $ext_if inet from $voipnet nat-to ($ext_if) static-port
#################
# ANTISPOOOF
#################
antispoof for $ext_if
antispoof for $int_if
block in quick on $ext_if from <martians> to any
block return out quick on $ext_if from any to <martians>
#################
# DEFAULT BLOCK
#################
block log all
pass from self
##################
# ALLOWED NETWORK SERVICES LAN
##################
tcp_services = "{ ftp-data, ftp, ssh, smtp, smtps, domain, pop3, auth, http, https, pop3s, imap, imaps, 6667 }"
udp_services = "{ domain, ntp }"
pass proto tcp from $localnet to port $tcp_services
pass quick proto { tcp, udp } from $localnet to port $udp_services
# FTP Proxy
anchor "ftp-proxy/*"
pass in quick inet proto tcp from $localnet to port ftp divert-to 127.0.0.1 port 8021
##################
# ICMP
##################
icmp_types = "{ echoreq, unreach }"
pass log inet proto icmp icmp-type $icmp_types
##################
# LOCALHOST SERVER
##################
local_tcp_server = "{ ssh }"
local_udp_server = "{ domain, ntp }"
pass in on $int_if proto tcp from $localnet to port $local_tcp_server
pass in on $int_if proto udp from $localnet to port $local_udp_server