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

Re: CPE equipments and stateful filters



we seem to be talking past each other. I have a very strong feeling that some of us are not listening, or deliberately misunderstanding. I'll refer you to my note of 24 July 8:34 AM PDT; this one builds on that.
The objective of IPv6 is to restore the end to end addressing  
architecture. I believe that it does that, if we don't install  
network address translation and in so doing jinx that.
Alain's comment in the plenary Thursday evening that James document  
and my comments on this list advocate NAT are, in the best possible  
case, incorrect - nobody is talking about NAT in IPv6, although I do  
believe that there will be places that network operators choose to  
use that class of capability. In the worst case, it constitutes a  
deliberate misstatement calculated to cause confusion and troll for a  
flame war in this venue. I choose to believe the former, although I  
ask myself the question.
Alain's comment in the v6ops meeting Monday afternoon is patently  
disingenuous, however. His assertion was that there should be no  
protection of the capacity in a home because he wants to offer  
services in the home. Well, if the network is one of his subscribers,  
he already has a trojan in the network - the set-top box. It will  
manage all of the services he offers, and for a significant subset of  
them will be the chassis from which his service is offered. That set- 
top box will be configured by him and installed (often by his  
subscriber) in the subscriber network. It will connect to equipment  
in his network and offer those services. So traversal of a stateful  
firewall (my canonical example of which is a Cisco CBAC firewall,  
google for it) is in his case an absolutely done deal.
Now let me make an observation. RFC 4193 describes "Unique Local IPv6  
Unicast Addresses". They, and their predecessors, Site-local  
Addresses, were defined because there is a recognized need in  
networks - there are systems for which there is no legitimate reason  
that a system in a different network would ever communicate with it  
other than directly using a link-local address. Obvious examples  
include routers and other network equipment; such systems also  
include servers that are intended to be private to the company. There  
is a move right now to centrally assign prefixes for unique local  
addresses to administrations, the reason being to ensure that  
neighboring networks do not in fact accidentally choose the same  
prefix and so expose themselves to each other. So we as a community  
have agreed that not all hosts should be reachable by other hosts.  
This provides a routing solution to a basic issue addressed by common  
firewalls - hiding systems from each other and making it impossible  
for them to communicate.
Question: under what circumstances would my upstream provider enable  
me to access systems in his network? I can think of three potential  
reasons:
- for me to be able to send datagrams using my upstream router
- for me to access servers and services in his network that I have
  contracted for access to
- for my network to exchange information with the upstream network;
  routing, network management, and so on

I suspect that any other system will be completely inaccessible to me. The reason is essentially that I have no need to know and no legitimate reason to access it.
So, question: what is the argument that I must open all of my systems  
to him? If I am multihomed, what argument says that this must be  
observable by one of those upstream networks, or that my use of  
competing services need be visible to him? Alain wants to offer  
services in my home; what if I don't want them? How do I know that  
the services he is deploying are benign to me? Lawful Intercept is a  
service...
If I have contracted services from Alain's company, why would I not  
make it possible to use those services?
Now, let's talk a little about how a stateful firewall (which is  
different than a NAT) works. The internal implementations vary, but  
in the simplest case a stateful firewall is a network-layer-only  
device. It has an "inside" and an "outside". On the "inside"  
interface, any new session perceived outbound results in a dynamic  
access list entry permitting responses to its messages to enter the  
network on the "outside" interface. On the "outside" interface, there  
are essentially three sets of rules:
 - traffic responding to datagrams from "inside" is permitted
 - other traffic that has been pre-authorized is permitted
example: an ACL rule permitting SMTP traffic to go to an internal mail server
 - everything else is denied

What is the reason for that? To prevent misuse of the capacity in the network. Yes, it is often seen as a protection of the host, but the sense in which that is actually true is limited. Most attacks happen from behind the firewall, and in any event there are ways to subvert such defenses by having a trojan access outbound.
Now, Remi (I believe) observed that address-based rules like "let  
mail traffic go to my mail MTA" are a bit dated. OK, no problem. That  
said, one of the most effective spam filters in use today is based on  
a simple reputation service - one allows mail from one's business  
partners to get to one's secondary spam trap, but traffic from bots  
(whose addresses are determined and distributed by some form of  
reputation service) are in effect null routed. The SYN never gets to  
the secondary spam trap, the SYN ACK never gets back, a RST kills the  
session, or maybe the EHLO is responded to with an appropriate error  
message. Bottom line, a very high percentage of spam email simply  
never leaves the bot. No prophylactic protection on one's network?  
Well, I guess we'd better rethink our spam filters. SpamAssasin and  
its cousins are excellent secondary spam filters, but at least at my  
company refusing the SYN from a bot is orders of magnitude less  
costly and more effective.
We also discussed the use of firewall traversal protocols like UPnP.  
I profess no knowledge of the particulars of any of them, but in  
concept they are pretty straightforward. Given a global address  
space, if I want an application to have access to the systems in my  
home and trust it to not misuse the capacity I have provided, I have  
two choices. I can go to each system and configure it accordingly, or  
if I have a prophylactic I can program the firewall. In reality, I  
probably do both. I configure the firewall with some appropriate  
credential and give that credential to the peer I want to grant  
access to, and now anyone that has that credential can get added to  
my "came from inside" dynamic rule or to the list of pre-authorized  
sessions. If one does that, sessions initiated from outside are  
pretty straightforward.

Lets make one thing real clear. It is abundantly clear to the vendors in the room that there is a market for IPv6 CPEs with firewalls. Technology religion to the contrary isn't going to stop that. So shouting at the top of your lungs that "we don't like firewalls" is in essence pissing into the wind. Save your breath. The products are going to be built and deployed. It is equally clear that there is a set of people who don't want to deploy a firewall. More power to them - the firewall capability needs to be optional, either by product feature set or by configuration. The market they represent will dictate either that there will be routers without firewall features or that ones with firewalls features can be usefully deployed without them. vedors will respond to them as well.
We need to not be silly enough to think that one size fits all. If  
the service providers can hide their network elements, homes need to  
be able to do the same thing, and for the same reason.