Adblocker Deluxe! Mit Raspberry Pi und Pi-hole Werbung im gesamten Netzwerk blockieren

15 Kommentare Autor: Jürgen (jdo)

Dass sich Websites und Portale im Internet mit Werbung finanzieren, dagegen habe ich eigentlich nichts. Wie könnte ich auch, denn bitblokes.de finanziert seinen Ausgaben ebenfalls mit Werbung. Ich habe aber etwas gegen zu aufdringliche Werbung und vor allen Dingen Tracking, gegen das Du Dich unterwegs auch mit den Adblockern von guten VPNs wie NordVPN* wehren kannst. Das Problem ist, dass man es sich als kleine Nischen-Website nicht wirklich aussuchen kann, weil der Aufwand sonst zu groß wird. Auf der anderen Seite kommen so gut wie gar keine Spenden rein, auf jeden Fall würden sie nicht einmal die Serverkosten von 8,99 Euro im Monat decken. Ohne Werbung könnte ich bitblokes.de also auf eigene Kosten betreiben oder eben einstellen. Zumindest bemühe ich mich, dass Werbung den Lesefluss meiner Beiträge nicht beeinflusst. Lange Rede … Ich habe nichts gegen Werbung, sondern wie Werbung dem Leser heutzutage aufgezwungen wird. Die Entwickler von Pi-hole bezeichnen ihr Projekt als Schwarzes Loch für Werbung.

Der ganze Leitfaden ist sehr ausführlich. Deswegen sollten auch technisch weniger versierte Leute damit zurechtkommen und in der Lage sein, Pi-hole aufzusetzen.

Hinweis: Pi-hole ist ein hervorragender Schutz im heimischen LAN. Bist Du aber unterwegs und nutzt fremde WLANs oder Hotspots, gibt es den Schutz vor Trackern, Malware und Werbung oft nicht. In solchen Fällen sind VPNs wie NordVPN* oder Surfshark* Gold wert, weil sie integrierte Adblocker bieten. Surfshark hat einen der besten grafischen Linux VPN Clients und der Adblocker lässt sich mit nur einem Klick aktivieren.

Surfsharks CleanWeb - toller Adblocker, schützt auch vor Trackern und Malware
Surfsharks CleanWeb – toller Adblocker, schützt auch vor Trackern und Malware

Gibt es Alternativen zu Werbung?

Die gibt es und wie gesagt reichen Spenden nicht aus. Portale wie Patreon kann ich mir derzeit auch nicht vorstellen, da meine Zeit momentan schlecht berechenbar ist. Sogenannte gesponserte Artikel sind auch eine Option, aber zu viele davon würden zu schnell die Inhalte des Auftritts aus dem Gleichgewicht bringen.

Persönlich hoffe ich, dass Projekte wie die Kryptowährung Basic Attention Token ($BAT)* für die Zukunft Besserung schaffen. Besucher einer Website spenden sozusagen einen kleinen Teil ihrer CPU- sowie GPU-Ressourcen und damit werden dann Dateien in einem dezentralisierten und anonymen Ledger gespeichert. Die Besitzer der Website werden wiederum von den Storage-Nutzern bezahlt. Die Besucher der Website haben den Vorteil, dass sie einen werbefreien Auftritt besuchen können.

Oyster will die Werbung im Internet umkrempeln
Oyster will die Werbung im Internet umkrempeln

Sobald das Projekt startet, werde ich einen Versuch machen. Ich gebe dann rechtzeitig Bescheid, damit Du die Sache blockieren kannst, sollte Dir das nicht taugen. Mir persönlich würde die Methode aber wesentlich besser gefallen.

Zur Information: Damit Du ein Gespür für den Aufwand eines solchen Beitrags bekommst – das dauert inklusive installieren, testen und schreiben mindestens einen vollen Tag.

Bleiben wir aber im Heute

Bis Oyster oder ähnliche Projekte Fuß fassen, muss man eben in den sauren Apfel beißen. Natürlich kannst Du Dich mit Werbeblockern wehren. Allerdings musst Du die sogenannten Adblocker auf jedem Gerät einzeln installieren. Das ist lästig und musst Du ein neues Gerät einrichten, ist das ein zusätzlicher Schritt.

Pi-hole funktioniert etwas anders und schützt Dein komplettes Netzwerk und somit Dich vor aufdringlicher Werbung. Bevor ich Dir die Schritt-für-Schritt-Installation präsentiere, muss oder möchte ich Dir aber erklären, wie Pi-hole grob funktioniert.

So funktioniert Pi-hole

Pi-hole ersetzt mittels dnsmasq Deinen DNS-Server oder ist ein Mittelsmann zwischen Dir und Deinem gewünschten DNS-Server. Dabei pflegen die Entwickler von Pi-hole eine Liste mit Domains, die Werbung ausliefern oder für Tracking der Anwender zuständig sind. Auf der Blockliste befinden sich derzeit über 120.000 Domains.

Rufst Du nun eine Website auf, dann laufen grob gesagt alle Anfragen an dort eingebettete und Werbung oder Tracking zuständige Domains ins Leere.

Dieser Ansatz hat Vorteile und in gewisser Weise auch Nachteile. Ich komme später zu den Nachteilen, wenn wir uns mit der Konfiguration von Pi-hole beschäftigen. Genauer gesagt im Kapitel mit den Whitelists und den Blacklists. Die Vorteile liegen auf der Hand.

Vorteile von Pi-hole

Für den Moment reicht es, wenn Du weißt, dass Pi-hole komplette Ad-Domains oder Tracking-Domains blockiert und auch kein Byte von diesen Anbietern herunterlädt. Das spart Bandbreite und es müssen weniger Anfragen abgearbeitet werden. Dadurch ist die Performance besser.

Weiterhin kannst Du Deinen DHCP-Server so konfigurieren, dass er die Maschine mit Pi-hole als DNS Server verwendet. Das ist das Killer Feature! Jedes Gerät, das sich in Deinem Netzwerk anmeldet ist somit automatisch geschützt oder dem Gerät wird Werbung erspart. Ich sage deswegen geschützt, weil Werbungsnetzwerke auch immer wieder missbraucht werden, um Malware zu verteilen. Natürlich ist das kein 100-prozentiger Schutz aber wir wollen den Cyberkriminellen so viele Hürden wie möglich in den Weg stellen.

Für viele ist es schon Schutz genug, wenn sie nicht von Werbung zugeballert und dadurch beeinflusst werden.

Pi-hole oder besser gesagt dnsmasq könnte auch Deinen DNS Server komplett ersetzen. Auch dazu gehe ich später genauer drauf ein.

Raspberry Pi vorbereiten

Das Schwarze Loch für Werbung im Internet lässt sich unter anderem auf einem Raspberry Pi installieren. Das habe ich gemacht und für Testzwecke meinen Raspberry Pi 3 genommen. Das Projekt läuft aber unter vielen Linux-Distributionen. Bei sehr vielen Geräten im Netzwerk kann es vorkommen, dass der Raspberry Pi etwas überlastet wird. Somit brauchst Du vielleicht eine stärkere Maschine. Oder Du hast noch einen PINE64  rumliegen und das Ding nicht wie ich zur Android-TV-Box gemacht. Wie Du siehst läuft Pi-hole unter anderem mit Debian, Ubuntu, Fedora, CentOS und Raspbian.

Hinweis: Bei erste Versuch habe ich aus Versehen Raspbian Jessie erwischt. Mach das nicht – das gibt nur Probleme. Berechtigungen stimmen nicht und nachdem ich sie hingebogen hatte, fiel dnsmasq auf die Schnauze … zum Glück habe ich irgendwann meinen Fehler bemerkt. Mit einem frischen Raspbian Stretch funktionierte die Sache sehr gut.

Der Adblocker ist zu vielen Linux-Distributionen kompatibel
Der Adblocker ist zu vielen Linux-Distributionen kompatibel

Vorsicht!!! Die automatische Prozedur installiert lighttp auf Deinem System. Befinden sich andere Services auf dem jeweiligen Rechner, die mit nginx oder Apache laufen, könnte es zu Problemen kommen!

Zunächst einmal haben ich mir das aktuelle Abbild von Raspbian Stretch Lite geholt. Warum Lite? Weil wir einen headless Service verwenden, der keine Desktop-Oberfläche und andere Software wie LibreOffice braucht.

Das Abbild kannst Du nach dem Download ganz einfach mit Etcher auf eine microSD-Karte spielen. Ist das fertig, schiebst Du die microSD-Karte in Deinen Raspberry Pi und startest ihn. Für die anfängliche Konfiguration sind natürlich Bildschirm und Tastatur nicht blöd.

Weiterhin benutze ich die Ethernet-Schnittstelle des Raspberry Pi. Der Pi 3 hätte zwar auch WLAN, aber die Ethernet-Schnittstelle sollte performanter sein. Mein Raspberry Pi 3 mit Pi-hole steht neben dem Router und deswegen reicht mir ein kurzes LAN-Kabel.

SSH aktivieren und Passwort ändern

Da wir den Remote-Zugang via SSH aktivieren, ändern wir sofort das Passwort. Auch wenn der Raspberry Pi nicht aus dem Internet erreichbar ist, gefällt uns der Standard pi / raspberry natürlich nicht. Sobald Du Dich angemeldet hast, rufe mittels

sudo raspi-config

die Konfiguration auf. Über die erste Option hast Du die Möglichkeit, das Passwort für den Anwender pi zu ändern.

Das Passwort für Benutzer pi via raspi-config ändern
Das Passwort für Benutzer pi via raspi-config ändern

Hast Du das erledigt, aktivierst Du noch den SSH Server. Öffne dazu in raspi-config die Option 5 Interfacing Options und dort findest Du P2 SSH. Hier aktivierst Du einfach den SSH Server. Du musst das nicht jedes Mal neu machen. Sobald aktiviert, startet sich der SSH Server mit jedem Neustart automatisch.

P2 SSH
P2 SSH
SSH Server aktivieren
SSH Server aktivieren

Nun kannst Du auf den Raspberry Pi via Netzwerk zugreifen. Bildschirm und Tastatur am Pi sind danach nicht mehr notwendig und er läuft headless. Von Linux aus greifst Du dann so auf den Raspberry Pi zu:

ssh pi@<IP-Adresse des Raspberry Pi>

Die IP-Adresse findest Du via Konsole über den Befehl ifconfig, besser und für dieses Projekt notwendig ist eine feste IP-Adresse.

Feste IP-Adresse

Weiterhin solltest Du Deinem Raspberry Pi eine fixe IP-Adresse geben. Das kannst Du während der Konfiguration tun, musst dann aber sicherstellen, dass der DHCP-Server in Deinem Netzwerk die Adresse nicht anderweitig vergibt. Meine Geräte im Netzwerk, die eine feste IP-Adresse brauchen, hinterlege ich deswegen beim DHCP-Server. Das ist eine zentrale Stelle und damit stelle ich sicher, dass es nicht zu Konflikten bei den IP-Adressen kommt.

Wie Du das machst, bleibt Dir überlassen. Es gibt einige Optionen und viele Wege führen nach Rom. Um die feste IP-Adresse im DHCP Server zuweisen zu können, brauchst Du möglicherweise die MAC-Adresse Deines Pi. Es hilft der Befehl ifconfig.

Du findest die MAC-Adresse Deines Pi über den Befehl ifconfig heraus
Du findest die MAC-Adresse Deines Pi über den Befehl ifconfig heraus

Pi-hole auf einem Raspberry Pi installieren – Schritt für Schritt

Ich habe mich zunächst über den Befehl

sudo su

zum Anwender root gemacht, da das Installations-Skript sonst meckert. Im Anschluss haben ich den Raspberry Pi auf den aktuellen Stand gebracht:

apt update
apt upgrade

Das kann eine Weile dauern, ist bei Raspbian Lite aber nicht so tragisch. Im Anschluss führst Du einfach diesen Befehl aus:

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

Die Entwickler weisen darauf hin, dass eine Pipe via Bash gefährlich sein kann. Wer absolut sicher gehen möchte, kann auch den Open Source Code einsehen und das Installations-Skript lokal laufen lassen. Ich habe es via curl gemacht und es hat funktioniert.

Pi-hole via Skript installieren
Pi-hole via Skript installieren

Die Installation beginnt

Zunächst einmal gibt es ein paar Informationen. Die Installation von Pi-hole wird Deinen Raspberry Pi in einen Adblocker für das gesamte Netzwerk verwandeln. Das ist schön so und genau das wollen wir.

Informationen
Informationen

Dann gibt es den Hinweis auf die feste IP-Adresse. Wir haben das schon besprochen.

Statische IP-Adresse
Statische IP-Adresse

An dieser Stelle suchst Du Dir einen DNS-Anbieter aus, den der Raspberry Pi sozusagen nutzt. Das Gerät wird ja kein kompletter DNS Server, sondern dient als Mittelsmann, der wiederum andere DNS Server um Informationen bittet. Ich habe an dieser Stelle Custom gewählt, weil ich FreeDNS nutzen möchte.

DNS Server hinterlegen
DNS Server hinterlegen

Die Adressen von FreeDNS sind 37.235.1.174 und 37.235.1.177. Die kann ich durch ein Komma getrennt in der Pi-hole-Konfiguration hinterlegen.

FreeDNS genommen
FreeDNS

Weitere Konfigurationsschritte

Im Anschluss wirst Du gefragt, ob IPv4 und IPv6 abgearbeitet werden sollen. Kann man so stehen lassen. Sollte IPv6 noch nicht unterstützt sein, läuft das einfach ins Leere.

IPv4 und IPv6
IPv4 und IPv6

Da ich die IP-Adresse über den DHCP Server fest zuweisen lassen, kann ich sie an dieser Stelle einfach übernehmen. Verneinst Du die IP-Adresse, darfst Du an dieser Stelle eine feste zuweisen. Stelle aber sicher, dass sie keinen Konflikt auslöst.

Feste IP-Adresse
Feste IP-Adresse

Auch wenn die Web-Schnittstelle manchmal etwas komisch reagiert, würde ich sie dennoch installieren. Damit ist es einfach, den Service temporär zu deaktivieren.

Die Web-Schnittstelle installieren
Die Web-Schnittstelle installieren

Protokollierst Du die Anfragen, siehst Du sehr schön, wie viele sogenannte Queries an Domains Pi-hole blockiert. Zu Testzwecken ist es auf jeden Fall nicht schlecht. Kann man später immer noch deaktivieren.

Logging aktivieren
Logging aktivieren

Im Anschluss holt die Installationsroutine Pakete und installiert die notwendige Software sowie alle Abhängigkeiten.

Pakete und Abhängigkeiten installieren
Pakete und Abhängigkeiten installieren

Ist die Installation abgeschlossen, bekommst Du eine Zusammenfassung. Mache vielleicht einen Screenshot davon, oder schreibe Dir zumindest Admin-Adresse und Passwort auf.

Installation ist fertig
Installation ist fertig

Auch die Konsole bietet noch einmal eine Zusammenfassung und verrät, wie sich das Passwort für die Admin-Oberfläche später ändern ließe:

pihole -a -p
Zurück auf der Konsole
Zurück auf der Konsole

DNS-Adresse umstellen

Ab sofort kannst Du DNS von Deinem Netzwerk auf die IP-Adresse des Raspberry Pi mit Pi-hole umstellen. Entweder machst Du das manuell oder eben im DHCP-Server und damit würde das gesamte Netzwerk versorgt. Zu Testzwecken würde ich Dir raten, bei Deinem Desktop die DNS-Konfiguration umzustellen.

Ansonsten melde Dich bei Deinem Router an und suche die Sektion mit DHCP. Jeder Router ist unterschiedlich, aber dort gibt es sicherlich irgendeine Option, die den Clients die DNS-Adresse(n) zuweist. Hier stellst Du auf die Adresse von Pi-hole um. Bei mir steht der DNS Server im Router derzeit noch auf FreeDNS, weil ich wie oben angesprochen meinen Desktop zu Testzwecken durch Pi-hole leite. Möchte ich umstellen, käme in meinem Fall bei Default DNS die Adresse 192.168.100.61 (IP-Adresse Raspberry Pi) rein.

Standard DNS ist bei mir derzeit FreeDNS
Standard DNS ist bei mir derzeit FreeDNS

Die Admin-Oberfläche von Pi-hole

Die Admin-Oberfläche läuft und Du erreichst sie mit dem Browser via pi.hole/admin oder <IP-Adresse des Raspberry Pi>/admin. Mit dem vorher erhaltenen Passwort meldest Du Dich an. Wie Du oben links siehst, läuft alles und mir wird sogar die CPU-Temperatur meines Geräts angezeigt. Ebenso sehe ich Load und Memory Usage (Speicherauslastung). Das sind wertvolle Informationen

An der Administrationsoberfläche von Pi-hole anmelden
An der Administrationsoberfläche von Pi-hole anmelden

Nach der Anmeldung sieht die Geschichte so aus und Du merkst, dass das System schon ein bisschen bei mir läuft. Das Menü auf der linken Seite bietet diverse Möglichkeiten und ich möchte auf einige genauer eingehen. Entweder sind sie sehr wichtig oder ich fand sie am Anfang etwas verwirrend und möchte sie deswegen genauer erläutern.

Der roten Kasten oben rechts zeigt, dass derzeit 121.059 Domains in das Schwarze Loch geschickt werden.

An Pi-hole angemeldet
An Pi-hole angemeldet

Query Log

Klickst Du auf Query Log, siehst Du genau, welche Anfragen gestellt wurden. Grün ist OK und rot ist eben blockiert. In dieser Ansicht hast Du rechts die Möglichkeit, die jeweilige Domain in die jeweilige und persönliche Whitelist (nicht gesperrt) oder Blacklist (gesperrt) aufzunehmen. Das ist praktisch, es gibt aber immer wieder Berichte, dass Whitelisting und Blacklisting über die Admin-Oberfläche nicht funktioniert. Wie der Stand im Moment ist, weiß ich ehrlich gesagt nicht ganz genau.

Query Log
Query Log

Whitelist

Domains in der Whitelist sind von der Blockade ausgenommen. Der Knackpunkt hier ist, dass die Whitelist von Pi-hole nicht wie eine in einem herkömmlichen Adblocker funktioniert. Nimmst Du bei uBlock Origin zum Beispiel bitblokes.de in die Whitelist auf, weil Du mich unterstützen möchtest, dann darf auf meiner Domain Werbung angezeigt werden.

Würdest Du aber bitblokes.de in Deine Whitelist bei Pi-hole aufnehmen, wäre die sowieso schon nicht geblockte Domain zusätzlich nicht geblockt. Meine Domain bitblokes.de liefert aber keine Werbung aus, sondern das übernehmen andere. Willst Du also Werbung auf bitblokes.de zulassen, müsstest Du alle Domains in die Whitelist aufnehmen, die bei mir für die Auslieferung der Werbung zuständig sind. Tust Du das, dann wird die Werbung auch auf vielen anderen Websites wieder angezeigt.

Ein Zugriff auf die Bild-Zeitung für Leute, die sich für etwas Besseres halten, endet so:

Spiegel Online ist beleidigt
Spiegel Online ist beleidigt

Um Spiegel Online wieder lesen zu können, müsste ich also alle Domains in die Whitelist aufnehmen, diese Meldung auslösen. Ich habe damit aus Neugier sogar mal angefangen. Das zieht aber einen Rattenschwanz nach sich und immer mehr Domains müsste ich in die Whitelist aufnehmen. Viel Spaß beim Ausprobieren! Lese ich Spiegel Online eben nicht, ist kein großer Verlust. Habe ich bisher auch nicht gebraucht. Die Bild hat ja mit dieser Praxis angefangen und von daher könnte man Pi-hole sogar als Gegenmaßnahme zur Verbreitung von Fake News oder alternativen Fakten sehen.

Das Problem bei der Benutzung von Pi-hole ist eigentlich, dass Du gewisse Projekte nicht einzeln unterstützen kannst. Genau deswegen hoffe ich, dass es künftig Alternativen zu der zugegeben sehr lästigen Werbung gibt.

Whitelist
Whitelist

Blacklist

Die Blacklist ist das Gegenteil zur Whitelist und alle darin angegebenen Domains werden blockiert. Hier darfst Du bestimmte Domains oder Wildcard-Domains anlegen. Bei einer Wildcard-Domain würden auch alle Sub-Domains blockiert und so weiter. Die Funktion ist sehr sinnvoll, denn damit kannst Du den Zugriff auf bestimmte Domains in Deinem Netzwerk komplett blockieren. Die Blacklist kannst Du zum Beispiel als elterliche Kontrolle einsetzen. Natürlich lässt sich das sehr leicht aushebeln, wenn jemand einen eigenen DNS Server konfigurieren kann und damit Pi-hole umgeht.

Blacklist
Blacklist

Das funktioniert auch ganz gut. Hier ein Beispiel aus meiner Initiative Schöner Surfen. Die gesamte Domain ist via Wildcard blockiert.

Bild.de Braucht kein Mensch, also wird es blockiert :)
Bild.de Braucht kein Mensch, also wird es blockiert 🙂

Hinweis: Natürlich würde auch ein VPN, das eigene DNS Server verwendet, die Blockaden sowie Whitelist und Blacklist umgehen.

Deaktivieren und aktivieren

Über den Menüpunkt Disable darfst Du Pi-hole deaktivieren. Dafür gibt es mehrere Optionen und ich finde die Funktion sehr schön.

  • Permanently ist ein dauerhaftes Deaktivieren: Du musst Pi-hole manuell wieder aktivieren.
  • 10 Sekunden, 30 Sekunden oder 5 Minuten: Damit deaktivierst Du den Service für eine gewisse Zeit. Nach Ablauf wird Pi-hole automatisch wieder aktiviert.
  • Custom time: Hier darfst Du die Zeit individuell festlegen.
Deaktivieren und aktivieren
Deaktivieren und aktivieren

Tools und Listen aktualisieren

Bei den Tools möchte ich lediglich den ersten Unterpunkt erwähnen. Die anderen darfst Du selbst erforschen. Via Update Lists aktualisierst Du die Blocklisten. Das kann man ab und zu ausführen, um das System einfach aktuell zu halten. Ließe sich auch über die Kommandozeile und einen Cronjob erledigen. Auf die Kommandozeilen-Tools gehe ich später noch ein.

Via Tools die Listen aktualisieren
Via Tools die Listen aktualisieren

Wichtig: Möchtest Du noch weitere Blocklisten hinzufügen, wirst Du unter wally3k.github.io/ fündig. Dort gibt es einige, die bekannte IP-Adressen von Ransomware, Malware und weiteren Unfug enthalten. Die Listen werden meist regelmäßig aktualisiert.

Settings oder Einstellungen

Sehen wir uns zum Schluss den Menüpunkt mit den Settings oder Einstellungen an, der wiederum in mehrere Tabs unterteilt ist. Unter System kannst Du zum Beispiel dnsmasq oder das gesamte System neu starten. Es ist auch möglich, den Raspberry Pi hier herunterzufahren. Du kannst die Logs leeren und das Query Logging deaktivieren. Ich habe die Funktion nach meinen Tests und dem Abschluss der Beitrags deaktiviert. Das sind Ressourcen, die ich nicht brauche. Ist sicherlich Geschmackssache, aber ich will das System so schlank wie möglich halten. Würde Pi-hole auf einer sehr leistungsstarken Maschine laufen, wäre es mir egal. Der Raspberry Pi 3 ist aber bekanntlich kein Supercomputer und deswegen muss er auch nicht so viel schuften. 🙂

Einstellungen: System
Einstellungen: System

Unter Block Lists hinterlegst Du die Listen, mit denen sich Pi-hole abgleicht. Das ist keine Magie dahinter. Bei DNS kannst Du die DNS Server ändern. Du erinnerst Dich sicher, dass ich FreeDNS hinterlegt habe. Taugt Dir das nicht mehr, kannst Du es an dieser Stelle ändern. Weiterhin kannst Du das Verhalten einstellen, wie das System auf den Schnittstellen horchen soll. Bei all origins musst Du aufpassen, dass Dein Raspberry Pi sicher hinter einer Firewall steht.

Du kannst auch DNSSEC aktivieren. Die Log-Dateien werden dann aber viel größer und Dein DNS Resolver muss DNSSEC unterstützen. Das kannst Du hier testen. Bist Du Dir nicht ganz sicher, was Du hier tun musst oder sollst, dann lasse es bei den Standard-Einstellungen.

Einstellungen: DNS
Einstellungen: DNS

DHCP Server

Ziemlich cool ist, dass Pi-hole als DHCP Server dienen kann. Du könntest den Raspberry Pi sozusagen als DNS und DHCP Server nutzen und Dein Router bräuchte diese Funktionen nicht mehr übernehmen. In diesem Fall konfigurierst Du die Vergabe der IP-Adresse komplett in Pi-hole.Natürlich darfst Du auch hier feste IP-Adressen via DHCP zuweisen und vermeidest den bereits angesprochenen Konflikt.

Einstellungen: DHCP
Einstellungen: DHCP

Den Reiter API / Web Interface überspringe ich. Schau ihn Dir selbst an und wenn Du ihn brauchen kannst, wird Dir das bewusst. Die Temperaturanzeige kannst Du dort auch umstellen, wenn das gewünscht ist.

Teleporter ermöglicht ein Backup Deiner Einstellungen. Nach Änderungen der Konfiguration kann es nicht schaden, eine Sicherung durchzuführen. Sollte die microSD-Karte den Geist aufgeben, sind Deine Einstellungen schnell wieder eingespielt.

Einstellungen: Teleporter
Einstellungen: Teleporter

Pi-hole auf der Kommandozeile

Wer das WebGUI nicht installieren möchte oder einfach lieber auf der Kommandozeile hantiert, der kann Pi-hole auch so nutzen. Außerdem gab es in der Vergangenheit immer mal wieder Probleme mit der Admin-Oberfläche und gewisse Aufgaben haben nur auf der Kommandozeile funktioniert. Wie der Stand hier im Moment ist, weiß ich ehrlich gesagt nicht. Behalte es einfach im Kopf und wenn das GUI zickt, dann können wir auch anders.

Zunächst einmal möchte ich darauf hinweisen, dass Du für die Steuerung von Pi-hole auf der Kommandozeile nicht root sein musst. Der Anwender pi darf auch. Führst Du den Befehl

pihole

aus, dann erzählt Dir die Software, welche Optionen Du hast. Die Optionen weiter unten sind ziemlich selbsterklärend. Aktivieren (enable), Deaktivieren (disable) und das Subsystem neu starten (restartdns) muss man nun nicht gesondert erklären. Spinnt Pi-hole, kannst Du es zum Beispiel mit einem Neustart des Subsystems versuchen:

pihole restartdns
Pi-hole auf der Kommandozeile
Pi-hole auf der Kommandozeile

Einige der Optionen haben Unter-Optionen. Gibts Du den nachfolgenden Befehl ein, bekommst Du eine Erklärung:

pihole -a

Hier hast Du die Möglichkeit, eine administrative E-Mail-Adresse zu hinterlegen oder das Passwort zu ändern. Das hatten wir weiter oben schon mal und nun ergibt es mehr Sinn. Das Passwort änderst Du zum Beispiel mit

pihole -a -p
pihole -a
pihole -a

Whitelist und Blacklist via Kommandozeile

Eine der wichtigsten Funktionen von Pi-hole ist das Blockieren von Domains. Deswegen lassen sich auch die Whitelist und die Blacklist über die Kommandozeile steuern und konfigurieren. Neue Einträge in die Blacklist fügst Du zum Beispiel so hinzu:

pihole -b domain.com

oder auch als Liste

pihole -b domain1.com domain2.com domain3.com ...

Äquivalent ist das mit der Whitelist. Die Liste aller Domains in der Whitelist oder Blacklist lässt Du Dir so anzeigen:

pihole -w -l
pihole -b
pihole -b

Chronometer und Tail bei Pi-hole

Ich möchte auf noch zwei Parameter hinweisen, die ich niedlich und nützlich finde. Das ist zum einen

pihole -c

Damit bekommst Du auf der Kommandozeile eine kleine Übersicht. Nette Spielerei, mit der Du auch auf der Kommandozeile die Auslastung sehen kannst.

Chronometer
Chronometer

Zum anderen finde ich den nachfolgenden Befehl sehr nützlich, weil er einem auch die Augen öffnet:

pihole -t

Kommandozeilen-Ninjas kennen -t natürlich. Das steht für Tail und Du bekommst immer die letzten X Zeilen aus dem Logfile. In unserem Fall sehen wir live, was Pi-hole gerade so treibt und blockiert. Führe den Befehl aus, halte das Fenster im Blick und fange danach an im Internet zu surfen. Der Rechner muss Pi-hole natürlich als DNS Server verwenden.

pihole -t
pihole -t

Eigene DNS-Auflösung inklusive DNSSEC mit Pi-hole

OK, machen wir die Sache noch etwas fortschrittlicher und benutzen eine eigene DNS-Auflösung. Das ist ein optionaler Schritt, der für etwas mehr Datenschutz sorgt! Dafür brauchen wir den PowerDNS Resolver und den müssen wir zunächst installieren. Auf der Projektseite finden wir die entsprechende Anleitung für Raspbian. Wir erstellen außerdem eine Zone-Liste und sparen uns damit die erste Anfrage an die DNS-Root-Server.

Wir editieren die Datei /etc/apt/sources.list.d/pdns.list und fügen diese Zeile ein:

deb http://repo.powerdns.com/raspbian stretch-rec-master main

Im Anschluss pinnen wir in der Datei /etc/apt/preferences.d/pdns das Repo:

Package: pdns-*
Pin: origin repo.powerdns.com
Pin-Priority: 600

Laut Anleitung führen wir nun folgende Befehle aus, um das Paket pdns-recursor zu installieren:

curl https://repo.powerdns.com/CBC8B383-pub.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get install pdns-recursor

Nach der Installation laden wir uns die Zonen-Datei herunter:

wget https://www.internic.net/domain/named.root -O /etc/powerdns/named.root

Schlau ist, wenn Du Dir diese Datei in regelmäßigen Abständen herunterlädst. Das funktioniert über einen Cronjob.  Zum Beispiel würde der Eintrag die Datei immer am Sonntag nacht holen:

5 4 * * 7 /usr/bin/wget --quiet https://www.internic.net/domain/named.root -O /etc/powerdns/named.root >> /dev/null 2>&1

Editiere nun die Datei /etc/powerdns/recursor.conf und sieh zu, dass die nachfolgenden Werte wie folgt aussehen:

dnssec=validate
hint-file=/etc/powerdns/named.root
local-address=127.0.0.1
local-port=5454
query-local-address6=::

Nach der Konfiguration ist ein eigentlich Neustart des Services notwendig, der bei mir aber zu einer Fehlermeldung führte.

systemctl restart pdns-recursor.service

Ich musste den Pi neu starten. Dann hat der Service aber funktioniert:

pdns_recursor funktioniert nach einem Neustart
pdns_recursor funktioniert nach einem Neustart

Nun musst Du in den Pi-Hole-Einstellungen unter DNS nur noch Deinen DNS-Server eintragen. Das ist in meinem Fall die Adresse 127.0.0.1#5454.

Eigenen DNS-Server bei Pi-Hole einstellen
Eigenen DNS-Server bei Pi-Hole einstellen

Das war es auch schon. Stellst Du Pi-Hole nun als DNS-Server ein, wird Dein eigener Resolver benutzt. Wie schon erwähnt, ist dieser Schritt optional.

Ob das mit DNSSEC klappt, kannst Du übrigens unter dnssec.vs.uni-due.de prüfen.

Werde ich Pi-hole weiterhin benutzen?

Ich bin gerade ein bisschen hin und her gerissen, muss ich ehrlich zugeben. Ich habe einige Websites, die ich gerne weiter durch Werbeeinblendungen unterstützen möchte. Auf der anderen Seite öffnet es einem echt die Augen, wenn man im Internet surft und sich live die Blockaden anzeigen lässt. Werbung an sich wäre OK, aber das Tracking hat inzwischen so überhand genommen, dass man sich einfach wehren muss.

Ich habe an sich nichts gegen Werbung und dass sich Websites so finanzieren. Ich habe aber etwas gegen die Art, wie aggressiv Werbung und Datenschnüffelei betrieben wird.

Es geht ja auch Hand in Hand. Wehren sich genug Leute, müssen die Werbetreibenden irgendwann reagieren – wenn es nicht schon zu spät ist. Die momentane Reaktion der Werbetreibenden und Daten-Spione ist ja nicht, etwas zurück zu rudern. Ganz im Gegenteil. Nutzer von Adblockern werden als Parasiten dargestellt und andere müssen es ausbaden, indem man ihnen noch mehr und noch aufdringlichere Werbung unter die Nase hält.

Wie anfangs erwähnt hoffe ich auf Projekte wie Oyster und dass solche maßvoll betrieben werden. Sonst kommen wir vom Regen in die Traufe.

Bin ich Dir böse, wenn Du Werbung auf meiner Website blockierst? Nein, auf keinen Fall – ich verstehe es sogar sehr gut.

Wie anfangs erwähnt, rate ich Dir sogar, Dir ein VPN mit Adblocker zuzulegen. Was ich Dir an dieser Stelle empfehle, hängt von Deinen Ansprüchen ab. Willst Du einen grafischen Client für Linux, dann nimm Surfshark. Du darfst damit sogar so viele Geräte gleichzeitig schützen, wie Du möchtest!

Ein tolles Universal-VPN, dessen Kommandozeilen-Client auch auf dem Raspberry Pi funktioniert, ist NordVPN*. Es sind bis zu 6 Geräte gleichzeitig erlaubt. Beide Anbieter sind ähnlich günstig und bieten Geld-Zurück-Garantien.




 Alle Kommentare als Feed abonnieren

15 Kommentare zu “Adblocker Deluxe! Mit Raspberry Pi und Pi-hole Werbung im gesamten Netzwerk blockieren”

  1. Ich benutze Pi-Hole seit einiger Zeit in Verbindung mit PiVPN. Kommt bei mir aktuell nur auf den Smartphones und Tablets zum Einsatz. Auf den Desktoprechnern und Notebooks ist uBlock Origin installiert und bei den Webseiten/Blogs welche ich unterstützen möchte habe ich den Adblocker aus.

    Statt Raspbian Stretch Lite nutze ich DietPi.

  2. Prov94 says:

    Hallo,
    Pi-Hole nutze ich nicht, aber bzgl. deiner Idee mit dem Kryptominer auf der Seite, ich würde dich damit gerne unterstützen und finde es besser als Werbung, da diese die Performance runter zieht.
    Also wenn du es einsetzt und Beiträge teilst, dann schaue ich mal vorbei und spende etwas Rechenleistung 😉 aber bei Möglichkeit ähnlich wie Coin-hive, da ich lieber die Einstellbarkeit mag wieviel Leistung der Seite gegeben wird und nicht die Seite ohne Entscheidungsfreiheit 100% der CPU abzieht.

  3. lothar says:

    Wer mehr als die Default-Seiten blocken möchte, findet hier reichlich Material: https://wally3k.github.io/
    Lässt sich leicht über die Web-Oberfläche hinzufügen (Settings > Block Lists).

    Bei mir funktioniert das Whitelisting über die Web-Oberfläche öfter nicht (zeigt es zwar an, blockiert aber trotzdem noch). Mittels Kommandozeile gibt es keine Probleme.

  4. Alex says:

    Die paar Euro im Monat fürs Betreiben einer kleinen Webseite muss man sich glaube ich nicht vom Mund absparen und müssen nicht zwangsläufig auf Kosten der Besucher reingeholt werden. Ich sehe das eher als Hobby an. Wesentlich mehr ins Gewicht fällt natürlich die Zeit, die man fürs Erstellen von Artikeln aufbringt, aber das mit seinem Stundenlohn gegenzurechnen wäre falsch. Im Endeffekt kann man vielleicht 2-3 Folgen im Monat einer Serie auf Netflix weniger ansehen.

    • jdo says:

      Ich habe kein Netflix ... 🙂

      Ich sehe die Sache etwas anders, weil die Motivation sinkt, Inhalte zu erstellen, die sehr aufwendig sind. Deswegen rutschen die unabhängigen Websites immer weiter unten durch und es heben sich mehr und mehr Artikel heraus, die in irgendeiner Form beeinflusst sind.

  5. Matthias Schuster says:

    Hi Jürgen

    Wieso verwendest du einen 8.99€ Server für einen Blog, statt zB eine statische Seite die du gratis auf Github/Gitlab/etc hosten kannst?

    Für die Kommentare lassen sich da Lösungen wie Disqus verwenden, jedenfalls bei Jekyl.

    Eine Möglichkeit, via Hugo und IPFS: https://github.com/ipfs/blog

    • jdo says:

      Verstehe die Frage nicht ganz. Ich verwende den Server auch für meine Nextcloud, als VPN Server und so weiter. Außerdem scheint mir die Github-Lösung für ein Blog etwas sehr umständlich. Ich habe eh genug um die Ohren und LAMP+WordPress ist derzeit der Weg des geringsten Widerstandes.

  6. Tito says:

    Ernstgemeinte Frage, da ich nicht wirklich tief im Thema bin, ist eher so ein "Black-Hole" für mich... 😉

    Was ist an dieser Pi-Hole Geschichte besser als einfach in der Fritzbox ne Blacklist einzutragen?
    https://www.kowabit.de/blockliste-fuer-fritzbox-test/

    • jdo says:

      Pi-hole blockiert von sich aus 122.000+ Domains und mit den erweiterten Listen über 500.000 (bei mir derzeit 586.000) ... die FritzBox-Liste sind 500 und nicht jeder hat eine FritzBox ...

      • Christopher says:

        Welche 500.000 Domains blockierst du denn? Kannst du deine Liste einmal veröffentlichen?

        • jdo says:

          Die Listen sind öffentlich und kommen mit Pihole ... Ich kann sie Dir schon extrahieren, aber über Pihole werden die Listen auch aktualisiert und auf dem neuesten Stand gehalten

  7. Daniel says:

    Guten Tag,

    stimmt das, dass man solche DNS Server / pi hole immer Lokal laufen lassen sollte?
    Hatte mir eine VM gebastelt aber alle raten mir davon ab....

    Hatte auch über Firewall und DYDNS Ip Sperr kram nachgedacht, aber das lässt sich wohl auch in Minuten umgehen und schon kann man über meinen "Server" surfen....

    Irgendwelche Ideen dazu?

    • jdo says:

      Hi,

      ich verstehe die Frage nicht ganz. Läuft Pi-Hole im internen Netzwerk (Heimnetz) und der entsprechende Port ist von außen gesperrt, funktioniert nur die Richtung Pi-Hole-> Internet. Also alle im internen Netzwerk können Pi-Hole nutzen, aber keiner aus dem Internet kann darauf zugreifen.

      Läuft Pi-Hole in einem Netzwerk, dann können den Service alle nutzen, klar. Es surfen aber noch lange nicht alle Leute über diesen Server, da der reine Netzwerk-Traffic nicht darüber läuft, sondern lediglich die DNS-Auflösung!

  8. Simon says:

    Hast du schon Pi-Hole 4 am laufen bzw. hat sich hier etwas in der Installation und Konfiguration im Vergleich zu v3 verändert?
    Hast du Pi-Hole auch schon mal mit unbound kombiniert?

    • jdo says:

      1. nein
      2. weiß ich nicht, aber wenn ich mir die Ankündigung dazu ansehe, ist alles ziemlich ähnlich. Gibt ein paar Neuerungen, ist aber alles beschriebn - klick
      3. ebenfalls nein