Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 26 Feb 1996 08:40:53 -0700
From:      Nate Williams <nate@sri.MT.net>
To:        Poul-Henning Kamp <phk@critter.tfs.com>
Cc:        michael butler <imb@scgt.oz.au>, stable@freebsd.org, current@freebsd.org
Subject:   Re: -stable hangs at boot (fwd) 
Message-ID:  <199602261540.IAA29287@rocky.sri.MT.net>
In-Reply-To: <11364.825341183@critter.tfs.com>
References:  <199602261228.XAA07877@asstdc.scgt.oz.au> <11364.825341183@critter.tfs.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Poul-Henning Kamp writes:
> > If you ^C your way to a shell prompt, there's a single rule that's in the
> > firewall list saying "deny all from any to any". Courtesy of the same recent
> > brain-damage in ipfw(8), you can't delete this rule either ("setsockopt
> > failed").
> 
> If you call this "brain-damage" then you quite clearly don't need IPFW.

I understand that it's there to stop a race condition where folks can
'get into' the system before the FW rules are brought in.  However, ...

> > I suspect the very same problem in -current.
> > 
> > The only workaround I can think of is to add "ipfw addf accept .."
> > statements _prior_ to the running of ifconfig in netstart .. theory as yet
> > untested ..
> 
> This is all correct, designed that way, and it is the way it should work,
> according to all material I have on the subject.
> 
> If you have IPFW in your kernel, you don't want it to pass any packets 
> you haven't approved in your filters.
> 
> QED:  Setup your filters before anything gets passed.

I can't do this on my box at all.  It's a PPP connection, and *all* of
the filtering is done on my PPP interface, which can vary depending on
incoming calls.  So, by having a default 'global' firewall entry I have
a couple problems.

1) There is no established way to have it be on a per-process.  This is
*bad* news for me since my PPP box is also my DNS/router.  I can't wait
for my PPP connection to come up before I add entries, and I want all of
my local machines to have access to *everything* on my router box.

2) There is no established method for adding IPFW entries in FreeBSD.
If we are going to make this the default method, I think we need some
hooks in /etc/netstart added to make this work.

3) The code -stable is un-documented and incomplete w/regard to
-current.  The documentation in -stable hasn't been updated yet.  Here
is the last entry for the ipfw.8 man-page.

revision 1.7.4.5
date: 1996/02/23 15:28:38;  author: phk;  state: Exp;  lines: +2 -0
Make ipfw handle the new kernel stuff.  Put notice in man-page that it
doesn't match reality right now.
-
But there have been commits since this time to the man-page, so I'm
assuming that documentation has been written to document the new
functionality.

> Wrt to the rule #65535 "deny all from any to any", then you are correct,
> you cannot delete it.  It represents the default policy of "anything not
> specifically allowed, is banned.

While I understand why (see above), I still don't think this should be
the 'global' default behavior.  It should be applied on a specific
interface since every gateway must have 2 interfaces, and only one will
need the 'block everything' rule.  Yes, I understand that I can add a
'open up everything' rule on my ethernet, but it'll also be necessary
for all of my incoming PPP/SLIP connections.  Also, how does this affect
the PPP/SLIP startup code?  Can a connection be established with the new
IPFW code in place?

> If you want to dispute this design, then please find at least one textbook
> or capacity in the area who agree with you first, that will save a lot of
> my time.

I will dispute the design in that the current implementation *increases*
the liklihood of errors due to lack of documentation and flexibility.
The former may be the cause of the latter, but it's still a great cause
of concern.


Nate



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