This is the first time I have tried to use pf on FreeBSD, I usually use ipfw, however I have been using pf on OpenBSD, and wanted change over on my FreeBSD boxes.

I am having problems with a very basic rule set for a nat-ed small network. Currently no traffic is being passed between the internal and public networks.

I am using the same rule set (see below) on a pf firewall running on a OpenBSD 3.8 box, with the exception of the to last rule (pass out....) I had to add to the freebsd boxes I am working on to be able to initiate outbound connections during configuration. This alone confuses me, I was under the impression that pf was default pass unless blocked, hence the starting of filter blocks of rules with "block in all" and/or "block out all"

I did try adding a "pass out all" rule, but it had no effect.

The freebsd box is a running 6.1p3 on a Dell PowerEdge 1850 single dual-core proc, with SMP kernel, if pertinent, IPSEC options are also in the kernel including filtergif, this box will eventually become the perimeter firewall between our public ip space and the ISP (with queuing/traffic shaping requirements), while an identical box will replace it as firewall between our public and private ip spaces and provide ipsec vpn tunnels as well.

shown below in order are the rc.conf entries, the compiled kernel options, the pf.conf, and the pfctl -sa output. I would appreciate any assistance, I really don't want to have to go back to ipfw.

kern options:

device          pf
device          pflog
device          pfsync

options         ALTQ
options         ALTQ_CBQ
options         ALTQ_RED
options         ALTQ_RIO
options         ALTQ_HFSC
options         ALTQ_PRIQ
options         ALTQ_NOPCC

rc.conf entries:

defaultrouter="o.o.33.41"
hostname="me.domain.com"
sshd_enable="YES"
ifconfig_em0="inet o.o.33.46 netmask 255.255.255.248"
ifconfig_em1="inet i.i.10.1 netmask 255.255.255.0"
gateway_enable="YES"
pf_enable="YES"
pf_rules="/etc/pf.conf"
pf_flags=""
pflog_enable="YES"
pflog_logfile="/var/log/pflog"
pflog_flags=""

pf.conf entries:

oif="em0"
onwr="o.o.33.40/29"
oip="o.o.33.46"

iif="em1"
inwr="i.i.10.0/24"
iip="i.i.10.1"

is1="i.i.10.15"

scrub in all

nat on $oif from $inwr to any -> $oif

rdr on $oif proto tcp from any to $oip port 1000 -> $is1 port 22

block in log all

pass in on $oif proto tcp from any to $is1 port 22 keep state
pass in on $oif proto tcp from any to $oip port 22 keep state

pass in on $iif inet from $inwr to any keep state
pass out on $oif inet from $oip to any keep state (additional rule referred to above that needed to be added to enable outbound connections, should not be needed?)

antispoof for $oif
antispoof for $iif


pfctl -sa output:

TRANSLATION RULES:
nat on em0 inet from i.i.10.0/24 to any -> o.o.33.46
rdr on em0 inet proto tcp from any to o.o.33.46 port = cadlock2 -> i.i.10.15 port 22

FILTER RULES:
scrub in all fragment reassemble
block drop in log all
pass in on em0 inet proto tcp from any to i.i.10.15 port = ssh keep state
pass in on em0 inet proto tcp from any to o.o.33.46 port = ssh keep state
pass in on em1 inet from i.i.10.0/24 to any keep state
pass out on em0 inet from o.o.33.46 to any keep state
block drop in on ! em0 inet from o.o.33.i/29 to any
block drop in on em0 inet6 from fe80::213:72ff:fe5f:6e6b to any
block drop in inet from o.o.33.46 to any
block drop in on ! em1 inet from i.i.10.0/24 to any
block drop in on em1 inet6 from fe80::213:72ff:fe5f:6e6c to any
block drop in inet from i.i.10.1 to any
No queue in use

STATES:
self tcp i.i.10.1:56727 <- i.i.10.15:22       FIN_WAIT_2:FIN_WAIT_2
self tcp o.o.33.46:22 <- x.x.239.104:62760       ESTABLISHED:ESTABLISHED
self pfsync o.o.33.46 -> 0.0.0.0       SINGLE:NO_TRAFFIC

INFO:
Status: Enabled for 0 days 00:02:47           Debug: Urgent

Hostid: 0xfb5oe08

State Table                          Total             Rate
  current entries                        3
  searches                             838            5.0/s
  inserts                               20            0.1/s
  removals                              17            0.1/s
Counters
  match                                 45            0.3/s
  bad-offset                             0            0.0/s
  fragment                               0            0.0/s
  short                                  0            0.0/s
  normalize                              0            0.0/s
  memory                                 0            0.0/s
  bad-timestamp                          0            0.0/s
  congestion                             0            0.0/s
  ip-option                              0            0.0/s
  proto-cksum                            0            0.0/s
  state-mismatch                         0            0.0/s
  state-insert                           0            0.0/s
  state-limit                            0            0.0/s
  src-limit                              0            0.0/s
  synproxy                               0            0.0/s

TIMEOUTS:
tcp.first                   120s
tcp.opening                  os
tcp.established           86i0s
tcp.closing                 900s
tcp.finwait                  45s
tcp.closed                   90s
tcp.tsdiff                   os
udp.first                    60s
udp.single                   os
udp.multiple                 60s
icmp.first                   20s
icmp.error                   10s
other.first                  60s
other.single                 os
other.multiple               60s
frag                         os
interval                     10s
adaptive.start                0 states
adaptive.end                  0 states
src.track                     0s

LIMITS:
states     hard limit  10000
src-nodes  hard limit  10000
frags      hard limit   5000

OS FINGERPRINTS:
345 fingerprints loaded
_______________________________________________
freebsd-pf@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-pf
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to