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.:
- Outlook Webzugriff
- Der Zugriff auf ihr Postfach mit einem beliebigen Browser nutzt HTTP oder besser HTTPS
-
RPC over HTTP
Outlook 2003 kann seine RPC-Daten auch in HTTP "einpacken" -
Exchange ActiveSync Server
Die Verbindung von mobilen Endgeräten über ActiveSync - Exchange System Manager
Wenn Sie öffentliche Ordner verwalten, dann wird auch dies über HTTP durchgeführt. -
PFDavAdmin
Auch das Hilfsprogramm PFDavAdmin greift per WebDAV (HTTP) auf die Schnittstelle zu.
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:
- DHCP Option 252
Der Client erfragt vom DHCP-Server den Inhalte der Option 252. Das funktioniert auch, wenn der Client selbst eine statisch konfigurierte Adresse hat, denn setzen Sie DHCP nicht nur mit "vergeben von IP-Adressen" gleich. DHCP stet für "Dynamic Host Configuration Protocol" und kann viel mehr als nur IP-Adressen zu verteilen.
Damit Sie unter Windows die Option 252 überhaupt pflegen können, müssen Sie diese im DHCP-Server erst eintragen. - DNS Hostname "wpad"
Auch über DNS kann ein Server gefunden werden, der auf Port 80 eine WPAD.DAT hinterlegt. So sicht der Client u.A: nach "wpad" oder nach "wpad.meindomainsuffix" nach A- SRV und TXT-Einträge, um über einen HTTP-Zugriff von dort die Datei wpad.dat zu laden.
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
- WPAD Minimal
Diese Clients nutzen einfach nur DNS - WPAD Standard
Diese Clients nutzen erst DHCP und dann DNS - WPAD Erweitert
Diese Clients nutzen alle verschiedenen Wege
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) |
![]() |
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:
- wpad.dat erstellen
Zuerst müssen Sie natürlich die Skriptdatei für die Steuerung des Browsers mit einem Editor erstellen. Es handelt sich dabei um JavaScript und im Internet finden Sie sehr viele Beispiele - Webserver mit wpad.dat
Diese Datei könnte natürlich auch auf dem Webserver per Script individuell, d.h. abhängig von der IP-Adresse des Clients, dem angemeldeten Benutzernamen etc. erstellt werden. Aber das würde den Artikel hier übersteigen. Achten Sie beim Webserver darauf, dass die Erweiterung ":DAT" auf "application/x-ns-proxy-autoconfig” zugeordnet ist. - Optional URL in DHCP veröffentlichen
Sie können URL im DHCP-Server für alle Clients bekannt geben. Interessant ist auch hier, das Sie dies pro DHCP-Bereich natürlich abweichend eintragen können. So könnten Sie bestimmte Subnetze einen anderen Proxy zuweisen.
Create an option 252 entry in DHCP
http://www.Microsoft.com/technet/prodtechnol/isa/2004/help/SRSP1_H_Create252.mspx - DNS-Einträge
Da nicht alle Browser die Ermittlung per DHCP unterstützen, sollten Sie einen Alias "WPAD" in ihren DNS-Zonen pflegen, die auf den Webserver mit der WPAD.DAT verweisen.
Create a WPAD entry in DNS
http://www.Microsoft.com/technet/prodtechnol/isa/2004/help/SRSP1_H_WPADentry.mspx
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.
Weitere Links
- WebProxy
- Outlook Webzugriff
- RPC over HTTP
- Exchange ActiveSync Server
- PFDavAdmin
- Gruppenrichtlinien
- Proxy Switcher
- Proxomitron
- Vulnerabilities in DNS and WINS Server Could Allow Spoofing (962238)
http://www.microsoft.com/technet/security/Bulletin/MS09-008.mspx - Web Proxy Auto-Discovery Protocol
http://www.wrec.org/Drafts/draft-cooper-webi-wpad-00.txt - Web Proxy Autodiscovery Protocol
http://en.wikipedia.org/wiki/Web_Proxy_Autodiscovery_Protocol - Beschreibung von NetScape
http://home.netscape.com/eng/mozilla/2.0/relnotes/demo/proxy-live.html - Configuring a WPAD server
http://www.Microsoft.com/technet/prodtechnol/isa/2004/help/SRSP1_CnfWPAD.mspx?mfr=true - Automatic discovery overview ISA Server uses the Web Proxy Automatic
Discovery (WPAD) protocol
http://www.Microsoft.com/technet/prodtechnol/isa/2004/help/ISALink_AutoDiscovery.mspx - Configuring and troubleshooting WPAD
http://davetecheden.blogspot.com/2010/10/configuring-and-troubleshooting-wpad.html - Automatic discovery client configuration
http://www.Microsoft.com/technet/prodtechnol/isa/2004/help/FW_C_AutoDiscFWClnt.mspx - Create an option 252 entry in DHCP
http://www.Microsoft.com/technet/prodtechnol/isa/2004/help/SRSP1_H_Create252.mspx - WPAD entries
http://www.Microsoft.com/technet/prodtechnol/isa/2004/help/SRSP1_CnfWEntry.mspx - Automatic Discovery for Firewall and Web Proxy Clients ISA Server uses
the Web Proxy Automatic Discovery (WPAD) protocol
http://www.Microsoft.com/technet/prodtechnol/isa/2004/plan/automaticdiscovery.mspx - Create a WPAD entry in DNS
http://www.Microsoft.com/technet/prodtechnol/isa/2004/help/SRSP1_H_WPADentry.mspx - Q296591 A Description of the Automatic Discovery Feature
- Q260210 Description of WinSock Proxy Auto Detect Support
- RFC 3040 Netscape, Inc., "Navigator Proxy Auto-Config File Format",
March 1996,
http://www.netscape.com/eng/mozilla/2.0/relnotes/demo/proxy-live.html - WPAD Draft
http://www.cam.ac.uk/WWW/ProxyServer/draft-ietf-wrec-wpad-01.txt - Automatische Proxy Konfiguration
http://wiki.bsdforen.de/index.php/Automatische_Proxy_Konfiguration - Die automatische Proxykonfiguration (wpad) und RSS-Feeds
http://www.realriot.de/tag/wpad/ - Removing WPAD from DNS block list
http://technet.microsoft.com/en-us/library/cc995158.aspx - Proxyeinstellungen “Automatische Suche der Einstellungen” – WPAD
http://technikblog.rachfahl.de/losungen/proxyeinstellungen-automatische-suche-der-einstellungen-wpad/ - 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













