Softwareentwickler / Software Developer
Bild von einem Raspberry Pi

Pi-Hole | Das Werkzeug gegen Werbung

Viele Leute, vor allem auch in Deutschland, seien von der Werbung im Internet genervt, wie es diese Studie behauptet. Und das kann ich mir auch vorstellen, denn in einigen Situationen erscheint mir Werbung auch als sehr störend. Natürlich gibt es Ad-Blocker als Abhilfe. Aber diese funktionieren immer nur im Browser und meistens auch nur auf dem Computer. Aber was ist, wenn ich über das Internet eine Serie auf dem Fernseher schauen möchte, eine App ohne Werbeunterbrechung auf dem Handy spielen möchte oder aber mehrere Browser benutze und nicht immer neue Ad-Blocker installieren möchte?

Vor Kurzem habe ich durch einen Vortrag in der Berufsschule das Programm “Pi-Hole” kennengelernt. Durch eine recht simple Idee lässt sich hiermit im gesamten Netzwerk die Werbung (fast) komplett elimininieren. Im Folgenden möchte ich einmal erklären, wie genau das funktionieren kann.

Allgemeines zur DNS-Auflösung

Für den Einstieg möchte ich dafür einmal kurz vereinfacht erklären, was genau passiert, wenn man eine URL im Browser eingibt.

  • Anhand der eingegebenen Internet-Adresse muss ermittelt werden, an welchen Server ein HTTP-Request gestellt werden muss, um die gewünschte Webseite anzuzeigen. Dafür wird die IP-Adresse benötigt. Die URL dient lediglich zur Vereinfachung für den Menschen, da diese leichter zu merken ist als eine IP-Adresse, und ist mit dieser direkt verknüpft.
  • Für diese Namensauflösung wird der konfigurierte Name-Server kontaktiert, der die IP-Adresse anhand einer Datenbank mit Zuordnungen von URL und IP-Adresse zurückliefert.
  • Der Rechner weiß nun anhand der IP-Adresse, welcher Server kontaktiert werden muss, und erhält von diesem als Antwort eine HTTP-Response inklusive des Quelltextes, mit dem die Webseite im Browser angezeigt wird.

Beinhaltet eine Webseite Werbung, so wird dies oft mit einem Iframe realisiert. Dazu gibt es in der aufgerufenen Seite einen kleinen Bereich, in dem der Inhalt einer anderen Seite geladen wird. Damit dieser Content der Werbung geladen werden kann, wird im HTML-Quelltext zu dem Iframe eine URL angegeben. Zur Füllung dieses Bereiches laufen erneut die oben genannten Schritte ab, es wird also wieder eine Anfrage an den DNS-Server gestellt etc. Das gleiche gilt aber auch für Skripte, die von externen Seiten geladen werden müssen, die dann Werbung anzeigen.

Wie funktioniert Pi-Hole?

Und hier setzt “Pi-Hole” an. Das Programm muss auf einem Gerät mit einem Unix-Betriebssystem laufen, wofür sich zum Beispiel ein Raspberry Pi gut anbietet. Dieses Gerät trägt man dann in dem Router als primären DNS-Server ein. Damit laufen alle Anfragen zur Namensauflösung über diesen Server. Anhand einer Black-List wird hier nun ermittelt, ob die angefragte Adresse als eine Domain mit Werbe-Inhalten klassifiziert wurde. Diese Liste enthält schon über 100.000 Domains und wird regelmäßig erweitert. Sollte dies nicht der Fall sein, wird die IP-Adresse ermittelt und zurückgegeben, andernfalls wird die Namensauflösung blockiert und die Werbung wird gar nicht erst geladen. In dem Iframe wird anstatt Werbung gar nichts angezeigt.

Diese gelieferte Liste wird nie in der Lage sein, alle möglichen Werbe-Domains zu kennen und eventuell werden auch Webseiten blockiert, auf die man zugreifen möchte. Zu diesem Zweck gibt es eine Black- und eine White-List, die man lokal pflegen kann.

Installation

Die Installation von “Pi-Hole” sollte keine großen Probleme darstellen und ist sehr einfach. Wie schon beschrieben, wird ein Computer mit UNIX-Betriebssystem vorausgesetzt. Zur Installation wird lediglich folgender befehl benötigt:

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

Nach der Installation der benötigeten Pakete wird ein Konfigurator angezeigt, der weitestgehend selbsterklärend ist. Es werden hierbei grundlegende Einstellungen vorgenommen. Da der (in meinem Fall) Raspberry als Server fungieren soll, muss er eine statische IP-Adresse besitzen. Sollte dies noch nicht so sein, kann das über den Installer ganz leicht gesetzt werden. Da Pi-Hole nur einen DNS-Server simuliert, leitet es die Anfragen an einen “echten” DNS-Server weiter. Dieser wird während der Installation auch konfiguriert. Ein weiterer Schritt ist die Auswahl der zu nutzenden Protokolle (IPv4 und/oder IPv6) und abschließend kann das Logging (de-)aktiviert werden.

Sind diese Schritte abgeschlossen, wird das Programm mit allen benötigten Komponenten installiert und gestartet. Um zukünftige Einstellungen leichter vornehmen zu können und auch die Listen zu pflegen, wird automatisch ein Web-Interface zur Verfügung gestellt. Dies ist unter der folgenden Adresse zu erreichen:

http://[IP-Adresse des DNS-Servers]/admin

Vorteile im Gegensatz zu herkömmlichen Ad-Blockern

  • Pi-Hole blockt die Werbung auf allen Geräten im gesamten Netzwerk und nicht nur in einem Browser auf einem einzigen Gerät
  • Webseiten wie zum Beispiel bild.de, die Nutzer von Ad-Blockern ausschließen, werden so umgangen, weil diese den Einsatz von Pi-Hole nicht feststellen können.
  • Bei Ad-Blockern kann es rein theoretisch sein, dass Unternehmen sich auf eine Whte-List kaufen können und ihre Werbung so doch angezeigt wird. Dieses Problem besteht bei “Pi-Hole” nicht. Solange die Domain auf der Black-List auftaucht, wird sie auch geblockt werden.

Fazit

Pi-Hole ist ein sehr nützliches Programm und ist auch einfach zu installieren, wenn man denn ein Rechner mit UNIX-Betriebssystem zur Verfügung hat. Es blockiert Werbung sehr zuverlässig und bietet mit dem Web-Interface auch eine Übersicht über die Anzahl geblockter Domains und vielem mehr, die man sich bei Interesse anschauen kann.

Das Programm blockiert zuverlässig einen Großteil der Werbung. Es muss aber auch gesagt werden, dass nicht jede Form von Werbung auf DNS-Ebene abgefangen werden kann und die Blacklist nie komplett vollständig sein kann, sodass es sich empfiehlt, zusätzlich zu Pi-Hole noch einen Ad-Blocker zu benutzen.

Schreibe einen Kommentar

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