ext_if="nfe0"
int_if="dc0"
#tcp_services="{ 22, 113 }"
icmp_types="echoreq"
ssh_allowed="{ 172.16.1.2, 172.16.1.3, 172.16.1.248, 172.16.1.111 }"
#comp3="192.168.0.3"
# options
set block-policy return
set loginterface $ext_if
set skip on lo
# scrub
scrub in
# nat/rdr
nat on $ext_if from !($ext_if) -> ($ext_if:0)
nat-anchor "ftp-proxy/*"
rdr-anchor "ftp-proxy/*"
rdr pass on $int_if proto tcp to port ftp -> 127.0.0.1 port 8021
#rdr on $ext_if proto tcp from any to any port 80 -> $comp3
# filter rules
block in
pass out keep state
anchor "ftp-proxy/*"
antispoof quick for { lo $int_if }
pass in on $ext_if inet proto tcp from any to ($ext_if) \
port 113 flags S/SA keep state
#block return in quick on { $ext_if, $int_if } inet proto tcp from ! $ssh_allowed to any port ssh
block in on { $int_if $ext_if } proto tcp from any to any port ssh
pass in quick on { $ext_if, $int_if } $ssh_allowed from any to any port ssh flags S/SA
pass in inet proto icmp all icmp-type $icmp_types keep state
pass quick on $int_if