Wer kennt es nicht. Kollegen und Vorgesetzte fragen nach den Verbindungseinstellungen ihres Browsers der Stunde, oder Betriebssystems. Der Hinweis auf das obligatorische Firmen-Wiki wird gerne und ausgiebig ignoriert. Das Diktieren von Zahlen und Punkten macht auch nicht wirklich Spaß. Abhilfe kann hier ein sehr einfaches ‚auto-config‘-Skript schaffen. Es lässt sich einfach über einen internen (oder ggf. externen) Webserver an Clients im Unternehmen ausbringen. Damit müssen Clients nicht mehr manuell angewiesen werden.
Nach wie vor in der Verantwortung des Administrators bleibt allerdings das Ausbringen zu den Clients. In einem finalen Schritt kann das Skript bspw über eine Group Policy im (Windows) Netzwerk verteilt werden.
// Proxy Auto Configuration
// author chris moeser
// version 1.1.1129
// ---- everything not served by a proxy service is called DIRECT
var direct = "DIRECT";
// ---- several services/daemons of delegated listening on different ports
// expecting different protocols
var dele8080 = "PROXY 10.2.4.2:8080"; // HTTP
var dele9090 = "PROXY 10.2.4.2:9090"; // HTTPS
var dele8021 = "PROXY 10.2.4.2:8021"; // FTP
var dele1080 = "SOCKS 10.2.4.2:1080"; // SOCKS v5
function FindProxyForURL(url, host) {
// ---- URLs called by the hostname do not to be proxified
var resolved_ip = dnsResolve(host);
// ---- local URLs do not need to be proxified
if(shExpMatch(url,"*.domain.local/*") ||
shExpMatch(url,"*.domain.local:*") ||
shExpMatch(url,"*.mac/*")) { return direct; }
// ---- stuff called by its hostname e.g. Sharepoint
if(isPlainHostName(host)) { return direct; }
// ---- connected hosts, the one or other way (vpn, etc.)
if(isInNet(resolved_ip, "127.0.0.0", "255.255.255.0") ||
isInNet(resolved_ip, "10.2.3.0", "255.255.255.0") ||
isInNet(resolved_ip, "10.2.4.0", "255.255.255.0") ||
isInNet(resolved_ip, "10.85.17.0", "255.255.255.0") ||
isInNet(resolved_ip, "111.222.333.44", "255.255.255.255") ||
isInNet(resolved_ip, "111.222.333.55", "255.255.255.255")) { return direct; }
// ---- certain domains are provided by e.g. a hosts file hence we like
// to serve them directly
if(dnsDomainIs(host, "ticket.domain.com/*") ||
dnsDomainIs(host, "remote.domain.com/*") ||
dnsDomainIs(host, "some-test.domain.com/*") ||
dnsDomainIs(host, "*.customer-server.com/*")) { return direct; }
// ---- FTP is send to delegate on port 8021
if(shExpMatch(url, "ftp:*")) { return dele8021; }
// ---- HTTP is send to delegate on port 8080
if(shExpMatch(url, "http:*")) { return dele8080; }
// ---- HTTPS is served bei delegated on port 9090
if(shExpMatch(url, "https:*")) { return dele9090; }
// ---- everything else should go through the proxy defined below
return dele1080;
}
Weiterführende Informationen:
http://en.wikipedia.org/wiki/Proxy_auto-config
von
Schreibe einen Kommentar
Du musst angemeldet sein, um einen Kommentar abzugeben.