On 4/4/2010 2:24 PM, Sten Carlsen wrote:
On 04/04/10 17:41, Kevin Darcy wrote:
On 4/1/2010 9:19 PM, Barry Margolin wrote:
In article<mailman.1048.1270148466.21153.bind-us...@lists.isc.org>,
Kevin Darcy<k...@chrysler.com> wrote:
Re-use of source ports for DNS queries is a bad security practice. I
cast my vote in favor of penalizing it, in the default
configuration of
any device that responds to DNS requests.
It's really not the job of a load balancer or server to force
clients to
use good security practices.
Trouble is, when everyone carves out their little area of
responsibility such that enforcing good security practices is "not my
job, man", then very few things enforce security practices, and
ultimately they don't get enforced at all.
Certainly a load-balancer can legitimately refuse to serve queries
that are suspect, can it not? E.g. that are malformed in particular
ways that indicate hostile intent. So, where in the spectrum of
"suspectness" can we draw the line and say, everything on that side,
I trust to answer, and everything on the other side of the line, I
don't? I think a client that re-uses source ports is untrustworthy.
Therefore I think it's a reasonable default to decline to service
queries from such clients.
The question I saw being raised was not if such queries wer
trustworthy or not; but whether it is the job of a load balancer to
judge the inner workings of an application protocol.
Sorry, pet peeve, but DNS is an "application protocol" like paddles on a
rowboat are merely ornamental trappings. Sure, one _could_ theoretically
get along with it/them, but how realistic is that? In practical terms,
DNS is a core networking protocol, necessary for most process-to-process
communcation at the Transport Layer and above. That's how it's treated
by support organizations, too: does one ever see DNS lumped in with
"applications" from a support standpoint?
I tend to agree that the load balancer should just hand the packets on
to whoever is there to answer the questions/serve the content.
It wasn't clear (to me, at least) from the original post whether the
load-balancer in question was just front-ending some DNS service, or
whether it was a GSLB-type load-balancer that was actually the
definitive source of the (dynamically-changing) DNS information,
front-ending some other protocol(s), e.g. HTTP/HTTPS, SMTP, LDAP. If
it's a GSLB device that is the last link-in-the-chain, then certainly it
has the right to enforce whatever security policies the
owner/administrator wants. If on the other hand it's just forwarding the
query to some back-end DNS infrastructure, and if it can provide the
information necessary for the back-end infrastructure to make a
reasonable security determination (i.e. using the client's original
source port), then fine, pass on the responsibility for enforcement. If
not, then the load-balancer needs to do the enforcement itself.
This would be the reason we have heard so much about broken
routers/bridges/firewalls/... that will not allow EDNS packets,
because they were once suspect.
Routers/bridges/firewalls, etc. that should, in the normal case, be
passing packets back and forth without presuming "special" knowledge of
the DNS protocol, should be lumped together with load-balancers that
front-end a DNS infrastructure.
But, again, if we're talking about a load-balancer that is a GSLB
*definitive* source of the DNS data, then it is in a different class
than "transparent" or proxying devices. It is, in effect, the *source*
of the DNS information, and shouldn't be giving out data to clients it
suspects may misuse that data or be compromised by the response.
When DNSSEC/NSEC/... is completely implemented, who will then
reevaluate if this load balancer is in need of a change? maybe there
will be nobody to fix it?
I think that's part of the larger question of how all of these Stupid
DNS Tricks that people are today performing with load-balancers, CDNs,
etc. will inter-operate with DNSSEC, if at all. The Stupid DNS Tricks,
after all, do essentially amount to *lying* about DNS data, and DNSSEC
is essentially a mechanism for detecting, and presumably rejecting, DNS
lies. It's hard to get such things to co-exist.
- Kevin
_______________________________________________
bind-users mailing list
bind-users@lists.isc.org
https://lists.isc.org/mailman/listinfo/bind-users