DirectAccess zerstört DNSSEC

Ich hatte gerade im Lab mit DirectAccess gespielt. Da bietet es sich an, auch mal zu schauen, was passiert, wenn DNSSEC dazu kommt. Das Ergebnis ist eine faustdicke Überraschung.

Neue Zone

Als ersten lege ich eine neue Zone sec.adatum.com mit DNSSEC an. Das ist einfach: Einfach an der Zone im Kontextmenü DNSSEC auswählen. Es bietet sich an, die Trust Anchors innerhalb der Domain gleich mit zu verteilen.

Diese Zone bekommt einen WWW Eintrag, der auf den Webserver im Lab verweist. Und das tut dann auch.

Die Antwort besteht aus drei Teilen:

PS dns> Resolve-DnsName -DnssecOk -Name www.sec.adatum.com

Name                           Type   TTL   Section    NameHost
----                           ----   ---   -------    --------
www.sec.adatum.com             CNAME  3600  Answer     www.adatum.com

Name        : www.sec.adatum.com
QueryType   : RRSIG
TTL         : 3600
Section     : Answer
TypeCovered : CNAME
Algorithm   : 8
LabelCount  : 4
OriginalTtl : 3600
Expiration  : 5/19/2017 3:41:34 PM
Signed      : 5/19/2017 8:41:34 AM
Signer      : sec.adatum.com
Signature   : {39, 75, 194, 190...}

Name       : www.adatum.com
QueryType  : A
TTL        : 3600
Section    : Answer
IP4Address : 172.16.0.10

Auch auf dem Client, der irgendwo remote steht, tut es anstandslos. Hier gibt es aber nur zwei Teile in der Antwort:

PS client>  Resolve-DnsName -DnssecOk -Name www.sec.adatum.com

Name                           Type   TTL   Section    NameHost
----                           ----   ---   -------    --------
www.sec.adatum.com             CNAME  600   Answer     www.adatum.com

Name       : www.adatum.com
QueryType  : AAAA
TTL        : 600
Section    : Answer
IP6Address : fd68:d6bf:56b6:7777::ac10:a

Man sieht schön die Wirkung von DNS64 und das Ergebnis überzeugt:

Pinging www.adatum.com [fd68:d6bf:56b6:7777::ac10:a] with 32 bytes of data:
Reply from fd68:d6bf:56b6:7777::ac10:a: time=1ms
Reply from fd68:d6bf:56b6:7777::ac10:a: time=1ms

Allerdings wurde keine DNSSEC Validierung durchgeführt, wie man an dem Fehlen der RRSIG Antwort bemerkt haben könnte.

Validierung

Die Validierung von DNSSEC kann man per Gruppenrichtlinie erzwingen.

Technisch gesehen wird hier per Policy Based DNS, die Validierung pro Domain eingefordert. Die Trust-Anchors wurden ja schon verteilt.

Nach Verteilung der Gruppenrichtlinie auf den Client stellt sich die Situation ganz anders dar:

PS client>  Resolve-DnsName -DnssecOk -Name www.sec.adatum.com
Resolve-DnsName : www.sec.adatum.com : Unsecured DNS packet

Konsequenterweise funktioniert dann auch nichts mehr:

C:\> ping www.sec.adatum.com
Ping request could not find host www.sec.adatum.com. Please check the name and try again.

DNSSEC hat also erfolgreich DNS64 erkannt und die Modifikation verhindert!

Und IPv6?

Nehmen wir einen IPv6 Host im lokalen Netz an:

PS dns> Resolve-DnsName -DnssecOk -Name test.sec.adatum.com -type aaaa

Name                                           Type   TTL   Section    IPAddress
----                                           ----   ---   -------    ---------
test.sec.adatum.com                            AAAA   3600  Answer     2001:db8::1

Name        : test.sec.adatum.com
QueryType   : RRSIG
TTL         : 3600
Section     : Answer
TypeCovered : AAAA
Algorithm   : 8
LabelCount  : 4
OriginalTtl : 3600
Expiration  : 5/19/2017 4:02:43 PM
Signed      : 5/19/2017 9:02:43 AM
Signer      : sec.adatum.com
Signature   : {162, 99, 191, 91...}

Die Antwort besteht aus zwei Teilen, dem AAAA und dem RRSIG. Das tut. Nun zur Sicherheit noch einen nicht existierenden Namen.

PS dns> Resolve-DnsName -DnssecOk -Name test3.sec.adatum.com
Resolve-DnsName : test3.sec.adatum.com : DNS name does not exist

Aber tut es auch auf dem Client? Schließlich muss ja keine Umschreibung durch DNS64 stattfinden.

PS client>  Resolve-DnsName -DnssecOk -Name test.sec.adatum.com

Huch? Das tut nicht? Es fehlt auch komplett eine Antwort! Ist das denn von DNSSEC bestätigt?

PS client>  Resolve-DnsName -DnssecOk -Name test3.sec.adatum.com
Resolve-DnsName : test3.sec.adatum.com : Unsecured DNS packet

Nein, der DirectAccess-Resolver macht DNSSEC kaputt.

Richtig kaputt.

Post a comment

Related content