Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 17 Sep 2004 09:28:11 -0700 (PDT)
From:      Dave McCammon <davemac11@yahoo.com>
To:        questions@freebsd.org
Subject:   Re: Too many dynamic rules, sorry
Message-ID:  <20040917162811.30280.qmail@web41406.mail.yahoo.com>
In-Reply-To: <20040917114427.24aac112.wmoran@potentialtech.com>

next in thread | previous in thread | raw e-mail | index | archive | help

--- Bill Moran <wmoran@potentialtech.com> wrote:

> Rob <spamrefuse@yahoo.com> wrote:
> 
> > Norm Vilmer wrote:
> > > Here are the rules that I have that keep-state
> on the outside interface:
> > > 
> > > #For DNS
> > > add 01300 pass udp from ${oip} to any 53
> keep-state
> > > # For NTP
> > > add 01400 pass udp from ${oip} to any 123
> keep-state
> > > # For VPN
> > > add 01500 pass gre from any to any keep-state
> > > # For ICMP
> > > add 01600 pass icmp from any to any via ${oip}
> keep-state
> > > 
> > > Do you think these are causing the problem?
> > 
> > Aren't udp and icmp state-less protocols?
> > In that case, keep-state would not make much
> sense.
> > 
> > I use 'keep-state' only for tcp rules.
> > 
> > I may be wrong, moreover, I haven't followed the
> full thread :).
> 
> You'll generally need to keep state on UDP when you
> play online games.
> 
> If you're smart, you don't allow arbitrary UDP
> packets from the outside
> world into your network, but if you're playing
> Unreal or something, then
> all communication is via UDP, and you won't be able
> to play.
> 
> The best solution is to allow all UDP traffic to
> _leave_, while keeping
> state.  the keep-state remembers the ip/port
> information on the outgoing
> packets, and thus allows return packets to get back
> in (by matching the
> ip/port pair).
> 
> Now, when you know the port, it doesn't really make
> sense to use
> keep-state, and all you're really doing is spamming
> your state tables.
> 
> If you look in the /etc/rc.firewall that ships with
> FreeBSD, you'll see
> these rules (designed to handle running a DNS
> server):
>         # Allow access to our DNS
>         ${fwcmd} add pass tcp from any to ${oip} 53
> setup
>         ${fwcmd} add pass udp from any to ${oip} 53
>         ${fwcmd} add pass udp from ${oip} 53 to any
> 
> Granted, it's three rules instead of 1, but it does
> not use your state
> tables unnecessarily (sp?)
> 
> HTH.
> 
>

Sorry, wasn't done with last message.

Look at your dynamic table, if you are getting DoS'd,
try using the "limit" option instead of keep-state or
tweak the net.inet.ip.fw.dyn_(*)_lifetime to a level
that suits your needs.

Or, rewrite your rules removing the keep-state options.


		
_______________________________
Do you Yahoo!?
Declare Yourself - Register online to vote today!
http://vote.yahoo.com



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040917162811.30280.qmail>