Hi,

I'm stuck on some obvious pf table error but I can't see it. 

I got a small test subnet 192.168.0.0 under my own subnet 10.1.0.0, where I 
test this firewall.

Internet--[firewall]--10.1.0.0--[this test firewall]--192.168.0.0

Queues are not active yet, nor are web or ftp servers. 
I added a test machine IP (192.138.0.2) to the managers table file, and 
google.com to http-managers as allowed web sites for testing purposes.

I can ping them by both IP and domain name, but not browse. ipflog0 shows that 
rule #6 catches the packets. (block drop out log on bge0 all)

Testing using a table or not, seem to narrow it down to the use of tables. 
Without the table ref it works. 

I've tried adding a blank line to the bottom but nothing seems to make a 
difference as far as the content.

I tried replacing <managers> and <http-managers> lines with:
table <managers> { 192.168.0.2 }
table <http-managers> { google.com }

But it still fails (caught on: block drop out log on bge0 all). I'd appreciate 
a hand with this one.

- - - - - - - - - 
## Macros
# Interfaces
WAN="bge0"
LAN="xl0"
LANip="192.168.0.0/24"
#RFC1918="{ 127.0.0.0/8 192.168.0.0/16 172.16.0.0/12 10.0.0.0/8  }"
RFC1918="{ 127.0.0.0/8 192.168.0.0/16 172.16.0.0/12 10.0.0.0/24 }"

Web="{ 80, 443 }"
Web-server="192.168.0.10"
Ftp="21"
Ftp-server="192.168.0.11"

## Tables       (File content shown in brackets)
table <admins> file "/etc/tAdmins" ( 192.168.0.3 )
table <managers> file "/etc/tManagers" (192.168.0.2)
table <operators> file "/etc/tOperators" (192.168.0.128)
table <http-managers> file "/etc/tHttp-managers" (google.com)
table <http-operators> file "/etc/tHttp-operators" (10.1.0.34)
table <customers> file "/etc/tCustomers" ( )
table <extadmin> file "/etc/tExtadmin" ( )

## Options

## Traffic Normalization
scrub in all

## Bandwidth Management
altq on $WAN cbq bandwidth 3000Kb queue { ssh, http-out, http-in, ftp-in, 
ftp-out, mail, dns, misc }
#queue LOCAL bandwidth 98456Kb cbq(borrow)

queue ftp-in bandwidth 12% priority 4 cbq(borrow red)
queue ftp-out bandwidth 15% priority 2 cbq(borrow ecn)
queue http-in bandwidth 13% priority 4 cbq(borrow red)
queue http-out bandwidth 25% priority 3 cbq(borrow red) { develusers, 
normalusers }
queue  develusers bandwidth 50% cbq(borrow)
queue  normalusers bandwidth 50% cbq(borrow)
queue mail bandwidth 10% priority 1 cbq(borrow ecn)
queue dns bandwidth 5% priority 5 cbq(borrow ecn)
queue ssh bandwidth 10% priority 6 cbq(borrow) { ssh_interactive, ssh_bulk }
queue  ssh_interactive bandwidth 50% cbq(borrow)
queue  ssh_bulk bandwidth 50% cbq(borrow)
queue misc bandwidth 10% cbq(borrow,default)

## Translations
#special = "{ 10.2.1.10 }"
#no nat on $WAN from $special to any
#nat on $WAN from $LAN to any -> $WAN
#binat on $WAN from $special to any -> $WAN

nat on $WAN from $LAN:network to any -> $WAN 

## Redirection

## Packet Filtering
# Allow all loopback traffic.
pass quick on lo0

# Default deny.
block in  log quick on $WAN from $RFC1918
block in  log on $WAN 
block out log on $WAN

# Allow basic networking communication 
pass in  log on $WAN proto icmp from any to any keep state  
pass out log on $WAN inet proto icmp all icmp-type 8 code 0 keep state 

# Allow dns and ntp out
pass out log on $WAN proto udp from any to any port 53 keep state
pass out log on $WAN proto udp from any to any port 123 keep state

# Allow ssh in and out 
pass in  log on $WAN proto tcp from any to any port 22 keep state  
pass out log on $WAN proto tcp from any to any port 22 keep state  

# Allow web out based on tables
pass in  log on $LAN proto tcp from <managers> to any port $Web keep state 
pass out log on $WAN proto tcp from <admins> to any port $Web keep state
pass out log on $WAN proto tcp from <managers> to <http-managers> port $Web 
keep state
pass out log on $WAN proto tcp from <operators> to <http-operators> port $Web 
keep state

# Allow web and ftp in based on table
#pass in log on $WAN proto tcp from <customers> to $Web-server port $Web 
#pass in log on $WAN proto tcp from <customers> to $Ftp-server port $Ftp
- - - - - - - - - 

pass quick on lo0 all
block drop in log quick on bge0 inet from 127.0.0.0/8 to any
block drop in log quick on bge0 inet from 192.168.0.0/16 to any
block drop in log quick on bge0 inet from 172.16.0.0/12 to any
block drop in log quick on bge0 inet from 10.0.0.0/24 to any
block drop in log on bge0 all
block drop out log on bge0 all
pass in log on bge0 proto icmp all keep state
pass out log on bge0 inet proto icmp all icmp-type echoreq code 0 keep state
pass out log on bge0 proto udp from any to any port = domain keep state
pass out log on bge0 proto udp from any to any port = ntp keep state
pass in log on bge0 proto tcp from any to any port = ssh keep state
pass out log on bge0 proto tcp from any to any port = ssh keep state
pass in log on xl0 proto tcp from <managers> to any port = www keep state
pass in log on xl0 proto tcp from <managers> to any port = https keep state
pass out log on bge0 proto tcp from <admins> to any port = www keep state
pass out log on bge0 proto tcp from <admins> to any port = https keep state
pass out log on bge0 proto tcp from <managers> to <http-managers> port = www 
keep state
pass out log on bge0 proto tcp from <managers> to <http-managers> port = https 
keep state
pass out log on bge0 proto tcp from <operators> to <http-operators> port = www 
keep state
pass out log on bge0 proto tcp from <operators> to <http-operators> port = 
https keep state

-- 

Steve 

Reply via email to