Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 27 May 1998 19:38:17 -0700
From:      Julian Elischer <julian@whistle.com>
To:        hackers@FreeBSD.ORG
Cc:        isp@FreeBSD.ORG
Subject:   Please test/check (IPFW/NATD)
Message-ID:  <356CCE19.3F54BC7E@whistle.com>

next in thread | raw e-mail | index | archive | help
I have made some changes to the IPFW code that changes slightly
the semantics of IPFW. These changes are optiona at present
but should become standard soon and should eventually go back into 
-stable (2.2.x)

If you use IPFW you should check your rules to see if this affects you
as it might make the filter behave differently to what you expect.

If you do not use divert sockets, (e.g. NATD) then relax 
and go on your way..

if you DO, then read on...

The change is presently optional. You need the undocumented option
IPFW_DIVERT_RESTART
to make it happen, but it is our intention to make it standard 
after a while so you should look at this.

The change is that in the normal situation, a packet that is 
re-injected after diversion will no longer go back to the beginning
of the filter, but instead will restart at (after) the point that 
it was diverted.
If no major processing has occured before your divert rule then 
there is effectively no change...

If your divert rule is a fair way into your filter set,
then look at the rules before hand and think about whether
not running those a second time in the reinjected packet may 
create a security hole.

The reason for this change is because the original scheme was flawed
in that you could not divert a packet twice. Doing so would lead to an 
infinite loop (for the packet).
so for example the following was not possible:

[rules set 1]
divert for payload encryption
[rules set 2..]
divert for NATD
[rules set 3]

In the old scheme.
the executed rules would be:

[set 1] encryption [set 1] [set 2] natd [set 1] encryption [set 1] (etc)



in the new scheme it is:
{set 1] encryption [set 2] natd [set 3]

I envision this becoming standard in a couple of weeks
and really it should go back to 2.2.x

in the common case (natd)
[rules set 1]
divert for NATD
[rules set 2]

The following should happen:

old:
[set 1] natd [set 1] [set 2]

new:
[set 1] natd [set 2]

If your ruleset REQUIRES set 1 to be run twice please let me know
so I can work out the common scenarios.

the example for natd say to put the natd rule at the beginning
so it should not affect people who followed this advice :-)

julian

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?356CCE19.3F54BC7E>