WPAD - Proxy im Browser einstellen

Achtung:
Ein Windows 2008 DNS Server hat eine Globale DNS Query Block List, die eine Abfrage auf WPAD eventuell verhindert.
Removing WPAD from DNS block list http://technet.microsoft.com/en-us/library/cc995158.aspx
DNS Server Global Query Block List
http://download.microsoft.com/download/5/3/c/53cdc0bf-6609-4841-a7b9-cae98cc2e4a3/dns_server_global_%20query_block%20list.doc

HTTP ist ohne Zweifel sein sehr häufig eingesetztes Protokoll und wird nicht nur von Millionen von "Surfern" täglich unbemerkt genutzt, sondern auch für die Kommunikation mit Diensten. Mit Exchange ist HTTP ebenfalls wichtig da es gleich an mehreren Stellen eingesetzt wird z.B.:

All das funktioniert natürlich immer dann sehr einfach, wenn die Verbindung von Client zu Server direkt erfolgt. Allerdings ist das nur im LAN der Fall. Sobald Firewall dazwischen sind, können Sie davon ausgehen, dass ein HTTP-Proxy zwischen den Systemen sitzt und ihre Verbindung mehr oder minder gut umsetzt.

Proxy Konfiguration

Da sich auch im internen LAN natürlich sowohl interne Systeme ohne Proxy aber auch das Internet über einen Proxy erreichen wollen, muss dies konfiguriert werden. Wenn Sie sich dazu die Einstellungen des Internet Explorers anschauen, dann haben sie hier gleich mehrere Wege:

Diese Dialoge sind natürlich alles andere als übersichtlich und einfach. Allerdings erkennen Sie im mittleren Fenster auch eine "automatische Suche der Einstellungen". Wenn ein Browser schon eine automatische Konfiguration anbietet, dann sollte ein Administrator zumindest wissen wie dies funktioniert um dieses Funktion eventuell zu nutzen. Denn die manuelle Konfiguration ist sehr unflexibel und statisch. Das bedeutet im schlimmsten Fall, dass Sie diese Einstellungen für jedes Betriebssystem (Windows, Linux, Mac etc.) und für jedes Produkt (Internet Explorer, Firefox, Mozilla, Safari etc.) konfigurieren müssen. Zwar können Sie die Einstellungen im Internet Explorer anhand einer Gruppenrichtlinie zentral vorgeben, aber dies funktioniert eben nicht mit Firefox und auch nur mit Systemen ab Windows 2000 die zudem Mitglied ihrer Domäne sind.

Wer übrigens "schnell" den Proxy umschalten will, kann dies mit Proxy Switcher tun. Alternativ kann man natürlich einfach einen "lokalen Proxy" wie Proxomitron einsetzen.

WPAD Funktionsweise

Hinter der automatischen Konfiguration verbirgt sich das Prinzip "WPAD", was soviel wie "Web Proxy Auto Detection" bedeutet und ca. 1996 von NetScape (http://home.netscape.com/eng/mozilla/2.0/relnotes/demo/proxy-live.html) initiiert wurde. Über verschiedene Wege kann damit ein Browser die Information erhalten, wie er ein Script erhalten kann, welches die Antwort auf die Frage "Welchen Proxy soll ich nutzen ?" geben kann. Ein Skript könnte wie folgt aussehen:

function FindProxyForURL(url, host)

{
url=url.toLowerCase();
host=host.toLowerCase();

if (isPlainHostName(host))      // URLs ohne Domainsuffix
  return "DIRECT";

else if (dnsDomainIs(host, "msxfaq.de") ||   // lokale Domäne
         dnsDomainIs(host, "msxfaq.net"))
  return "DIRECT";

else if (isInNet(host, "10.0.0.0","255.0.0.0"))    // Local IP
  return "DIRECT";

else if (shExpMatch(host, "*.bahn.de") ||     // freie Seiten ueber Proxy1
         shExpMatch(host, "*.dasoertliche.de") ||
         isInNet(host, "192.168.0.0","255.255.0.0"))
  return "PROXY proxy1.msxfaq.net:3128";

else
  return "PROXY proxy2.msxfaq.net:8080"; //www Zugriff über Proxy mit Anmeldung
}

Achtung UNICODE
Programme wie Notepad können Dateien auch im UNICODE-Format abspeichern. Mit einer solchen eine PAD-Datei können die wenigsten Clients umgehen.

Der Browser benötigt einfach diese Script, und ruft  die Funktion "FindProxyForURL" mit den Parametern der URL und dem Hostnamen auf. Das Script gibt dem Browser dann als Antwort den Proxy oder "DIRECT" zurück. Dieses Beispiel nutzt nur einen Teil der verfügbaren Funktionen zur Auswertung von URL und HOST. Der Browser muss natürlich das Script selbst erst einmal erhalten. Zwar können die meisten Browser hier auf eine lokale Datei zugreifen, aber viel interessanter ist eine zentrale Bereitstellung z.B.: auf einem Webserver, den der Browser natürlich ohne Proxy erreichen können muss.

Die URL zu diesem Script findet der Browser auf einen der folgenden Wege:

Es gibt noch einige weitere Wege, die in den weiterführenden Dokumentationen beschrieben sind. Nicht jeder Client muss dazu alle Funktionen unterstützen. WPAD selbst unterscheidet die Fähigkeiten in drei Gruppen

DHCP gewinnt
Clients, die DHCP und DNS nutzen, fragen zuerst die DHCP-Optionen ab.

Da aber nur wenige Clients DHCP nutzen, sollten sie immer die DNS-Option konfigurieren, auch wenn Sie hierüber dann nicht pro Subnetz andere WPAD-URLs angeben können. Das können Sie über die Flexibilität der Skriptdatei aber mehr als wett machen. Bei allen mir bekannten Browsern können Sie z.B. nur genau einen Proxy Server eintragen. Die Skriptdatei erlaubt ihnen aber abhängig von IP-Adressen, Namen etc. unterschiedliche Proxyserver zurück zu geben. Das ist z.B. interessant, wenn Benutzer für bestimmte Zielen oder aus anderen Subnetzen einen anderen Proxy verwenden sollen.

WPAD und die Browser

So schön ein Standard ist, so unterschiedlich ist die Umsetzung bei den verschiedenen Browsern. Nur der Internet Explorer scheint die Konfiguration per DHCP zu unterstützen. Alle anderen Produkte beschränken sich auf die Nutzung von DNS oder gar nur auf die Angabe eines Scripts.

Browser Einstellungen DHCP DNS Manuelles Script
Internet Explorer
(6 SP1)
JA Ja Ja
Firefox
(1.5.0.4)
NEIN Ja Ja
Firefox
(2.5)
Firefox 2 Proxyeinstellungen Nein Ja Ja
Opera
(8.5.2)
Nein ? Nein ? Ja
NetScape
(8.1)
NEIN Ja Ja
Safari

oder

Anscheinend ist diese Einstellung ähnlich wie beim Internet Explorer eine Systemeinstellung, von der alle Programme profitieren können. (Aber nicht müssen)

Unbekannt was passiert, wenn keine URL angegeben wird Unbekannt was passiert, wenn keine URL angegeben wird Ja

Die Konfigurationsfenster können sich natürlich von Version zu Version ändern. Browseraufsätze wie z.B. Maxthon oder Avant-Browser erlauben ein schnelles Umschalten zwischen Proxy Servern.

WPAD einrichten

Da sie ja nun wissen, wie die Browser und Clients arbeiten, können Sie sich natürlich auch selbst die Einstellung herleiten. Hier die wesentlichen Schritte:

Wenn Sie an verschiedenen Stellen auch eine Datei "wspad.dat" lesen,  dann handelt es sich hierbei um ein ähnliches Prinzip um den Microsoft "Winsock Client/Firewallclient" des ISA-Servers zu konfigurieren.

ISA 2004 und WPAD

Übrigens unterstützt der ISA-Server die Funktion WPAD von Hause aus. Wenn Sie die Option auf dem ISA einfach aktivieren, dann läuft auf dem ISA-Server ein kleiner DHCP-Server mit, welcher nur die Option 252 an Clients sendet und ein kleiner Webserver, der auf Port 80 eine wpad.dat-Datei bereitstellt, die aus der ISA-Konfiguration dynamisch erstellt wird.

Sie müssen diese Funktion je Netzwerkkarte aktivieren. Sinnvoll ist hier natürlich nur die interne Netzwerkkarte. Gehen Sie dazu in der ISA-Konfiguration auf die Netzwerkverbindung und aktivieren Sie die Einstellung:

Beachten Sie, dass hier ein Portkonflikt mit einem bestehenden Webserver auf dem ISA-Server auftreten kann. Den Eintrag im DNS-Server müssen Sie aber manuell eintragen. Beim TMG 2010 sind die Einstellungen ähnlich

WPAD.DAT mit IIS

Wenn Sie keinen TMG oder ISA nutzen, können Sie natürlich auch einen beliebigen anderen Webserver nutzen. Sie müssen nur sicherstellen, dass er den Client die WPAD.DAT-Datei anonym und mit dem richtigen Application-Type zukommen lässt. Sie müssen dazu in den MIME-Typ die Zuordnung addieren:

dat = application/x-ns-proxy-autoconfig

WPAD und DNS

Wenn Sie den Eintrag "WPAD" in der DNS-Zone gemacht haben, aber der Client diesen Namen nicht findet, dann dürften Sie einen Windows DNS-Server nutzen, in dem die "Global Block List" noch nicht angepasst ist. Microsoft hat als Schutzmechanismus einige Namen im DNS per Default gesperrt. Stellen Sie sich mal vor, ein beliebiger PC würde per dynamischem DNS sich den Namen WPAD eintragen und so alle Clientzugriffe über sich leiten. Mit dem passenden Proxy könnte so ein Client ziemlich viel Unfug anstellen. Daher ist dieser Name (wie auch ISATAP) per Default gesperrt.

Weitere Links

Tags:WPAD Proxy