Wäre es nicht schön, wenn der Proxy Server über ein Skript konfiguriert werden könnte? Und wenn dieses Skript dann auch auf dem Mac vom Cheffe funktioniert?
Moderne Browser können ihre Proxy Server Konfiguration aus der sog. Proxy Auto Config (PAC-) Datei beziehen. Dabei handelt es sich um eine normale Textdatei, die eine JavaScript-Funktion FindProxyForURL(url, host) enthält. Diese hat als Rückgabewert einen Proxy Server - mit der Möglichkeit Failover Proxys anzugeben.
Die PAC-Datei wird im Firmennetzwerk auf einen beliebigen Webserver abgelegt - vorausgesetzt die Clients können diesen ohne Proxyserver erreichen.
Eine PAC-Datei könnte wir folgt aussehen:
function FindProxyForURL(url, host) {
// lokale Netwerknamen -> kein Proxy
if ( isPlainHostName(host) || dnsDomainIs(host, ".company.com")) && !localHostOrDomainIs(host, "www.company.com") )
return "DIRECT";
// wenn der Client aus dem 192.168.1.0 / 26 Bereich kommt
if ( shExpMatch(host, "192.168.1.*" ))
return "DIRECT";
// Alle anderen Anfragen -> Proxy benutzen
// wenn Proxy nicht erreichbar -> direkter Zugriff
return "PROXY 192.168.1.1:8080; DIRECT";
}
return "PROXY 192.168.1.1:8080; DIRECT";
if ( isPlainHostName(host) || dnsDomainIs(host, ".company.com")) && !localHostOrDomainIs(host, "www.company.com") ) return "DIRECT";
isPlainHostName(host) prüft ob im Hostname ein Punkt vorkommt. Kommt kein Punkt vor gibt die Funktion true zurück.
dnsDomainIs(host, domain) gibt true zurück wenn der Hostname Teil der angegebenen Domain.
dnsDomainIs("www.company.com", ".company.com") -> truelocalHostOrDomainIs(host, domain) gibt nur true zurück, wenn der Hostname exakt der Domain entspricht oder der Hostname keine Domainnamen enthält und dem unqualifizierten Teil der Domain (Subdomain) entspricht.
dnsDomainIs("intranet.company.com", ".company.com") -> true
dnsDomainIs("www.web.de", ".company.com") -> false
localHostOrDomainIs("www.company.com", "www.company.com") -> true : Exakte Übereinstimmung
localHostOrDomainIs("www", "www.company.com") -> true : der Host enthält keine Domainnamen und stimmt mit der Subdomain überein
localHostOrDomainIs("intranet.company.com", "www.company.com") -> false : Keine Übereinstimmung
if (url.substring(0, 5) == "http:") return "PROXY httpproxy:80"; if (url.substring(0, 6) == "https:") return "PROXY secureproxy:8080"; if (url.substring(0, 4) == "ftp:") return "SOCKS sockproxy:1080";
if (myIpAddress() == "192.168.1.123") return "DIRECT";

Die PAC-Datei muss im lokalen Netzwerk auf einem Webserver (IIS, Apache, ...) bereitgestellt werden, welcher sich ohne Proxy Server erreichen lässt. Beim Hinzufügen muss darauf geachtet werden, dass man der Dateiendung ".pac" den MIME-Type "application/x-ns-proxy-autoconfig" zuweist.
Der Browser selbst muss noch so konfiguriert werden, dass er die Proxy Auto Config verwendet.
Im Falle des Internet Explorers im Firmennetzwerk lässt sich dies relativ einfach über eine Gruppenrichtlinie umsetzen.
Unter Benutzerkonfiguration > Richtlinien > Windows-Einstellungen > Internet Explorer-Wartung > Verbindung > Automatische Browserkonfiguration wird die AutoProxy-URL angegeben.
Eine weitere Möglichkeit wäre das Web Proxy Autodiscovery (WPAD-) Protocol, auf das wir hier aber (zunächst) nicht weiter eingehen werden.


Sections
Recent Blog Posts
Recent Forum Posts
Recent Comments
Recent Articles
Rate this article