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.
HTTP im Einsatz
Solange Anwender mit einem PC in der Firma waren und es einen zentralen Übergang zum Internet mit einem Proxy gegeben hat, war die Welt einfach. Per Gruppenrichtlinie oder manuell wurde der Proxy Server und die wenigen Ausnahmen eingetragen. Mittlerweile ist dieser Ansatz aber bei weitem nicht mehr ausreichend.
- "unmanagedClients
Die Zeiten, dass alle Clients zwangsweise Mitglied der Domäne waren und per Gruppenrichtlinien und Anmeldeskript verwaltet wurden, nimmt stetig ab. Es sind nicht nur die iPads und andere Tablets, die im Firmennetzwerk eingebunden sind. Auch Unix und Apples OS-X sind durchaus übliche Clients, die auch konfiguriert werden sollten. - Mehrere Browser
Es ist keineswegs mehr so, dass nur der Internet Explorer zum Einsatz kommt. Chrome, Firefox, Opera, Safari aber auch direkter Programme benötigen Internet Zugriff. Es ist aufwändig für jeden Client die Konfiguration getrennt zu verwalten. - Mobile und VPN
Aber auch der Anteil an Notebooks nimmt immer mehr zu und so sind Anwender nicht mehr an einen Ort gebunden, sondern können an unterschiedlichen Stellen per Kabel oder WLAN oder vielleicht UMTS und VPN online sein. Die Proxy-Konfiguration muss sich also dynamisch und schnell an die Netzwerke anpassen. Ein statischer Proxy wird den Vertriebler unterwegs blockieren. - Proxy-Ausnahmen
Immer mehr Firmen nutzen über private Leitungen Dienste in einer Cloud, die nicht über "das Internet" erreichbar sein sollen aber dennoch HTTP nutzen. Das werden immer mehr Ausnahmen auf dem Client, die schwer zu pflegen sind. Auch diese Liste der Ausnahmen sollte dynamische zu pflegen sein - 1..n Proxies
Überlegungen der Lastverteilung aber auch mit mehreren Proxy-Servern in verschiedenen Standorten oder für bestimmte Ziele sind für statische Konfigurationen nicht länger abbildbar. Hier muss eine Logik etabliert werden, bei der der Client möglichst den passenden Proxy anhand der Ziel-URL oder Zieldomäne nutzt. So könnten z.B. bestimmte allgemein zugängliche Seiten (Reiseplanung, Hotelplanung etc.) über einen Proxy ohne Authentifizierung und Logging geleitet werden.
Es gibt also mehr als nur einen Grund die Konfiguration eines Proxy Servers auf den Clients nicht länger statisch in der Konfiguration zu hinterlegen. Und genau dazu ist WPAD gedacht.
Hinweis:
WPAD ist nicht dazu, Berechtigungen zu steuern.
Ein Anwender kann WPAD immer umgehen. Wer also
sicherstellen will, dass nur bestimme Personen
bestimmte Ziele im Internet erreichen dürfen,
muss dies über AccessListen auf Proxy und
Firewall steuern.
HTTP mit Exchange, Outlook, Office 365 u.a.
Mit Exchange ist HTTP ebenfalls wichtig da es gleich an mehreren Stellen eingesetzt wird
- Outlook Webzugriff
- Der Zugriff auf ihr Postfach mit einem beliebigen Browser nutzt HTTP oder besser HTTPS
-
MAPI over HTTP
Seit Exchange 2013 kann Outlook 2010 und höher auch direkt MAPI/HTTP sprechen -
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.
ACHTUNG:
Bei der Konfiguration der WPAD-Datei im Betriebssystem können Sie mit Outlook und jedem anderen WINHTTP-Client auf
den Fehler laufen, dass die WPAD-Datei nicht genutzt wird.
Dies ist immer dann der Fall, wenn die WPAD-Datei nicht per
HTTP von einem Webserver gezogen wird, sondern statisch als
Datei angegeben wird. Beim "Download" von einer "file://"-URL
kommt kein Contenttype mit.
„In order to fix the previous problems (caused
by a known Outlook bug) we had to move from manual proxy
settings to using Auto Detect with a wpad.dat file.
Therefore the next step was to try doing the polar opposite
and set it to manual instead, which worked successfully.
That would be the end of the story but as mentioned above we
need auto configuration für Outlook so more detailed
investigation was required to find a fix that worked with
the auto detect proxy method.“
Quelle
https://gshaw0.wordpress.com/2014/12/01/solving-office-365-office-2013-proxy-sign-in-errors/
“Also note that Outlook uses WinHTTP.
Meaning in the proxy configurations, you should use http:// für he proxy script file. File:// will cause different types
of issues.
WinHTTP itself has no support für file:// URL’s (you can’t
access a file:// URL with WinHTTP regardless of whether it’s
a PAC file or normal file).
So, file:// URL’s für a PAC file will not work für use with
Outlook or ANY WinHTTP client (there are many others).
Quelle
https://social.technet.microsoft.com/Forums/office/en-US/ef29b9ff-55ac-4d4e-a03d-66dddd122bde/outlook-and-wpad-proxy-configuration“
Nutzen Sie daher bitte eine HTTP-Urls oder gleich die Konfiguration per DNS oder DHCP.
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.
- Optimizing performance with automatic proxy-configuration
scripts (PAC)
https://docs.microsoft.com/en-us/troubleshoot/browsers/optimize-pac-performance
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 |
|
JA |
Ja |
Ja |
Firefox |
|
NEIN |
Ja |
Ja |
Firefox |
|
Nein |
Ja |
Ja |
Opera |
|
Nein ? |
Nein ? |
Ja |
NetScape |
|
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/Firewall-Client" des ISA-Servers zu konfigurieren.
TMG/ISA 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. Im gleichen Fenster auf einer andere Karteikarte können Sie dann die Details weiter einstellen:
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
- Proxyeinstellungen
“Automatische Suche der
Einstellungen” – WPAD
http://technikblog.rachfahl.de/losungen/proxyeinstellungen-automatische-suche-der-einstellungen-wpad/#comment-2964
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.
- Creating a WPAD entry in DNS
http://technet.microsoft.com/en-us/library/cc995062.aspx - Removing WPAD from DNS block
list
http://technet.microsoft.com/en-us/library/cc995158.aspx
Weitere Links
- WebProxy
-
IE Zonen
Wichtige Einstellungen für die automatische Authentifizierung etc. - 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 für 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 - Optimizing performance with automatic proxy-configuration scripts
(PAC)
https://docs.microsoft.com/en-us/troubleshoot/browsers/optimize-pac-performance