Pi-hole: Das schwarze Loch für Werbung im I

Adblocker mit Pi-hole: Das schwarze Loch für Werbung im Internet

Sharing is caring! Teile diesen Beitrag

Die Artikelserie zum Raspberry Pi
Teil 1 (Link): Der Raspberry Pi 3 – der Alleskönner im Scheckkartenformat
Teil 2 (Link): Installation und Konfiguration von Raspbian Stretch auf Raspberry Pi 3
Teil 3 (Link): Fernzugriff per SSH und VNC auf den Raspberry Pi
Teil 4 (Link): Installation PiVPN – Den Raspberry Pi einfach zum VPN-Server ausbauen
Teil 5 (Link): OpenVPN/PiVPN Benutzerverwaltung auf dem Raspberry Pi
Teil 6 (Link): Installation und Konfiguration von Raspbian Stretch Lite auf Raspberry Pi 3 (ohne Desktop)
Teil 7 (Link): etherwake – Der Raspberry Pi als Wake On LAN-Server
Teil 8: Dieser Artikel
Teil 9 (Link): Die private Cloud auf dem Raspberry Pi – Seafile Server auf Raspian Stretch Lite installieren

Schluss mit Werbung im Internet!

Ok, das liest sich jetzt vielleicht etwas reißerisch, aber es trifft den Nagel beinahe auf den Kopf. Fast überall im Netz wird man mit Werbebannern überflutet. Den einen oder anderen lasse ich mir gerne gefallen, schließlich wollen die Seitenbetreiber auch ein paar Euro verdienen und auch ich baue mittlerweile hier und da einen Patnerlink zu Amazon in meine Artikel ein. Aber die Masse an immer auffälligeren und nervigeren Werbebannern ist es, die nervt.

Eine Möglichkeit sind Werbeblocker für den Browser. Die laufen dann aber auch nur auf einem Gerät und in einem Browser, alle anderen Geräte und Browser sind außen vor.

Die meiner Meinung nach viel elegantere Lösung ist, Werbung möglichst zentral im heimischen Netzwerk zu blockieren. Und genau da setzt Pi-hole (offizielle Webseite) an.

Die Vorteile dabei liegen auf der Hand: Die Werbung wird nicht geladen, also auch nicht angezeigt. Dadurch beschleunigt sich auch der Seitenaufbau. Außerdem werden Werbebanner auch immer öfter dafür genutzt, schädliche Programme zu verteilen. Siehe dazu den Artikel Malvertising auf Wikipedia.

Was macht Pi-hole? Leicht und verständlich erklärt.

Da das hier ja ein Blog eher für Technik-Laien ist, möchte ich gar nicht allzu sehr in Detail gehen, aber zumindest eine kurze Erklärung geben, was Pi-hole genau macht.

Pi-hole blockiert die Domains, über die Werbung ausgeliefert werden. Da das oftmals immer wieder die gleichen Werbenetzwrke sind, fällt das relativ leicht. Das Prinzip ist das ähnlich wie beim gewohnten Werbeblocker des Browsers. Pi-hole pflegt selbstständig eine Liste mit zu blockierenden Domains und alles, was von diesen Domains kommt, wird gefiltert und nicht an den Benutzer weitergeleitet.

Der Clou ist, dass ihr dafür nichts(!) mehr an euren Endgeräten tun müsst. Egal ob Desktop-PC, Notebook, Smartphone oder auch der ans Netz angeschlossene Fernseher. Internetwerbung wird zum größten Teil gefiltert und erreicht euch daher nicht mehr.

Sollte Pi-hole was übersehen, könnt ihr es manuell in eine Blacklist eintragen. Wird eine Seite fälschlicherweise blockiert, schaltet ihr sie in der Whitelist frei.

Um euch zu verdeutlichen, wie das Blocken von Werbung aussehen kann, habe ich hier mal zwei Screenshots eins Spiegel-Online-Artikels gemacht. Der erste Screenshot zeigt die Seite mit geschalteten Werbebannern, für den zweiten habe ich Pi-hole aktiviert. Wie ihr seht, verschwinden die Werbebanner einfach.

Habt ihr Lust auf einen kleinen Vorgeschmack? Schaut euch die Screenshots an und vergleicht.

Voraussetzungen

Was braucht ihr, um euch Pi-hole zu installieren? An Hardware nichts weiter als einen funktionierenden Raspberry Pi mit z. B. einem installierten Raspbian Desktop (Artikel zur Installationsanleitung) oder Raspbian Lite (Artikel zur Installationsanleitung). Und richtig gut: Pi-hole funktioniert auch perfekt auf dem gleichen Raspi, auf dem ihr vielleicht schon PiVPN (zur Installationsanleitung für PiVPN) installiert habt.

Solltet ihr noch keinen oder einen Raspi zu wenig haben, dann schlagt doch gleich bei Amazon zu: Raspberry Pi 3 Official Desktop Starter Kit (16GB, White) (*)

* Bei dem Link handelt es sich um einen Amazon Affiliate-Link. Für euch ändert das nichts am Preis, aber ich erhalte von Amazon eine kleine Provision.

Log geht’s mit der Installation von Pi-hole

Euer Raspberry Pi ist fertig installiert und läuft? Prima, dann loggen wir uns über SSH ein und legen mit der Installation von Pi-Hole los. Keine Sorge, die Installation ist wirklich einfach und schnell erledigt.

Wie immer vor der Installation neuer Programme unter Linux sollte man sein System auf den aktuellen Stand bringen. Das machen wir mit den gewohnten Befehlen

Zuerst wechseln wir auf eine Root-Shell und starten dann die Installation von Pi-hole. Das passiert einfach mit den Befehlen

Wichtig: Ihr solltet solche Kommandos nicht unbedacht auf der Konsole/Shell eines Linux ausführen!
Das Kommando lädt ein Skript von der Webseite pi-hole.net und führt es mit Administrator-Rechten auf eurem System aus. Darin versteckt könnte also so ziemlich alles sein, auch schadhafter Code. In unserem Fall, also dem des Installationsskripts von Pi-hole, ist das aber in Ordnung. Wenn ihr prüfen wollt, was das besagte Skript macht, öffnet ihr den Installations-Link in eurem Browser und schaut euch den Programmcode an.

 

Ihr müsst das Kommando übrigens nicht von Hand eingeben.
Kopiert den Befehl einfach mit Rechtsklick + Kopieren bzw. Strg + C in eure Zwischenablage. Danach wechselt ihr in das Putty-Fenster und macht einfach einen Rechtsklick auf den schwarzen Bereich des Fensters. Der kopierte Befehl wird durch den Rechtsklick direkt eingefügt, ihr müsst nur noch mit Enter bestätigen.

Während der ersten Schritte werden euch diverse Info-Screens angezeigt und ein paar wenige Einstellungen müssen vorgenommen werden.
Ihr müsst auswählen, ob Pi-hole über ein kabelgebundenes Netzwerk oder über WLAN arbeiten soll. Da LAN (also mit Kabel) immer schneller und zuverlässiger arbeitet als WLAN läuft der Raspberry Pi bei mir darüber.
Die Reihenfolge der DNS-Server passt für die allermeisten Benutzer so, also belasst sie auf den Standardeinstellungen, es sei denn, ihr wisst genau, was ihr tut!
Danach legt ihr fest, ob Pi-hole IPv4 und/oder IPv6-Traffic blockieren soll. Das belasst ihr am besten ebenfalls auf den Standardeinstellungen, nämlich beides aktiv.
Im Anschluss werdet ihr gefragt, ob die derzeit vermutlich per DHCP zugewiesene IPv4-Adresse (in meinem Fall die 192.168.1.110) als statische Adresse genutzt werden soll. Um hinterher Probleme zu vermeiden solltet ihr das definitiv tun, also hier „Ja“ anklicken!
Die Frage, ob ein admin interface installiert werden soll, solltet ihr ebenfalls mit ja beantworten. Nur so könnt ihr euch auf der praktischen Web-Oberfläche einloggen, um euren Pi-hole später zu administrieren. Tut ihr das nicht, müsst ihr sämtliche Konfigurationsarbeiten auf der Shell durchführen, was es deutlich komplizierter macht.
Die Log Queries solltet ihr ebenfalls aktivieren, damit ihr euch auf der Web-Oberfläche Statistiken und Graphen zur Arbeit von Pi-hole ansehen könnt.

Im Anschluss laufen noch ein paar Checks durch. Lasst euch von dem einen oder anderen roten X nicht beunruhigen. Die beiden Punkte mit „Check for existing repository“ sind keine Fehler, auch wenn es so aussieht.
Danach startet die eigentliche Installation und nachdem die erfolgreich durchgelaufen ist, bekommt ihr noch die URL eures Admin-Interfaces für den Browser-Zugriff und ein zufällig erstelltes Kennwort angezeigt.

Da ich immer gerne ein eigenes, zufällig generiertes Kennwort vergebe, ändern wir das jetzt noch schnell. Wir geben auf der Shell einfach

ein. Danach zwei Mal das gewünschte, neue Kennwort (das während der Eingabe nicht angezeigt wird) und jeweils mit Enter bestätigen. Mit

beenden wir die Root-Shell und wechseln damit zurück in den normalen Modus.

Damit wäre die Installation von Pi-hole abgeschlossen und das System ist prinzipiell einsatzbereit!

Login auf dem Pi-hole Admin-Dashboard

Das Dashboard ist nach dem ersten Aufruf noch recht leer, denn schließlich arbeiten eure Geräte im Heimnetzwerk noch nicht so, dass sie das Pi-hole aktiv nutzen. Dazu kommen wir dann im nächsten Absatz.

Hier sehr ihr mal ein Beispiel meines aktiven Pi-hole Raspi. Die Graphen und Zahlen geben euch Auskunft darüber, wie viele aktive Clients im Netzwerk das Pi-hole nutzen, wie viele Anfragen blockiert wurden, die Anzahl der blockierten Domains usw.
Am besten klickt ihr euch mal mal durch das Dashboard und schaut euch die Optionen an.

Mit am wichtigsten sind für mich die vier Bereiche Whiteliste, Blacklist, Query Log und Disable.

In die Whitelist könnt ihr Domains aufnehmen, die nicht blockiert werden sollen. Das ist zum einen dann gut, wenn ihr einer Seite die Werbeeinnahmen nicht abdrehen möchtet und zum anderen, wenn eine Seite nicht vernünftig läuft. Dann könnt ihr euch über das Query Log anschauen, welche Domains zuletzt blockiert wurden und diese zum Test freischalten, bis die gewünschte Seite auch wie gewünscht angezeigt wird bzw. funktioniert.

Die Blacklist tut genau das Gegenteil der Whitelist. Hier könnt ihr Domains manuell blockieren lassen, auch wenn Pi-hole sie normalerweise durchwinken würde.

Solltet ihr Pi-hole temporär komplett deaktivieren wollen, dann tut ihr das unter dem Menüpunkt Disable. Hier könnt ihr verschiede Zeiträume angeben, nach denen Pi-hole automatisch wieder aktiviert wird.

Die Nacharbeiten – DNS-Einstellungen im Router ändern

Damit Pi-hole nun die Werbung auf all euren Geräten im Netzwerk filtern und blockieren kann sind noch ein paar kleine Nacharbeiten nötig. Dafür wechselt ihr im Admin-Interface in die Settings und dort den Reiter DNS. Die meisten Standardeinstellungen dort könnt ihr beibehalten. Was ihr ändern solltet ist der „Custom 1 (IPv4)“. Dort tragt ihr die IP-Adresse eurer Routers (DSL-, Kabelrouter, …) ein. Das sorgt dafür, dass Pi-hole netzwerkinterne Anfragen wie z. B. nach eurem NAS erst mal intern über den Router auflöst, bevor die Anfrage dann raus an die Google-DNS-Server geht.

Solltet ihr die IP-Adresse eures Routers nicht kennen, öffnet ihr die Windows Eingabeaufforderung und gebt dort

ein. Dort wird das „Standardgateway“ angezeigt. Das ist in aller Regel die IP-Adresse (IPv4) eures Routers.

Danach wechselt ihr auf die Konfigurationsseite des Routers selbst. Das tut ihr, indem ihr die eben ausgelesene IPv4-Adresse in den Browser eingebt und euch anmeldet.

In den IPv4-Einstellungen ändern wir einmal die Einstellungen des DHCP-Servers. Unser Raspberry Pi mit Pi-hole hat ja die IP 192.168.1.110 erhalten, die wir auch als statische IP festgelegt haben. Damit diese IP nicht noch dynamisch an ein anderes Gerät vergeben werden kann stellen wir den DHCP-Server beispielsweise so ein, dass dynamische Adressen erst ab 192.168.1.120 verteilt werden.

Außerdem ändern wir den lokalen DNS-Server des Routers auf die IP-Adresse unseres Pi-hole Servers, also in meinem Beispiel auf die 192.168.1.110. Damit werden für alle Geräte, die sich im Netzwerk anmelden, egal ob PC, Mac, Smartphone, … die Anfragen ins Internet über Pi-Hole geleitet und, falls Werbung in die Seiten eingebaut ist, diese ziemlich zuverlässig gefiltert!

Das gleiche erledigen wir noch, sollte euer Router es unterstützen, für IPv6. Die IPv6-Adresse des Raspberry Pi haben wir ja während des Pi-Hole Setups angezeigt bekommen. Diese tragen wir dort als IPv6-DNS-Server ein.

Und jetzt ein erster Test!

So, jetzt können wir uns unser Ergbnis anschauen. Dafür rufen wir einige der folgenden Webseiten in einem beliebigen Browser auf einem beliebigen Gerät auf.

  • Pi-hole.net (Link)
  • Ads-blocker.com (Link)
  • Angelfire.com (Link)

Es sollte keine oder zumindest fast keine Werbung mehr angezeigt werden. Auch Seiten wie Spiegel-Online oder die Welt eignen sich gut, um den Adblocker zu testen.

Query Log, Black- und Whitelist

Nun kann es immer mal wieder vorkommen, dass eine Seite, die ich gerne aufrufen möchtet, euch aussperrt, z. B. weil eine Art Scanner für Adblocker läuft und diese dann den Aufruf der Seite blockieren. Die Webseite der BILD beispielsweise blockiert entsprechende Aufrufe. Sollte so etwas passieren, dann werft ihr einen Blick in das Query Log und prüft, welche Domains zuletzt blockiert wurden, während die Seite aufgerufen wurde. Diese Seiten müsst ihr dann nach und nach in die Whitelist aufnehmen. Das erfordert ein bisschen Zeit, weil man nicht sofort die korrekte Domain erwischt. Hat man die Domain gefunden, die für die Blockade verantwortlich ist, kann man versuchen, die anderen wieder aus der Whitelist zu löschen.

Euer Feedback

War meine Anleitung verständlich? Hat alles geklappt oder gab es Probleme bei der Installation oder Konfiguration? Ich freue mich über euer Feedback! Nutzt dafür einfach die Kommentarfunktion unter dem Artikel.

Sharing is caring! Teile diesen Beitrag

5 Antworten auf „Adblocker mit Pi-hole: Das schwarze Loch für Werbung im Internet“

  1. Toller Artikel, können Sie ggf. noch beschreiben wie pi hole auf dem Raspi konfiguriert werden muss, wenn der Raspi für alle VLANs piholen soll?

  2. Hallo,

    sehr coole Anleitungen -> Danke 🙂

    Leider kann ich auf meinem SpeedPort Hybrid im Gegensatz zur Fritzbox keinen lokalen DNS Server eintragen. Gibt es hierfür einen Workaround?

    1. Moin Ralph,

      ich kenne den besagten Router leider nicht, aber wenn man dort in den DNS-Einstellungen tatsächlich keinen alternativen DNS-Server für’s LAN eingeben kann, dann fällt mir nur noch ein, den DNS im Router komplett zu deaktivieren und stattdessen einen auf dem Raspberry Pi zu installieren.
      Gib doch gerne noch mal Feedback, ob das wenigstens geht.

      Gruß,
      Dennis

    2. Die einzigen Workarounds, die mir spontan einfallen sind, den Pi bzw. das Pi-Hole als DHCP-Server zu betreiben und etwaige Funktionen im SpeedPort zu deaktivieren, oder bei jedem Gerät die DNS-Einstellungen händisch vornehmen.
      Aus eigener Erfahrung kann ich jedoch sagen, dass ein Pi-Hole als DHCP-Server wunderbar funktioniert. Ich habe mit einer Connect-Box von Unity-Media ebenso das Problem, dass ich keine DNS-Einstellungen vornehmen kann.

      Ich hoffe das ist irgendwie hilfreich.

  3. Hallo allerseits,

    am besten finde ich persönlich die Lösung, die DNS von Pi Hole GAR NICHT zentral auf einem Router oder anderen Gerät für das GESAMTE Netzwerk aufzulösen, sondern auf jedem Gerät, das über Pi-Hole laufen soll, den DNS-Server dort in der Konfiguration EINZELN einzurichten. Das ist zugegeben etwas mehr Arbeit. ABER: Erstens kann es sein, dass ein anderer Nutzer des Heimnetzes (z.B. die Ehefrau 😉 NICHT auf personalisierte Werbung verzichten möchte – dann lässt man ihr Gerät einfach so, wie es ist, ohne die Pi-Hole DNS dort einzurichten. Es läuft dann ganz normal ohne Ad-Block weiter. Oder, in meinem Fall: Ich arbeite für ein Unternehmen, das über Internet-Werbung Kunden generiert und ich muss die Ads natürlich auf dem Firmenrechner im Home Office sehen können. Zweitens, und das ist der eigentliche Knackpunkt: Ist der Raspi als zentraler DNS-Server auf dem Internet-Router angemeldet und fällt dann einmal aus – aufgrund von Defekt oder weil versehentlich jemand das Kabel herausgezogen hat – funktioniert das ganze Heim-Netz nicht mehr! Denn dann kann keine Adresse mehr aufgelöst werden und es ist kein Internetzugriff mehr möglich. Ist man zu Hause, kann man das natürlich lösen (falls man darauf kommt, dass es am Raspi liegt…). Doch wehe, man ist auf Weltreise und will gerade mal per VPN auf das Heimnetz zugreifen… Man käme dann gar nicht mehr rein und könnte folglich aus der Ferne auch nicht das DNS im Router umkonfigurieren, so dass es wieder funktioniert. Natürlich kann theoretisch auch der Internet-Router ausfallen, aber der Pi ist eben ein möglicher Schwachpunkt mehr. Da vertraue ich als DNS-Server doch mehr auf die professionellen Router der DSL- und Kabel-Provider, die in der Regel ja wirklich jahrelang durchlaufen ohne physischen Defekt (war bei mir bisher zumindest immer so, ich hatte zwar natürlich schon die eine oder andere Netzstörung, aber wirklich noch nie einen defekten Router).

    Ansonsten: Pi Hole ist wirklich super und vielen Dank für dieses Tutorial, ohne das ich nicht darauf gekommen wäre und es nicht ausprobiert hätte.

    Viele Grüße aus Hamburg,

    Thomas

Schreibe einen Kommentar

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