Re: Pf questions for larger implementation

2006-02-23 Thread Diana Eichert
On Thu, 23 Feb 2006, Ryan McBride wrote:
SNIP
> In my opinion if you're talking about NATing 750 Windows boxes doing
> regular Windows-type things, you're going to want to at least at crank
> the limits on states and turn on adaptive timeouts; I wouldn't go any
> further than that unless you run into actual problems, but you can also
> think about using some of the other connection limiting features to
> prevent trojaned systems from filling the state table and impacting
> other users.

I "help" a friend out with the FW in front of their company webservers.  I
agree with Ryan's observation, one because I'm pretty sure he knows what
he's doing, two because I have direct experience in attempting to protect
Windows systems.  On more than one occasion the owner of the business has
called me up to say there's a problem with the FW, everytime they've said
that it was related to one of their Windows systems getting tilted.

> Things to think about (roughly in order of aggressiveness):
>
> - 'set limit states'
> - adaptive timeouts
> - 'set optimization'
SNIP
> -Ryan

diana

Past hissy-fits are not a predictor of future hissy-fits.
Nick Holland(06 Dec 2005)



Re: Pf questions for larger implementation

2006-02-22 Thread Ryan McBride
On Wed, Feb 22, 2006 at 08:39:36PM -0500, Nick Holland wrote:
> Steve D. wrote:
> >Hi,
> >
> >I'm setting up a gateway (1.7 Ghz machine with 1 Gig of ram) for 700+ 
> >users using pf with NAT and BINAT's (90% NAT).I would like to know 
> >if anyone has any recommendations on tweaking the runtime options in 
> >PF.  This box will pretty much just be handling the natting with a bare 
> >minimum of filtering, just enough to keep the box secure.
> 
> Yes:
> DON'T TOUCH ANYTHING UNTIL YOU KNOW WHAT THE GOAL IS.
> 
> Apparently, there are some OSs people are used to that ship in a nearly 
> useless state, at least judging by the queries like this.  With OpenBSD, 
> you aren't supposed to have to tweak things..it should Just Work.
> 
> See if you run into a problem.  Don't start twisting knobs until you see 
> if there is a reason to do so, and until you know what the desired 
> outcome is.  The defaults are set pretty darned well to start with -- 
> you are much more likely to break something by "tweaking" than you are 
> to improve anything.

Normally, I would agree with this. And you're right as far as non-pf
tweaking. But he's already stated that he's going to be running this
system in a "please rape my client systems" configuration, not as a
firewall with a sane default deny ruleset.  Go ahead and deploy it with
the basic defaults, but when the first worm hits those client systems
and you find yourself wondering why existing connections still work but
new connections fail, check first to see if your state table is full.

In my opinion if you're talking about NATing 750 Windows boxes doing
regular Windows-type things, you're going to want to at least at crank
the limits on states and turn on adaptive timeouts; I wouldn't go any
further than that unless you run into actual problems, but you can also
think about using some of the other connection limiting features to
prevent trojaned systems from filling the state table and impacting
other users.

Things to think about (roughly in order of aggressiveness):

- 'set limit states'
- adaptive timeouts
- 'set optimization'

I would consider these three "Normal" tuning for a firewall deployment
like this. The default configuration is constrained somewhat by the fact
that we want it to work well on systems with limited memory, so they
don't totally reflect reality for a more serious firewall.

We've talked about turning adaptive timeouts on by default, though.
Maybe I'll get around to that after 3.9.


- 'max-src-states' on outgoing connections
- 'max-src-conn-rate' on outgoing connections

These are tweaky. You need to understand exactly what problems you're
trying to solve, and what the side-effects are going to be. 

-Ryan



Re: Pf questions for larger implementation

2006-02-22 Thread Steve D.

Nick Holland wrote:

Steve D. wrote:

Hi,

I'm setting up a gateway (1.7 Ghz machine with 1 Gig of ram) for 700+ 
users using pf with NAT and BINAT's (90% NAT).I would like to 
know if anyone has any recommendations on tweaking the runtime 
options in PF.  This box will pretty much just be handling the 
natting with a bare minimum of filtering, just enough to keep the box 
secure.


Yes:
DON'T TOUCH ANYTHING UNTIL YOU KNOW WHAT THE GOAL IS.

Apparently, there are some OSs people are used to that ship in a 
nearly useless state, at least judging by the queries like this.  With 
OpenBSD, you aren't supposed to have to tweak things..it should Just 
Work.


See if you run into a problem.  Don't start twisting knobs until you 
see if there is a reason to do so, and until you know what the desired 
outcome is.  The defaults are set pretty darned well to start with -- 
you are much more likely to break something by "tweaking" than you are 
to improve anything.


For comparison: we have ~850 people, hiding behind a CARP'd pair of 
machines -- primary is a Celeron 600, 384M RAM.  Failover box is a 
PIII-750, 512M RAM, in an otherwise identical box.  Hooked to a 45Mbps 
DS3.  We aren't exercising the system much at this point (neither the 
box nor the DS3).  I suspect some day, we'll start seeing some limits 
hit on this thing, we'll worry about it then...assuming these boxes 
haven't died of old age by the time that happens. :)


Nick.




Nick,

Thanks for the info.  That's what I was looking for.  I'm going to be 
dropping this into production and I don't want things to grind to a halt 
in 30 seconds.  What kind of thruput are you seeing on the box?   The 
only tweaks I was wondering about were in the pf runtime options (limit 
states etc.).


Thanks again,

Steve



Re: Pf questions for larger implementation

2006-02-22 Thread Nick Holland

Steve D. wrote:

Hi,

I'm setting up a gateway (1.7 Ghz machine with 1 Gig of ram) for 700+ 
users using pf with NAT and BINAT's (90% NAT).I would like to know 
if anyone has any recommendations on tweaking the runtime options in 
PF.  This box will pretty much just be handling the natting with a bare 
minimum of filtering, just enough to keep the box secure.


Yes:
DON'T TOUCH ANYTHING UNTIL YOU KNOW WHAT THE GOAL IS.

Apparently, there are some OSs people are used to that ship in a nearly 
useless state, at least judging by the queries like this.  With OpenBSD, 
you aren't supposed to have to tweak things..it should Just Work.


See if you run into a problem.  Don't start twisting knobs until you see 
if there is a reason to do so, and until you know what the desired 
outcome is.  The defaults are set pretty darned well to start with -- 
you are much more likely to break something by "tweaking" than you are 
to improve anything.


For comparison: we have ~850 people, hiding behind a CARP'd pair of 
machines -- primary is a Celeron 600, 384M RAM.  Failover box is a 
PIII-750, 512M RAM, in an otherwise identical box.  Hooked to a 45Mbps 
DS3.  We aren't exercising the system much at this point (neither the 
box nor the DS3).  I suspect some day, we'll start seeing some limits 
hit on this thing, we'll worry about it then...assuming these boxes 
haven't died of old age by the time that happens. :)


Nick.



Re: Pf questions for larger implementation

2006-02-22 Thread knitti
On 2/23/06, Steve D. <[EMAIL PROTECTED]> wrote:
> I'm setting up a gateway (1.7 Ghz machine with 1 Gig of ram) for 700+
> users using pf with NAT and BINAT's (90% NAT).I would like to know
> if anyone has any recommendations on tweaking the runtime options in
> PF.  This box will pretty much just be handling the natting with a bare
> minimum of filtering, just enough to keep the box secure.
>
> Nat statement: ($src_nat is a public /25)
> nat on $public_if inet from  to any -> $src_nat source-hash
>
> Binat statement: (which isn't working for some reason but I'll figure
> that out)
> binat-anchor  one2ones
> load anchor one2ones from "/etc/one2ones"
>
> If anyone has some experience with a similar sized setup, I'd really
> appreciate hearing from you.  If there's any other adjustments I can
> make to keep the performance up, I'd be interested in those also.

try it, deploy it. your cpu/mem should handle it easily. the only thing
I can imagine is running into the default state limit. see man pf.conf
the part about "set limit".

--knitti



Pf questions for larger implementation

2006-02-22 Thread Steve D.

Hi,

I'm setting up a gateway (1.7 Ghz machine with 1 Gig of ram) for 700+ 
users using pf with NAT and BINAT's (90% NAT).I would like to know 
if anyone has any recommendations on tweaking the runtime options in 
PF.  This box will pretty much just be handling the natting with a bare 
minimum of filtering, just enough to keep the box secure.


Nat statement: ($src_nat is a public /25)
nat on $public_if inet from  to any -> $src_nat source-hash

Binat statement: (which isn't working for some reason but I'll figure 
that out)

binat-anchor  one2ones
load anchor one2ones from "/etc/one2ones"

If anyone has some experience with a similar sized setup, I'd really 
appreciate hearing from you.  If there's any other adjustments I can 
make to keep the performance up, I'd be interested in those also.


Thanks,

Steve