All pastes #783494 Raw Edit

Untitled

public text v1 · immutable
·published 2007-11-19 06:42 UTC
rendered paste body
#################################################################
# macro definitions

ext_if  = "dc0"
ext_if2 = "dc1"

ext_gw  = "proper.gateway"
ext_gw2 = "same.gateway-also.correct"

int_if  = "re0"
dmz1_if = "re0"

tcp_services    =       "{ 22, 113 }"
icmp_types      =       "echoreq"

web_server      =       "10.8.8.8"

#################################################################
# options: "set"

set block-policy return
set loginterface $ext_if
set skip on lo

#################################################################
# scrub rules: "scrub"
scrub in

#################################################################
# NAT rules: "rdr", "nat", "binat"


nat on $ext_if from 10.8.8.0/24 to any -> ($ext_if)
nat on $ext_if2 from 10.8.8.0/24 to any -> ($ext_if2)

nat-anchor "ftp-proxy/*"


# Catch stuff and send it to ftp-proxy
rdr-anchor "ftp-proxy/*"
rdr on $int_if proto tcp from any to any port { 21, 2121, 2100, 8888, 1999}  -> 127.0.0.1 port 8021


# Redirect web traffic to web_server
rdr on $ext_if proto tcp from any to any port 80 -> $web_server



#################################################################
# filtering rules: "antispoof", "block", "pass"


block in

anchor "ftp-proxy/*"

# Spoofed Address Protection
antispoof quick for { lo $int_if }

pass out on $int_if from any to 10.8.8.0/24

pass in on $ext_if inet proto tcp from any to ($ext_if) port $tcp_services flags S/SA keep state

pass in quick on $int_if from 10.8.8.0/24 to $int_if


# Pass Traffic to web_server
pass in on $ext_if inet proto tcp from any to $web_server port 80 flags S/SA synproxy state


pass in inet proto icmp all icmp-type $icmp_types keep state


# Quickly pass all internal traffic (assumed good)
#pass in quick on $int_if

pass in on $int_if route-to { ($ext_if $ext_gw), ($ext_if2 $ext_gw2) } round-robin proto tcp from 10.8.8.0/24 to any flags S/SA modulate state

pass in on $int_if route-to { ($ext_if $ext_gw), ($ext_if2 $ext_gw2) } round-robin proto { udp, icmp } from 10.8.8.0/24 to any keep state


#  general "pass out" rules for external interfaces
pass out on $ext_if proto tcp from any to any flags S/SA modulate state
pass out on $ext_if proto { udp, icmp } from any to any keep state
pass out on $ext_if2 proto tcp from any to any flags S/SA modulate state
pass out on $ext_if2 proto { udp, icmp } from any to any keep state


pass out on $ext_if route-to ($ext_if2 $ext_gw2) from $ext_if2 to any
pass out on $ext_if2 route-to ($ext_if $ext_gw) from $ext_if to any