Automatische Proxy-Konfiguration
Automatische Konfiguration des Proxys Squid auf Windows- (2K, XP) und KDE-Clients.
Einleitung
Die Konfiguration ist recht aufwendig, da die automatische Konfiguration von verschiedenen Programmen unterschiedlich abgefragt wird. Man benötigt für eine Domäne einen lauffähigen Squid (OK, logisch), Apache, Bind und DHCPD. Die folgende Konfiguration läuft auf dem Server mit folgenden Diensten:
- isc-dhcpd-V3.0.2
- squid-2.5.10_6
- apache-2.0.54_2
- bind 8.3.7
Bei entsprechender Einstellung werden automatisch konfiguriert:
- Konquerer (KDE > 3.2)
- Firefox (> 1.03)
- Windows Explorer (> 5.5)
Anderes habe ich nicht getestet; es kann also vieles weitere funktionieren.
1. Das Script
Als erstes benötigt man ein Script, das man bei der Proxy-Konfiguration des Webbrowsers als 'Automatic proxy configuration URL' angeben kann. In kurzer Form sieht dies folgendermaßen aus:
function FindProxyForURL(url,host) { if (isPlainHostName(host) || dnsDomainIs(host, ".DOMAIN")) { return "DIRECT"; } else { return "PROXY NAME.DOMAIN:PORT"; } }
Anmerkung:, NAME.DOMAIN und PORT sind komplett durch eigene Bezeichnungen zu ersetzen. Wenn der Proxy z.B. unter example.com auf Port 3128 erreichbar ist, steht in der Zeile
return "PROXY example.com:3128";
Dieses Script hat natürlich einige Mängel, man sollte Ausnahmen für Rechner und Webseiten angeben, aber für den ersten Test reicht das.
Dieses Script speichert man als proxy.pac im Document Root des Webservers der eigenen Domäne ab. Dieses Script darf nur so eigenständig in dieser Datei stehen (und z.B. nicht in einer Webseite eingebaut werden) und muss laut Beispiel unter http://my.dyndns.com/wpad.dat erreichbar sein!
2. Eintrag im DNS
Der Webserver, der unter http://DOMAIN erreichbar ist, sollte einen cname zu wpad.DOMAIN bekommen. Im Zonenfile steht also:
wpad IN CNAME DOMAIN.
Damit kann dann der Webserver konfiguriert werden:
3. Konfiguration des Webservers
Die Konfiguration in der httpd.conf des Apaches sieht folgendermaßen aus:
<VirtualHost IP:80> ServerAdmin webmaster@DOMAIN DocumentRoot PATH ServerName DOMAIN ErrorLog /var/log/apache/DOMAIN.error_log TransferLog /var/log/apache/DOMAIN.access.log ServerAlias wpad.DOMAIN Redirect /proxy.pac http:///DOMAIN/wpad.dat <VirtualHost>
In die mime.types muss folgende Zeile eingefügt werden:
application/x-ns-proxy-autoconfig dat pac
4. Konfiguration des DHCP-Servers
In der dhcpd.conf vom isc-dhcpd steht folgendes:
option wpad-curl code 252 = text; shared-network NETZ { authoritative; subnet IP netmask 255.255.255.0 { [...] option wpad-curl "http://DOMAIN/wpad.dat"; [...]
Das war es dann schon. Nachdem die Dienste reloaded oder restarted wurden, sollte alles automatisch konfiguriert werden.