Einleitung

Werbung bzw. Mailvertising ist ein immer größer werdendes Problem im Internet und der Anteil von schadhafter Online-Werbung wird zu einem stetig wachsenden Risiko für den Nutzer. Das ist einer der vielen Gründe, warum immer mehr Nutzer auf AdBlocker zurückgreifen und diese im Browser integrieren.

Diese AdBlocker – wie zum Beispiel uBlock Origin – sind gut und filtern zuverlässig Werbung und Tracker im Browser heraus. Aber hier ist auch eine Schwäche dieser AdBlocker: Sie arbeiten natürlich nur innerhalb eines Browsers. Tracker und Werbung begegnen uns heute aber nicht nur beim Surfen im Internet, sondern auf immer mehr Geräten wie dem Smartphone und dem Smart-TV. Die meisten dieser Geräte bieten aber nicht die Möglichkeit, zusätzliche Programm zu installieren, die dann wiederum Werbung und Tracker aus dem Datenstrom herausfiltern. Diesem Problem hat sich das Projekt Pi-hole: Ein schwarzes Loch für internet-Werbung angenommen.

Pi-Hole

Der Pi-hole ist eine Lösung zum Blockieren von Werbung und Trackern für das gesamte Netzwerk. Das bedeutet, dass der Pi-hole Werbung und Tracker für alle Geräte im Netzwerk blockieren kann. Das Projekt wird seit 2015 von Jacob Samela entwickelt. Der Quellcode ist natürlich auf GitHub einsehbar. Die Basis des Projektes bilden dnsmasq und der Webserver Lighttpd.

Technischer Hintergrund

Die Funktionsweise vom Pi-hole wird hier nicht am Beispiel vom Surfen im Internet erläutert, da durch dieses Szenario der Mehrwert zu einem regulären AdBlocker nicht deutlich wird. Deswegen nutzen wir hier das Beispiel In-App Werbung, welches im Prinzip auch für Smart-TVs gilt.

Viele Apps sind kostenlos verfügbar, da sie durch In-App Werbung finanziert werden. Hierfür wird in eine App durch den Entwickler Werbung integriert. Das Prinzip ist hierbei, dass bei jedem Start der App und / oder während der gesamten Laufzeit der App Werbung von einem Server abgerufen wird und der Entwickler der App für jeden Zugriff auf diesen Server einen gewissen Betrag gutgeschrieben bekommt. Hierfür muss die App eine Verbindung zu einem Server aufnehmen – wir nennen ihn „server1.werbung.de“. Dieser und jeder andere Domainname wird im Hintergrund zunächst in eine IP-Adresse umgewandelt. Der Dienst, der diese Umwandlung vornimmt, heißt Domain Name System (DNS) und ist einer der wichtigsten Dienste im Internet. Hiervon bekommt der Nutzer in der Regel nichts mit, da dem Router entsprechende DNS-Server automatisch vom Provider zugewiesen werden. Nutzt das Smartphone nun nicht den DNS-Server des Routers bzw. Providers sondern den Pi-hole, so wird die Adresse „server1.werbung.de“ mit einer internen Liste des Pi-hole verglichen. Ist dieser Domainname auf der Liste vorhanden, so wird die Übersetzung in eine IP-Adresse unterdrückt und anstelle der Werbung eine kleine Webseite oder ein kleines GIF vom Pi-hole ausgeliefert. Dadurch fließen niemals Daten zwischen dem Smartphone und dem Server „server1.werbung.de“.

Hardware

Für meinen Test habe ich folgende Hardware verwendet:

  • Raspberry Pi 3 Modell B (inkl. WLAN)
  • Offizielles Micro USB Netzteil 2A – 5V für Raspberry Pi 3
  • Offizielles Gehäuse für Raspberry Pi 3 (himbeer / weiß)
  • SanDisk Ultra

Eine externe Tastatur und einen Bildschirm habe ich nicht angeschlossen, da alle Arbeiten nach dem Aufspielen des Raspberry Pi Images über eine Secure Shell (SSH) durchgeführt werden.

Installation

Zunächst habe ich eine Basisinstallation durchgeführt. Das ist die Grundlage für die Installation des Pi-holes. Die Raspberry Pi Foundation bietet ein Rasbian Lite Image auf ihrer Webseite zum Download an. Bei den Lite Images handelt es sich um ein minimales System, das aktuell auf Debian Stable (Jessie) basiert. Ich habe dem Pi-hole anschließend eine feste IP-Adresse innerhalb meines Netzwerkes vergeben.

Die Installation des Pi-hole Systems erfolgt vollautomatisch durch die Eingabe eines einzigen Befehls auf der Konsole des Raspberry Pi’s: curl –sSL https://install.pi-hole.net | bash

Nachdem alle notwendigen Pakete und Abängigkeiten installiert sind, öffnet sich der Konfigurator. Ich habe dabei folgende Auswahl vorgenommen:

  • Select Upstream DNS Provider
    • Custom: 85.214.20.141, 213.73.91.35 (hierbei handelt es sich um die DNS Server von Digitalcourage und Chaos Computer Club – beiden mit Serverstandort in Deutschland – bei denen davon ausgegangen wird, dass sie unzensiert sind und nicht ausgewertet werden.)
  • Select Protocols
    • IPv4: Check
    • IPv6: Check
  • Do you want to use your current network setting as a static address?
    • IP address: 192.168.170.13 (Pi-hole Adresse)
    • Gateway: 192.168.170.1 (mein Router)
  • Do you want to log queries?
    • On: Check

Nachdem die Konfiguration vorgenommen wurde, ist das System über ein Web-Interface erreichbar http://192.168.170.13/admin

Zur normalen Installation habe ich noch die fertige Liste des Projekts piholeparser hinzugefügt. Dieses Projekt stellt ein Tool zur Verfügung mit dem jegliche vorhandene Filterliste in das Pi-hole Format konvertiert werden kann.

Betrieb

Nach der Installation stehen 2,8 Millionen Domains auf der Blacklist. Diese Anzahl hat mich doch erstaunt und ich befürchtete den Pi-hole eindeutig zu restriktiv konfiguriert zu haben. Nach vier Wochen Betrieb kann ich diese Befürchtung aber nicht bestätigen. Im laufenden Betrieb merkt man keinerlei Einschränkungen und der Pi-hole verrichtet zuverlässig seine Arbeit.

Alle gewollten Seiten werden ohne Werbung angezeigt. Stattdessen hat man einfach weiße Flecken an diesen Bereichen. Der Aufruf einer Webseite, die auf der Blacklist steht, führt nicht zuverlässig zu einer Hinweisseite auf der man diese Seite durch die Eingabe des Admin Kennworts direkt auf die Whitelist überführen kann. Stattdessen bekommt man nur die Meldung „Seite nicht verfügbar“. Hier muss man also im täglichen Umgang sensibel sein, dass es nicht zwangsläufig ein Netzwerkproblem gibt, sondern dass die nicht verfügbare Seite eventuell durch den Pi-hole geblockt wird. Wenn man dennoch dauerhaft Zugriff auf diese Seite haben möchte, so kann man den Domainnamen der Whitelist hinzufügen. Alternativ kann man den Pi-hole für eine gewisse Zeit über das Interface deaktivieren.

Fazit

Die Installation des Pi-hole verlief problemlos und ist auch von jemanden durchführbar, der keine großen Erfahrungen hat.

Der Pi-hole blockiert zuverlässig Werbung und Tracker bereits vor einem Kontakt mit dem Anbieter auf DNS-Ebene. Insbesondere Geräte, die nicht durch Zusatzprogramme wie zum Beispiel Adblocker geschützt werden können, profitieren hier vom Pi-hole. Auf allen anderen Geräten, auf denen AdBlocker wie uBlock Origin installieren lassen, sollten diese zusätzlich zum Pi-hole installiert werden. Diese AdBlocker verfügen überzusätzliche Filtermechanismen und Logik und blockieren im Idealfall also alle anderen Gemeinheiten, die der Pi-hole auf DNS-Ebene nicht erfassen kann.

Nach mittlerweile vier Wochen „Freizeitbetrieb“ des Pi-hole in meinem Netzwerk kommt dieser auf stattliche 12245 DNS Anfragen, wovon 7102 DNS Anfragen geblockt wurden. Das sind immerhin 58%. Interessant – wenn auch nicht verwunderlich – ist es, dass unter den Top 10 der geblockten Domains sechs von Microsoft, zwei von Google und jeweils eine von Amazon und Vungle.com stammen.

Es zeigt sich, dass durch den Pi-hole ein Großteil der Werbung und Tracker verschwinden. Dies zeigt sich besonders stark auf dem Smartphone, auf dem plötzlich jede Menge In-App Werbung nicht mehr eingeblendet wird. Durch die Filterung auf DNS-Ebene sparen die Geräte hinter dem Pi-hole sogar einiges an CPU und Rechenpower.

Bildquellen