In message <> "W"
<> was claimed to have wrote:
>First, are these ports being reserved for client UDP requests made by the
>DNS Server outbound to other DNS servers?
Yes.
>It's not clear on why you would
>need a pool of server ports reserved for that purpose.
Poor implementation. A better implementation would only reserve ports
as needed, and would then release them once they're no longer being
used.
>If the concern is for inbound traffic to the DNS server, I'm again perplexed
>why DNS Server would need to run any ports above 1024.
This is TCP/IP 101.
For two IP connected hosts to interact, you need a method to uniquely
identify the request (a stateful connection in TCP, or stateless in
UDP), in most cases this is done by building unique
srcIP:srcPORT:dstIP:dstPORT sets.
Any client making an outbound connection needs a unique port number on
the local host (or at least unique enough that no other connection to
the same dstIP:dstPORT has been active recently), by convention ports
above 1024 are used.
>Aren't all the
>incoming requests to DNS server on ports 53 UDP and TCP? What specific
>services and request types is DNS Server running on ephemeral ports?
None. No services are provided at all, but rather, your local DNS
server is listening for responses.
>The
>fact is we block all of those ports to incoming connections, and we haven't
>seen any side effect from that yet.
>
>The link to the description of the security update doesn't actually explain
>what the update does; that linked article is focusing on peripheral issues
>like which files are affected and how to determine if the update causes
>problems.
>
>I really need to see the bigger picture here and I don't understand who is
>the client and who is the server, and how the attack against the DNS server
>is proceeding and how the MS08-037 fix addresses that.
This is the place to start. When your desktop asks your local DNS
server to resolve
www.microsoft.com, your desktop is the client and your
DNS server is the server. If your DNS server doesn't know the answer,
then it asks another DNS server (an upstream resolver, if so configured,
or any along the chain of root / .com / microsoft.com servers
otherwise), in this capacity your DNS server is the client.
If you host your own internet facing DNS for your company example.com,
when someone out in the world asks for example.com, you're the server.
In other words, think if it like this, when you're asking a question
you're the client, when you're answering, you're the server. When your
DNS server doesn't know the answer, it has to ask someone else, so it's
acting as a client at that point.
When acting as a server (listening for requests from clients) requests
come in to your port 53 (UDP or TCP), you send the response back to the
same IP

ort that asked the question. This only requires a hole or two
in your firewall, 53 (UDP and TCP)
When acting as a client, your DNS server sends an outbound request to
microsoft.com:53, but it sends that request from a randomly assigned
port on your side, in modern versions these requests come from the large
range of ports DNS assigns.
The vulnerability is that previously it was possible to guess the
complete srcIP:srcPORT:dstIP:dstPORT set which allowed an attacker to
spoof responses, and with enough spoofed responses timed when a real
query was likely to be asked, the victim would end up accepting a
spoofed response.
If your DNS server is an authoritative server and doesn't do any
recursive lookups of it's own, you don't need this wide port range to be
open. However, if you're doing recursive lookups, you do need this
range open in your firewall -- However, since there is always an
outbound packet first and the remote server is answering your request,
if your firewall is stateful and allows outbound traffic, you don't
specifically need to open the inbound return path.