pihole

Pi-hole – netzwerkweiter Werbeblocker im Heimnetz

Für viele Nutzer des Internets hat sich die Seuche „Werbung“ inzwischen als so nervtötend und belästigend herausgestellt, dass offenbar die meisten einen Werbeblocker auf ihrem Computer installieren. Genaugenommen als weiteres Addon in ihrem Browser (Firefox, Chrome …). Diese Installation muss auf jedem Gerät einzeln erfolgen, was natürlich aufwändig und auch wieder lästig ist (aber offenbar nicht so lästig wie die Werbung selbst). Außerdem ist es bei einigen Geräten gar nicht oder nur sehr schwierig möglich, einen Werbeblocker zu installieren. Das gilt zum Beispiel für Android-Geräte, die man erst rooten müsste oder iPhones, bei denen man erst einen sogenannten Jailbreak durchführen müsste, um überhaupt einen Werbeblocker installieren zu können. Warum ein Werbeblocker ein notwendiger Selbstschutz ist, und keinesfalls auf einigen Seiten abgeschaltet werden sollte, auch wenn manche Webseitenbetreiber das bei jedem Besuch wieder fordern und auch schon Seiteninhalte ausblenden, wenn ein Werbeblocker erkannt wurde, habe ich im Artikel Selbstverteidigung gegen Werbung im Internet näher erläutert. Heute will ich eine elegantere Methode vorstellen, wie man dieser lästigen Plage Herr wird. Beim Pi-Hole handelt es sich um einen kleinen Computer basierend auf Raspberry-Pi (läuft aber auch auf anderer Hardware), der die gesamte Werbung, die im eigenen Heimnetz auf allen Geräten geladen werden soll, in einem schwarzen Loch verschwinden lässt (hole – engl. Loch) – wo sie auch hingehört. Und weil es hier Nachfragen gab: Die Performace von Medienstreams oder anderen Up- oder Downloads wird nicht beeinflusst, lediglich die Auflösung des Seitennamens in eine gültige IP-Adresse kann unter Umständen ein paar Millisekunden länger dauern. Nachdem die IP-Adresse bekannt ist, läuft der Datenstrom nicht mehr über den Pi-Hole.

Und das Beste ist, dieser Werbeblocker funktioniert nicht nur im Browser, sondern auch innerhalb von Apps, die Werbung einblenden oder Tracking-Server erreichen wollen. Sollte man allerdings solche Apps im Einsatz haben, dann wäre es an der Zeit, sich nach Alternativen umzusehen – z.B. im App-Store F-Droid.

Um zu verstehen, wie der Pi-Hole funktioniert, erst mal einen kleinen Exkurs, wie das Laden von Webseiten überhaupt funktioniert:

Wie erfolgt das Anzeigen der Webseite?

  1. Auf dem Rechner wird im Browser eine Adresse eingegeben (oder angeklickt). Diese Adresse ist üblicherweise in Form eines sich mehr oder weniger leicht zu merkenden Namens wie zum Beispiel heise.de
  2. Damit kann der Browser aber noch nichts anfangen, denn er benötigt eine reale Adresse, in unserem Beispiel die IP-Adresse 193.99.144.80 – Woher bekommt der Browser die Information, dass heise.de diese IP-Adresse hat?
  3. Der Rechner, auf dem der Browser läuft, fragt bei seinem verantwortlichen DNS-Server nach. Sofern man nichts manuell geändert hat, ist der Router der verantwortliche DNS-Server. Also bekommt der Router (häufig eine FritzBox) die Anfrage: „Wie ist die IP-Adresse von heise.de?“.
  4. Da der Router beim ersten Anfragen noch nichts weiß, muss er selbst seinen nächsten verantwortlichen DNS-Server fragen. In den Standard-Einstellungen ist der nächste DNS-Server der des eigenen Providers (der, bei dem man seinen DSL-Zugang hat). Sollte dieser DNS-Server die Adresse auch noch nicht kennen, fragt dieser wieder bei einer höhreren Instanz nach. Irgendwann wird einer die Adresse kennen und sie in der Kette zurück reichen. Es kommt also dann die Anwort an den Router: „heise.de hat die IP-Adresse 193.99.144.80„.
  5. Der Router reicht diese Information an den anfragenden Rechner zurück.
  6. Der Browser auf dem Rechner stellt eine Anfrage an die IP-Adresse 193.99.144.80 und bekommt die Webseiteninformation geliefert. Der Browser stellt die Webseite dar.
  7. Nun kommt zusätzlich ins Spiel, das die meisten Webseiten eben nicht nur den eigentlichen Inhalt (von heise.de) darstellen, sondern innerhalb der Webseite auch Verweise auf schöne bunte blinkende Banner und anderer Schrunz enthalten sind. Das lagert auf anderen Servern. Sagen wir zum Beispiel auf blinkender-schrunz.com. Was passiert? Der Browser will wieder vom Router wissen, welche IP-Adresse blinkender-schrunz.com hat. Der Router fragt beim DNS-Server des Providers … das Spiel aus Punkt 4 geht von vorn los.
  8. Und nun schalten wir den Pi-Hole dazwischen! Nehmen wir mal an, er hat im Heimnetz die interne Adresse 192.168.178.222 bekommen.
  9. Im Router wird der Eintrag für den DNS-Server umgebogen auf die IP-Adresse des Pi-Hole, also 192.168.178.222. Der Pi-Hole verwaltet intern eine Liste mit bekannten Werbe- und Tracking-Servern, die regelmäßig automatisch aktualisiert wird.
  10. Kommt nun wieder die Anfrage an denRouter: „Wie ist die IP-Adresse von heise.de„?, dann reicht der Router diese Anfrage nun an den Pi-Hole. Der prüft erst mal, ob heise.de auf der Liste der Werbe- und Tracking-Server steht. Steht die Adresse nicht auf dieser Liste, reicht der Pi-Hole die Anfrage an den nächsten DNS-Server (welcher das ist, wird im Pi-Hole konfiguriert) weiter und bekommt früher oder später eine passende Antwort geliefert, die der Pi-Hole an den Router zurück schickt. Dieser reicht sie an den anfragenden Rechner und dessen Browser stellt die Webseite dar. Bis dahin kein großer Unterschied zu vorher, aber…
  11. Kommt nun wieder die Anfrage an den Router: „Wie ist die IP-Adresse von blinkender-schrunz.com?“, dann reicht der Router diese Anfrage wieder an den Pi-Hole. Der prüft erst mal, ob blinkender-schrunz.com auf der Liste der Werbe- und Tracking-Server steht. Nun stellt sich heraus, JA, blinkender-schrunz.com steht auf der schwarzen Liste. Jetzt antwortet Pi-Hole ohne weitere Nachfragen sofort an den Router, dass die IP-Adresse für blinkender-schrunz.com 192.168.178.222 lautet (also die Adresse des Pi-Hole selbst ist).
  12. Der Router reicht die Information an den anfragenden Rechner zurück und der Browser versucht nun die blinkenden Bildchen von der IP-Adresse 192.168.178.222 zu laden. Da dort auf dem Pi-Hole aber nichts blinkdendes zu finden ist, wird dieser Teil der Webseite (die Werbung) also nicht erfolgreich geladen. Der Rest der Seite aber schon.
  13. Sobald ein Seitenname in eine IP-Adresse aufgelöst wurde, wird diese Information eine gewisse Zeit lang im Speicher gehalten. Das bedeutet, das weitere Anfragen sofort beantwortet werden und nicht erst erneut beim DNS-Server angefragt werden müssen.

OK. Genug mit der Theorie.

Was benötigt man, um sich einen Pi-Hole im Heimnetz zu installieren?

  • einen Raspberry-Pi 3 (ein Raspberry-Pi 2 würde auch reichen, kann man aber nicht wirklich günstiger kaufen)
  • eine Micro-SD-Karte, auf dem das Betriebssystem des Pi-Hole gespeichert wird
  • sinnvollerweise ein Netzwerkkabel (WLAN ginge aber theoretisch auch) und eine freie Netztwerkdose, die mit dem Heimnetz verbunden ist (z.B. am Router).
  • ein Netzteil für den Raspberry-Pi
  • sinnvollerweise ein Gehäuse für den Raspberry-Pi

Installation des Betriebssystems auf dem Pi-Hole

Nachdem man das Betriebssystem Raspbian für den Raspberry-Pi heruntergeladen hat geht es daran, das heruntergeladene Image auf die Micro-SD-Karte zu kopieren. Unter Windows nutzt man dazu den Win32Diskmanager.

Wie man das Image auf die SD-Karte bekommt, habe ich bereits im Detail im Artikel Raspberry Pi – Betriebssystem installieren beschrieben. Wer dazu also weitere Informationen benötigt, kann dort nachlesen. Man sollte bis zum Punkt Betriebssystem auf den aktuellen Stand bringen (im Folgeartikel Installation von FHEM auf einem Raspberry Pi) alles ausführen, so dass wir anschließend ein auf dem aktuellen Stand befindliches Betriebssystem für den Pi-Hole haben.

Pi-Hole installieren

Jetzt kommt die eigentliche Installation des Pi-Hole. Und die ist denkbar einfach:

Man gibt im Terminal einfach folgendes ein:

curl -sSL https://install.pi-hole.net | bash

Das bewirkt, dass das Installations-Skript direkt auf https://install.pi-hole.net ausgeführt wird.

Während der Installation erscheinen ein paar Auswahl-Fenster, die ich im folgenden mit folgenden Parametern gefüllt habe:

  • Select Upstream DNS Provider
    • Custom: 85.214.20.141, 213.73.91.35
  • Select Protocols
    • IPv4: anhaken
    • IPv6: anhaken
  • Do you want to use your current network settings as a static address?
    • IP address: 192.168.178.222 (Adresse des Pi-Hole)
    • Gateway: 192.168.178.1 (IP des Routers [z.B. der FritzBox])
  • Do you want to log queries?
    • On: anhaken

Wer das automatisch vergebene Passwort ändern oder ganz entfernen möchte, gibt im Terminal noch ein:

pihole -a -p neuesPasswort

oder auch

pihole -a -p

um das Passwort ganz zu entfernen.

Anschließend ist die Administrationsoberfläche über den Browser durch Eingabe der URL http://192.168.178.222/admin erreichbar.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.