Windows Server 2008 DNS und WPAD

In den meisten Netzwerken, in denen ein ISA Server als Proxy Server dient, wird auch WPAD verwendet. Eine an sich einfache und gut funktionierende Methode. Ne Kleinigkeit im ISA einrichten und einen WPAD-Eintrag in der internen DNS-Zone setzen. Fertig. Bei Windows 2000 Server und Windows Server 2003 ist das wirklich einfach und schnell.

Wer jedoch einen Windows Server 2008 DNS-Server betreibt und nicht die dazugehörende Doku gelesen hat, wird feststellen, dass WPAD nicht mehr funktioniert, sobald der betreffende Client eben den 2008er DNS abfragt. Wenn man dann versucht, von diesem Client aus den WPAD zu pingen, bekommt man:

C:\Users\Administrator>ping wpad
Ping request could not find host wpad. Please check the name and try again.

Auch ein ping wpad.domain.tld schlägt fehl. OK, als nächstes wird man ein nslookup versuchen. Auch damit bekommt man mitgeteilt, dass wpad nicht existiert. Alles andere lässt sich pingen beziehungsweise auflösen. Ein Blick in den DNS-Server ergibt allerdings, dass da sehr wohl ein A-Record existiert.

Der Grund für die Nichtauflösbarkeit liegt am Windows Server 2008 DNS-Dienst und der Windows Server 2008 DNS block list:

Protocols such as WPAD use the DNS dynamic update feature, which enables DNS client computers to register and dynamically update resource records when clients change a network address or host name. The dynamic update feature makes clients vulnerable to hijacking. For example, a malicious user could register a computer as a WPAD server and direct all WPAD queries to it. No system administrator intervention is required.

The DNS Server role in Windows Server 2008 introduces a global query block list to reduce this vulnerability risk.

OK, also ein Sicherheitsfeature ;-)

Da in dem beschriebenen Fall aber WPAD benötigt wird, muss eine kleine Konfigurationsänderung am DNS Server vorgenommen werden. Man sollte das aber wirklich auch nur dann tun, wenn es nicht anders geht.

Folgende Kommandozeilenbefehle stehen auf dem entsprechenden Windows Server 2008 zur Verfügung:

dnscmd /info /enableglobalqueryblocklist

Damit kann der Status der block list überprüft werden. Ist das Ergebnis 1, ist die Liste aktiv.

dnscmd /info /globalqueryblocklist

Dieser Befehl zeigt die aktuellen Einträge der block list an. Standardmäßig sollte das Ergebnis wie folgt aussehen:

Query result:
String:  wpad
String:  isatap

Command completed successfully.

dnscmd /config /enableglobalqueryblocklist 0

Damit wird die block list deaktiviert.

Nach einer Änderung muss der DNS-Serverdienst neu gestartet werden.

Anschließend kann WPAD wieder wie gewohnt aufgelöst und vom Browser verwendet werden.

Diese Änderung muss an jedem DNS-Server vorgenommen werden, der WPAD-Informationen bereit hält. Sind in einem AD mehrere AD-DNS-Server vorhanden, müssen sie alle entsprechend behandelt werden. 

Weitere Informationen hierzu:

Viele Grüße
Dieter


Dieter Rauscher
MVP Forefront