keeping state on outgoing connections fails (?)

Guido van Rooij guido at gvr.org
Wed Sep 3 12:54:08 UTC 2008


On Wed, Sep 03, 2008 at 08:42:52AM -0400, Jon Radel wrote:
> Guido van Rooij wrote:
> > 
> > Setup: FreeBSD 6.3 system with 2 interfaces: ep0 and bge0.
> > 
> > ep0: 1.2.3.4/24
> > bge0: 10.0.0.1/24
> > 
> > ruleset (made as simple as possible):
> > pass in quick on ep0 inet from 1.2.3.1 to 10.0.0.2
> > block drop out log quick on ep0 all
> > pass out quick on bge0 inet proto tcp from 1.2.3.1 to 10.0.0.2 keep state
> > 
> > When I telnet from 1.2.3.1 to 10.0.0.2, the packet comes in via ep0
> > and passes because of rule 1.
> > Then the packet goes out via bge0, is passed via rule 3 and a satte entry is
> > created.
> > 
> > The return SYN/ACK comes in via bge0 and passes because of the state entry.
> > 
> > Then the packet should be sent out via ep0, but it is blocked, as pflogd shows:
> 
> And does the problem go away when you put a "keep state" at the end of
> line 1?
> 

I don't know. Due to the nature of the setup, that is not an option (like
I posted in the original mail, this is a very simplistic ruleset; the
real life situation will be a 5-interface setup with a lot more
complexity. Being able to set state on outgoing packets is crucial).

I did test the folowing ruleset:
pass in quick on ep0 inet from 1.2.3.1 to 10.0.0.2 keep state
block drop out log quick on ep0 all
pass out quick on bge0 inet proto tcp from 1.2.3.1 to 10.0.0.2

And there it works, but doesn't solve my problem unfrotunately.

-Guido


More information about the freebsd-pf mailing list