Pi-Hole: WPAD deaktivieren

Tutorials Nov. 28, 2020

Das Pi-Hole kennen die meisten wahrscheinlich schon. Der Dienst fungiert als netzwerkweiter Werbeblocker. So ist das ganze Netzwerk werbefrei und es muss nicht auf jeden Gerät ein AdBlocker installiert werden.

Im Webinterface des Pi-Holes lässt sich anzeigen, welche DNS-Anfragen am häufigsten blockiert werden. Vorallem finden sich bei mir hier die üblichen Tracking-URLs und die Anfragen von Geräten, die munter "nach-hause" telefonieren.

Webinterface des Pi-Holes

Der WPAD Request

Eine Adresse fiel mir mit der Zeit jedoch auf. Ein paar Computer im Netz versuchten die ganze Zeit, die Adresse wpad.fritz.box aufzurufen. In 24 Stunden kam so eine 5-stellige Zahl an Anfragen zusammen. Wie sich herausstellte handelt es dabei um die automatische Proxyserver-Konfiguration von Windows. Die Subdomain wpad wird für Web Proxy Autodiscovery Protocol verwendet. Das Protokoll soll Web-Browsern helfen, eine gültige Proxy-Server Konfiguration im Netzwerk zu finden. In meinem Netzwerk habe ich jedoch - wie die meisten - garkeinen Proxy-Server im Einsatz. Die enorme Anzahl an WPAD-Requests ist also ziemlich unnötig und spammt den Log im Pi-Hole voll.

Ein potenzielles Sicherheitsrisiko

Das WPAD-Protokoll kann tatsächlich ein Sicherheitsrisiko darstellen. Der Client verwendet einfach den Hostnamen seines Netzwerks oder Routers, bei einer FRITZ!Box eben fritz.box und hängt die Subdomain wpad vorne an. Er fragt dann die Datei /wpad an. Wird keine gültige Konfiguration gefunden, geht der Client folgende Liste durch:

http://wpad.fritz.box/wpad.dat
http://wpad.box/wpad.dat
http://wpad/wpad.dat

Die neue Top-Level-Domain .box ist schon seit 2016 verfügbar. Die kritischen Domains wpad.box und fritz.box sind allerdings noch nicht vergeben.

Einfach eine eigene wpad.dat ausliefern

Die Lösung ist simpel: Man liefert einfach eine eigene, gültige wpad.dat aus. Dazu kann man das Pi-Hole nutzen.

Schritt 1: Alle wpad-Domains auf das Pi-Hole leiten

Zuerst teilen wir dem Pi-Hole mit, das es für alle möglichen wpad Adressen zuständig ist. Dazu trägt man einfach folgende Zeile in "/etc/hosts" und in "/etc/pihole/lan.list" ein:

192.168.178.86 wpad.fritz.box wpad.box wpad.com wpad.de wpad

Die IP-Adresse 192.168-178.86 muss natürlich du die IP-Adresse des Pi-Holes ersetzt werden. So ist sichergestellt, das alle wpad Domains nur lokal aufgelöst werden. Jetzt müssen wir noch dafür sorgen, das das Pi-Hole eine wpad.dat ausliefert.

Schritt 2: Einen weiteren VirtualHost anlegen

Das Pi-Hole nutzt den Webserver lighttpd. Diesen können wir so konfigurieren, das er eine wpad.dat ausliefert. Dazu ergänzen wir die Konfigurationsdatei "/etc/lighttpd/external.conf" um folgende Zeilen:

$HTTP["host"] =~ "wpad" {
server.document.root = "/var/www/wpad"
mimetype.assign = (
".dat" => "application/x-ns-proxy-autoconfig",
".pac" => "application/x-ns-proxy-autoconfig"
)
}

Dies sorgt dafür, das alle Domaims die wpad enthalten, in das Verzeichnis /var/www/wpad geleitet werden. Nun müssen wir nur noch unsere wpad.dat anlegen.

Schritt 3: wpad.dat anlegen

Wir navigieren in das Verzeichnis /var/www/wpad und legen dort die Datei wpad.dat an. Der Inhalt ist simpel und gibt nur an, das es keinen Proxy-Server gibt:

function FindProxyForURL(url, host) {
return "DIRECT";
}

Wir erstellen noch eine zweite Datei mit dem Namen proxy.pac und fügen die selben Zeilen erneut ein.

Als letztes starten wir noch den Webserver neu.

sudo service lighttpd restart

Das wars. Die Proxy-Konfiguration im Netzwerk ist nun sicher.

Tags

Theo W.

Hier schreibe ich über alles Mögliche zu den Themen Technik und Gadgets.

Bloggerei.de TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste