- von Valentin Haenel
- Web Proxy Automatic Discovery für tjener
- WPAD per DHCP
- WPAD per DNS
- DNS oder DHCP
- Welche Einstellungen?
- WPAD per DHCP Einstellungen
- WPAD per DNS
- von Ralf Gesellensetter
- Browserspezifische Einstellungen
- aus der user Mailingliste
von Valentin Haenel
Web Proxy Automatic Discovery für tjener
Als ich an meiner Schule angefangen habe, wurde ausdrücklich ein Linux-Server gewünscht. Nun liefen hier bereits diverse Windows Clients und ich hatte keine Lust die Proxy Einstellungen an jedem client vorzunehmen, zumal die meisten mit dem PC-Wächter von Dr. Kaiser ausgestattet sind. Bisher hatte der Lehrer Rechner die Funktion eines Routers übernommen, und alle Clients, bzw. Browser waren so eingestellt die Proxy Einstellungen für das Netzwerk automatisch zu erkennen. Somit habe ich dieses auch bei tjener so einstellen können, dass der Proxy automatisch gefunden wird. Das nennt sich WPAD oder Web Proxy Automatic Discovery.
Es gibt mehrer Möglichkeiten dies zu implementieren, 2 sind jedoch am wichtigsten. per DHCP oder per DNS.
WPAD per DHCP
So funktioniert es:
- Der Browser schickt eine DHCPINFORM Message per Broadcast an den DHCP Server.
- Dieser antwortet mit DHCPACK und übermittelt dem Browser eine URL oder IP für das Konfigurationsscript.
- (Optional) Bei einer URL fragt der Browser den DNS Server nach der IP des Webservers wo sich das Konfiguartions Script befindet.
- Der Browser holt sich das Konfigurationsscript vom Webserver und findet damit den Proxy.
WPAD per DNS
So funktioniert es:
- Der client bekommt per DHCP einen Domain spezifischen Suffix zugewiesen.
- Anhand dieses Suffix versucht der Browser beim DNS Server eine Namensauflösung von wpad.suffix.
- Ist diese erfolgreich holt er sich vom entsprechenden Webserver das Proxy Konfigurationsscript.
DNS oder DHCP
Ich schlage vor, beides zu verwenden. Angeblich bevorzugt Firefox DNS, und IE DHCP.
Welche Einstellungen?
Es werden Einstellungen im DHCP, DNS und Web Server vorgenommen. Alle diese Services sind bei tjener per default installiert und aktiviert.
WPAD per DHCP Einstellungen
in der Konfigurationsdatei des DHCP
/etc/dhcp3/dhcpd.conf
nach der Zeile:
option option-129 code 129 = text;
folgende Zeile einfügen
option wpad-url code 252 = text;
Dieses ist ein Alias, code 252 wird an den String "wpad-url" gebunden. Um die DHCPACK erfolgreich zu verschicken, muss folgende Zeile innerhalb der group, oder des shared-network stehen, wo sich die Rechner befinden, die den Proxy per DHCP finden sollen.
option wpad-url "http://10.0.2.2/wpad.dat\n";
Die so referenzierte Datei wpad.dat wird nun erstellt. Sie enthält folgendes Konfigurationsscript:
function FindProxyForURL(url, host) {
if (isInNet(host, "10.0.2.0", "255.255.254.0"))
{
return "DIRECT";
}
else
{
return "PROXY 10.0.2.2:3128;"
}
}
und unter dem folgenden Pfad ins Wurzelverzeichniss des Webservers gespeichert werden:
/var/www/wpad.dat
Das script besagt: wenn sich die URL im eigenen subnetz befindet (Intranet) verwende eine direkte Verbindung; andernfalls verwende den Proxy unter 10.0.2.2 port 3128. Jetzt kann man den Browser auf folgende URL richten, um zu prüfen ob das Script gefunden werden kann.
http://10.0.2.2/wpad.dat
Nach einem Neustart des DHCP-Servers
/etc/init.d/dhcp3-server restart
sollte es eigentlich klappen. Es ist noch zu beachten, dass sowohl die Einträge in der DHCP Konfiguration als auch das Script IP-Adressen verwenden. Selbstverständlich könnte man diese auch durch Hostnamen ersetzen. Dadurch hätte man einerseits zusätzliche Flexibilität da man IPs auch ändern könnte. Andererseits entsteht eine zusätzliche Abhängigkeit vom DNS server. Ich habe mich für IPs statt Hostnamen entschieden, da mein tjener sowieso die feste Standard-IP 10.0.2.2 hat.
WPAD per DNS
Wie bei WPAD per DHCP muss das gleiche Proxy Konfigurations Script wie oben erstellt werden. Letztendlich werden nun nur noch Einstellungen am DNS-Server bind9 gemacht.
In der Datei:
/etc/bind/debian-edu/db.10
nach folgender Zeile:
2.2 IN PTR tjener.intern.
die Zeile:
2.2 IN PTR wpad
einfügen.
Ausserdem in der Datei:
/etc/bind/debian-edu/db.intern
nach der Zeile:
; This will often be default gw/router
gateway IN A 10.0.2.2
folgende Zeile einfügen:
; WPAD DNS settings
wpad IN A 10.0.2.2
So nun noch den DNS Server neu laden (/etc/init.d/bind9 reload) und den Browser auf folgende URL richten um zu prüfen obs klappt:
http://wpad/wpad.dat
Der Browser sollte nun das Proxy Konfigurationsscript anzeigen. Nun können browser unter wpad.inter/wpad.dat und unter wpad/wpad.dat das script finden.
von Ralf Gesellensetter
Browserspezifische Einstellungen
Ich konnte die Anleitung nachvollziehen. Wenn ich die Proxyeinstellungen meines Firefox auf "direkte Internetverbindung" stelle (default) wird kein Proxy verwendet. Wenn ich "automatische Proxykonfiguration" wähle, konfiguriert sich der Firefox selbstständig. Das ist schon einmal eine Erleichterung. Ist das das erwünschte Verhalten? Oder gibt es darüber hinaus so etwas wie einen transparenten Proxy? --
RalfGesellensetter 2007-03-20 07:45:54
Ja diese Möglichkeit existiert, nur war beim Sarge schwer zu installieren. Mit Etch wird das hoffentlich leichter, und wird auf einen Transparenten proxy hinauslaufen.
ValentinHaenel 15-05-2007
- Warnung: Firefox-Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=235853 verursacht unter Umständen, dass Firefox während des Ladens von Seiten auf bislang unbesuchten Domänen kurz hängt. Kommentar #43 könnte weiterhelfen, die PAC-Datei verträglich mit dem Mozillabug zu schreiben.
- Hinweis: Möglichwerweise setzt diese WPAD-Konfiguration (Debian Sarge) exim4 außer Betrieb. Beim Versuch, Nachrichten zu versenden (mail USER) erhalte ich
2010-03-04 20:27:33 no IP address found for host wpad.0.10.in-addr.arpa (during SMTP connection from [10.0.2.2])
2010-03-04 20:32:33 no IP address found for host wpad.0.10.in-addr.arpa (during SMTP connection from [10.0.2.2])
Wenn aber hinter "mail" ausdrücklich der Host postoffice.intern angegeben wird, tritt diese Fehlermeldung nicht auf.
aus der user Mailingliste
On Wed, 2010-04-07 08:31:26 +0200, Alexander Schnur <alexander.schnur@education-siemens.com> wrote:
> Hallo,
>
> weiss jemand wie ich einen WPAD- Eintrag im Powerdns erstelle, um die
> Proxydaten automatisch zu =C3=BCbergeben?
>
> Die wpad.dat liegt schon im Ordner /var/www/ .
>
> wpad.dat:
>
> function FindProxyForURL(url, host) {
> if (isInNet(host, "10.0.2.0", "255.255.254.0"))
> {
> return "DIRECT";
> }
> else
> {
> return "PROXY 10.0.2.1:3128;"
> }
> }
>
> Bei mir ist die 10.0.2.1 Proxy.
WPAD geht in zwei Schritten vor. Zuerst wird (via DHCP) versucht, an
die WPAD-Option zu kommen. (In der dhcpd.conf ist das dann (je nach
Version):
option option-252 "
http://wpad.domain.tld/wpad.dat"; option wpad-url code 252 =3D text;
option wpad-url "
http://wpad.domain.tld/wpad.dat"; oder (zu guter letzt...)
option wpad-url "
http://wpad.domain.tld/wpad.dat"; Alternativ (wenn die DHCP-Methode nicht funktioniert hat oder nicht zur Verfügung steht) wird einfach, unter berücksichtigung von "do=
main" und "search" der /etc/resolv.conf, der Host "wpad" gesucht, ergo versucht der Browser das Gegenstück zu:
wobei an den hostname noch die möglichen Domain-Namen angehängt werden.
Wie jetzt speziell Powerdns konfiguriert wird, weiß ich nicht; letztlich mußt Du aber nur einen A oder CNAME RR mit dem Namen "wpad"
anlegen.
MfG, JBG