All pastes #276658 Raw Edit

Something

public text v1 · immutable
·published 2006-12-12 16:10 UTC
rendered paste body
# PF configuration for Central de Vendas Informatica LTDA.
# admin@centralinf.com.br

### macros ###
ext_if = "xl0"
int_if = "re0"

int_odin = "192.168.1.134"
ext_odin = "201.12.35.52"

int_saint = "192.168.1.53"
ext_saint = "201.12.35.54"
range_saint = "200.230.207.0/24"

priv_nets = "{ 127.0.0.0/8, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 }"
priv_users = "{ 192.168.1.120, 192.168.1.121, 192.168.1.122, 192.168.1.123 }"

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

### scrub ###
scrub all no-df fragment reassemble random-id

### nat ###

# nat for all network.
nat on $ext_if from $int_if:network to any -> $ext_if:0
nat-anchor "ftp-proxy/*"

# binat for odin.
binat on $ext_if from $int_odin to any -> $ext_odin

# binat for saint.
binat on $ext_if from $int_saint to $range_saint -> $ext_saint

### redirects ###

# ftp-proxy.
rdr-anchor "ftp-proxy/*"
rdr pass on $int_if proto tcp to port ftp -> 127.0.0.1 port 8021

# transparent proxy.
rdr on $int_if proto tcp from any to any port { 80, 443 } -> 127.0.0.1 port 3128

### filter rules ###

# block everything.
block all

# allow all traffic on $int_if.
pass quick on $int_if

# antispoof and ftp-proxy anchor.
antispoof quick for { lo, $int_if }
anchor "ftp-proxy/*"

# block privileged nets.
block drop in  quick on $ext_if from $priv_nets to any
block drop out quick on $ext_if from any to $priv_nets

# block msn.
block drop quick inet proto tcp from any to any port 1863

# allow msn to priv_users ;).
pass out on $ext_if inet proto tcp from $priv_users to any \
        port 1863 modulate state flags S/SA

# allow ping.
pass in quick inet proto icmp all icmp-type echoreq keep state

# allow vpn (1723) and tun interfaces.
pass in quick on $ext_if inet proto tcp from any to ($ext_if) \
        port 1723 modulate state flags S/SA
pass in quick on $ext_if inet proto gre from any to ($ext_if) \
        keep state
pass quick on tun

# allow ssh from internal network.
pass in quick on $int_if inet proto tcp from any to \
        any port ssh flags S/SA keep state

# allow all tcp, udp and icmp pass out.
pass out quick on $ext_if inet proto tcp all modulate state flags S/SA
pass out quick on $ext_if inet proto { udp, icmp } all keep state