Date: Thu, 12 Sep 2002 17:30:26 -0400 From: Chuck Swiger <cswiger@mac.com> To: freebsd-security@FreeBSD.ORG Subject: Re: ipfw, natd, and keep-state - strange behavior? Message-ID: <DA6132B6-C696-11D6-90D4-000A27D85A7E@mac.com> In-Reply-To: <001401c25a80$346cbb50$0a00a8c0@groovy3xp>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thursday, September 12, 2002, at 01:16 PM, dfolkins wrote: > From: "Chuck Swiger" <cswiger@mac.com>: [ ... ] >> Let me note that the whole intent of dynamic filtering is to permit >> return >> connections only in response to internal requests, and it presumes that >> such connections are somehow "safer". I'm not so confident about that >> assumption as some people seem to be. > > how's that? could you please elaborate? Sure. What happens if a local user opens a connection to a popular site which has been trojaned or redirected to malware via DNS hijacking? The fact that you're using dynamic filtering doesn't help a bit when the originating connection was local. >> Frankly, I'd prefer to use static rules with aggressive ingress *and* >> egress filtering, > > but wont that actually result in an overly permissive firewall? e.g., if > you want to allow outgoing http connections, you have to allow packets > from > any external server port 80 to a whole bunch of tcp ports on internal ips. Nope. While I prefer to use a proxy to centralize web access to the outside via my interior firewall, you can also do something like: add pass tcp from $INET $HIPORTS to any 80,443 add pass tcp from any 80,433 to $INET $HIPORTS established Without performing the TCP 3-way startup (starting with a packet with SYN= 1 and ACK=0), the TCP sequence numbers won't match and the client being scanned from some random external IP will simply drop the invalid connection attempt. >> which also avoids the DoS potential involved with >> overflowing the number of dynamic connections permitted by a given >> system, >> thus causing the stateful firewall to lose track of older legitimate >> connections. (*) > > true, there is that, but having a short enough syn_ udp_ and short_ > lifetime, and high enough number of allowed dyn rules would be pretty > safe, > no? Not that I have seen, although I've never had a firewall which could do syncookies hit by a DoS. Without that, denial-of-service attacks can pretty easily overflow the connection database, thus causing all pre-existing connections to drop, make creating new connections problematic, and that was as true of a firewall on a multihomed x86 box running FreeBSD 4.1 (now 4.5), as it was of Cisco hardware running IOS. > also, i think you forgot to add the footnote that you implied would be > forthcoming by the (*). Sort of-- my PostScript ("PS:") was the footnote, but I wasn't consistent in labelling it as such. :-) [ ... ] > but as you may remember in my original inquiry about firewall rules, i was > trying to allow _outgoing_ ssh connections, not incoming ones. Ok. Here are the equivalent static rules: allow tcp from $INET to any 22 setup allow tcp from any 22 to $INET established -Chuck Chuck Swiger | chuck@codefab.com | All your packets are belong to us. -------------+-------------------+----------------------------------- "The human race's favorite method for being in control of the facts is to ignore them." -Celia Green To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-security" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?DA6132B6-C696-11D6-90D4-000A27D85A7E>