[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Long term vs short term, was: Re: The argument for writing a general purpose NAT for IPv6
Hopefully a change of the subject line will draw in more people, I
think this is an important issue.
The issue being: what is the right thing to do in the long term, and
what is the right thing to do in the short term. In the short term,
changing protocols like RTSP isn't an option, but in the long term,
it's not even an issue. What we have to avoid is starting something
because it makes short in the short term that will hurt us in the
long term.
In order to determine what our options are, we need to define the
problem. Off the top of my head I can think of five applications or
classes of applications that don't work with a simple stateful firewall:
1. Anything that listens for incoming sessions
2. Active FTP
3. SIP
4. RTSP
5. IPSEC
Possible solutions:
A. NAT-PMP like
B. ALG without host involvement
C. ALG with host participation
D. Open range of ports/protocols
I don't know very well how SIP or RTSP work, but I think the
compatibility is as follows:
A: helps with 1, 3, 5; doesn't help with 2, 4
B: helps with 2, 3, 4; doesn't help with 1, 5
C: helps with 2, 3, 4, 5; doesn't help with 1
D: helps with 3, 5; doesn't help with 1, 2, 4
This means we need at least A, and either C or both B and D.
Alternatively, we could collectively decide that this is too
problematic and too harmful to the e2e principle, so we shouldn't
have stateful firewalls in the common case after all. However, in
that case we need to come up with a way to provide services on a
local network in such a way that those services aren't exposed to the
rest of the world. That would mean providing these services over non-
routable address space, such as link-local for unmanaged
installations and unique site local for larger installations. Apple
would probably be in a good position to do this because Mac OS
doesn't expose any services by default, but I think this is (still)
different for Windows.
This would also mean that services aren't just enabled or disabled,
but they are enabled for global use, enabled for local use or disabled.
Back to our earlier exchange...
On 19-apr-2007, at 22:34, james woodyatt wrote:
But if we can define a range of port numbers that will pass
through firewalls, then obviously we can tell RTSP servers to use
just these ports.
There is no mechanism for RTSP servers to learn what ports they
should be constrained to use. Perhaps you mean we can tell RTSP
server *administrators* to use just the ports we think are
appropriate. Alas, there is no mechanism for doing that, either.
This is where the short/long term issue comes up: the IETF could
easily update the RTSP specs to do this, but it would take years for
that to take effect, so that's of no short term value.
These are extremely simple firewall-wise: it's yes or it's no to
all of them. Obviously a firewall device can't be an ISAKMP proxy,
unknown entities in the middle messing with your packets is
exactly what IPsec is supposed to protect you against.
I think you might have missed an important part of the discussion.
The problem is that outbound IKE initiations only punch holes for
the well-known ISAKMP port. They do not also punch holes for the
associated inbound ESP packets without the assistance of an ISAKMP-
aware gateway, i.e. basically an ALG for ISAKMP and IPsec flows.
All of this comes with the territory, you simply can't have a
middlebox meddle with IPsec. However, I don't see any security issues
with allowing ALL protocol ESP packets through firewalls, because
IPsec has a very good handle on which packets it wants to see and
thus, which packets it doesn't want to see. No need to have a
firewall "protect" hosts. Unfortunately, people have been living
behind firewalls for so long that receiving packets from the big
scary internet simply feels "wrong".
In my experience, mailing list hopping halfway through a
discussion doesn't work too well. It would be good if the v6ops
people could reach some conclusion (and hopefully, consensus) on
these issues.
I'm happy to continue the discussion separately or cross-posted to
both working groups, as necessary.
Ok. I'll subscribe to BEHAVE tomorrow.
If BEHAVE and V6OPS think relaxing the constraints on what inbound
packets should be rejected by stateful packet filters in
residential IPv6 gateway devices, then I'll take those
recommendations to Apple's security team and see if they feel
comfortable relaxing the behavior of future AirPort base station
products. At the moment, however, the recommendation is clear: no
inbound packets should be passed unless they are associated with
state matching flows initiated by local nodes.
Maybe it would be useful to ask the chairs for a consensus call.
However, this generally only happens when there is a draft.
In my opinion, a firewall shouldn't have to reject ALL packets for
which there is no state, but for consumer stuff, the protection
against possible malicious incoming traffic should be the same for
IPv6 as it is for IPv4+NAT.
I will agree: the more we can relax the constraints in question,
the less need there will be to implement ALG's for IPv6 firewalls,
and *therefore* the less demand there may be for the development of
IPv6 general purpose NAT, which is the topic of this particular
thread of discussion. That would certainly help.
I'm very pessimistic, however, that we can eliminate *all* of the
impetus to implement ALG's for IPv6 firewalls without removing the
constraint on inbound flows entirely, or by the implementation of
an application listener discovery protocol for firewalls. I'm more
optimistic about the potential of the latter alternative than I am
about the former. To that end, I am drafting a proposal for
solving this problem with a new ICMP sub-protocol.
Ok. It looks to me that you have a better view of the problem than
(almost?) anyone else, so don't be afraid to take the position you
think is right in both the long and short term, there is precedent
for the IETF membership to be convinced by rational argument. :-)
Iljitsch