[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.