[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [BEHAVE] RE: Firewall control



On Nov 16, 2007, at 07:34, Melinda Shore wrote:
On 11/16/07 10:27 AM, "Rémi Denis-Courmont" <remi.denis- courmont@nokia.com> wrote:
Uh? UPnP is about mapping external ports to internal ones, and getting the
external address of the middlebox. Now, if that's not NAT centric...

The last time I looked at it it also included firewall pinholing.

There are hints that UPnP IGD 2.0 may support firewall pinholing in IPv6 whenever it's eventually published. I have seen no public documents yet, but I would be very surprised if this feature is inserted into the specification by any method beyond the straightforward method of extended the XML schemas to allow IPv6 addresses and, possibly, to note that no NAT is necessary.

A firewall that has an "advanced" policy such as what you'll find in a typical corporate network most certainly does not want to be controlled anyway.

Back when we were trying to figure out what to call this work there
was a strong "suggestion" from Scott Bradner to call it "middlebox
communication" because we didn't want to imply that the endpoint or
its proxy was actually going to be controlling anything.  The problem
here isn't to allow applications to open pinholes on firewalls, but
rather for applications to request these network resources, give the
network/firewall sufficient information to say "yes" or "no," and
give the network a mechanism to communicate its decision back to the
endpoint.

I'd like to point out that my ALD proposal is very deliberately presented with an inverted perspective on this. The problem I tried to address is to give the stateful firewall a chance to discover application endpoint addresses that policy requires it to exempt from the general prohibition on blocking incoming packets not conforming to any existing state created by tracking the flow of outbound packets.

ALD is absolutely *NOT* a mechanism for applications to "control" firewalls, or even to "request" firewalls to open pinholes for them. It is a mechanism for firewalls to discover application listeners, so that incoming flows for those applications can be delivered to them properly, even when applications don't know in advance where those flows will originate. Notice that ALD notifications go from nodes to firewalls, and acknowledgements are sent by firewalls solely for the purpose of telling nodes to stop sending notification retries. No information is provided by firewalls to applications beyond that. This is quite intentional.

I think firewalls should be as transparent as possible, except when policy requires them to intervene.

In my humble opinion, ALD's primary virtue is that it correctly places the burden on the firewall not to destroy network transparency unnecessarily. To that end, it aims to define a way for IPv6 node implementations to provide firewalls with enough information to behave transparently in the face of passive listening applications. It does not try to inform applications of the state of firewalls in the network.

We all still think applications shouldn't have to care, right?

I also think it's worth noting that any proposal for nodes/ applications to communicate with firewalls to solve these sorts of problems will inevitably involve disclosing the addresses of application passive listener endpoints when their users may not be expecting it. I don't know how to prevent that from happening and still comply with the recommendations described in RFC 4864 and expanded in draft-ietf-v6ops-cpe-simple-security, but I don't think many participants here think this is a sensible security consideration. Furthermore, I suspect many network operators will be very interested in mining the information stream produced by protocols of this class.

This is another virtue of ALD. It gives operators the potential for some snooping goodness they can't get with current IPv6 implementations, and it does so *without* larding their firewalls down with a lot of extra work trying to inform applications of things they shouldn't need to know.


--
james woodyatt <jhw@apple.com>
member of technical staff, communications engineering