Daniel,

Thanks for a very lucid explanation!  I had wondered if it might
be more of a user error situation (and thankfully I've only
discovered one such erroneously configured OpenBSD machine so
far!).

Mark

--- Daniel Hartmeier <[EMAIL PROTECTED]> wrote:

> On Fri, Jun 30, 2006 at 09:40:38PM -0700, Mark Voelker wrote:
> 
> > I'm frequently hearing (not only in these threads) that pf
> is
> > thought to be buggy with regards to window scaling that and
> that
> > it can cause problems like those described in these threads.
> 
> 
> Problems like this occur when people use pf to filter
> statefully,
> but do not create state on the initial SYN of TCP connections.
> 
> Window scaling support is negotiated in the SYN and SYN+ACK
> packets of connection establishment. pf can only support it
> properly when both these packets are seen and associated with
> a state entry (i.e. you create state on SYN and SYN+ACK
> matches
> the state).
> 
> If the ruleset passes the SYN packet statelessly (without
> 'keep
> state'), but then creates state on the returning SYN+ACK, the
> state entry has missed the window scaling negotiation. There
> were a couple of reports of people who managed to do this, all
> by mistake (if you intend to create state, you most certainly
> want to do it on the initial packet).
> 
> Most people would call these misconfigurations (buggy
> rulesets),
> but some people feel that only a buggy program would allow a
> user to make such a mistake, hence pf must be buggy. Hence the
> myth of "pf is buggy wrt window scaling". I suggest these
> people
> don't use tools with sharp edges, they could hurt themselves
> ;)
> 
> If you want a simple way to ensure this is not happening with
> your ruleset, make sure that
> 
>   a) there is a default block policy
>   b) all 'pass' rules that can match TCP have 'flags S/SA'
>   c) all 'pass' rules have 'keep state'
> 
> And, no, other packet filters have no magical way of deducing
> the
> proper scaling factors if they missed the handshake. If they
> don't
> stall connections in this scenario, it just means they are
> using
> sloppy TCP window restrictions or don't check TCP sequence
> numbers
> at all. We are proud of our strict window checks :)
> 
> Daniel
> 


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

Reply via email to