# macros ext_if="rl0" int_if="dc0" tcp_services="{ 22 , 1723 }" icmp_types="echoreq" dak_pc="192.168.1.137" dak_ports="{5555 , 6112,1723}" server="192.168.1.100" # options set block-policy return set loginterface $ext_if set skip on lo # scrub scrub in #altq altq on $ext_if priq bandwidth 500Kb queue {ssh_all, rest_all} queue rest_all priq(default) queue ssh_all priority 4 priq(red) # nat/rdr nat on $ext_if from !($ext_if) -> ($ext_if:0) rdr on $ext_if proto tcp from any to any port $dak_ports -> $dak_pc rdr on $ext_if proto udp from any to any port $dak_ports -> $dak_pc nat-anchor "ftp-proxy/*" rdr-anchor "ftp-proxy/*" #rdr on $ext_if proto tcp from any to any port 47624 -> $dak_pc rdr on $int_if proto tcp from any to any port 21 -> 127.0.0.1 port 8021 # 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 $tcp_services flags S/SA keep state queue ssh_all pass in on $ext_if inet proto tcp from any to $dak_pc port $dak_ports flags S/SA synproxy state queue rest_all pass in on $ext_if inet proto udp from any to $dak_pc port $dak_ports pass in inet proto icmp all pass quick on $int_if