Installation von Pi-hole auf einem Raspberry Pi

Wen nervt sie nicht: die Werbung im Netz. Und wie überrascht ist man heutzutage noch darüber: Gerade in einem Online Shop nach etwas gesucht, im nächsten Moment bekommt man auf der danach besuchten News Seite direkt die passende Werbung angezeigt.

Klar benutze ich bisher verschiedene Werbeblocker-Plugins wie Adblock Plus oder uBlock Origin, jedoch funktionieren diese nur in den Browsern, in dem das entsprechende Plugin installiert ist.

Nun hat man noch zwei offene Flanken: alle mobilen Geräte (inkl. der Werbung und Tracker in Smartphone Apps) und Smart-TVs / Streaming Boxen (Apple TV, Fire TV). Hier ist die Installation von Werbeblockern in der Regel gar nicht möglich und mein Ziel ist es: Im ganzen Netzwerk ohne Werbung unterwegs zu sein.

Hier kommt Pi-hole ins Spiel: er verrichtet seine Arbeit nicht nur als Werbe- und Trackingblocker, sondern kann auch für einen netzwerkweiten Jugendschutz eingesetzt werden.

1. Was ist der Pi-hole?

Pi-hole ist ein Filter, der Werbung und Tracker direkt im lokalen Netzwerk blockiert. Der große Vorteil: er blockiert diese für alle Geräte im Netzwerk!

Technisch gelöst wird dies über die DNS-Auflösung. Vereinfacht gesagt: Jeder Domain-Adresse ist eine IP-Adresse hinterlegt, die im Domain Name System (DNS) hinterlegt ist. Wird eine Internetseite aufgerufen wird diese Information bei einem öffentlichen DNS-Server abgerufen und gibt diese Information dann z.B. an den Browser zurück. Mit dieser Information kann dieser dann die entsprechende Internetseite aufrufen.

Mit der Installation und Integration des Pi-hole ins eigene Netzwerk übernimmt dieser nun die Abfrage der DNS-Auflösung und vergleicht vor Weitergabe an die öffentlichen DNS-Server die angeforderte Domainadresse mit den internen Filterlisten. Steht eine Domainadresse auf einer dieser Filterlisten, fängt der Pi-hole praktisch die Anfrage ab und anstelle z.B. eines Werbebanners erscheint an dieser Stelle einfach nichts.

Der Pi-hole ist sozusagen ein eigener kleiner, vorgeschalteter DNS-Server. Der Name ist übrigens eine Zusammensetzung aus Pi von Raspberry Pi und hole = “schwarzes Loch”. Ursprünglich also für den Raspberry Pi entwickelt, der auf einem solchen installiert und ins eigene Netzwerk integriert wird. Im Router muss zusätzlich noch eine kleine Anpassung vorgenommen werden. Der folgende Beitrag erläutert jeden einzelnen Schritt.

2. Notwendige Hardware

Ich habe noch von meinem früheren Einsatz von LibreELEC einen älteren Raspberry Pi hier liegen, den ich für meine Installation verwenden werde. Falls du keinen Raspberry Pi besitzt, empfehle ich folgende Komponenten:

Nach dem Zusammenbau des Raspberry Pi kann es weitergehen.

3. Installation Raspberry Pi OS

Zunächst installieren wir das Raspberry Pi OS (Betriebssystem), das für die Installation von Pi-hole notwendig ist. Auf der offiziellen Internetseite laden wir uns das Raspberry Pi OS (32-bit) Lite Image herunter. Das beinhaltet lediglich das Betriebssystem an sich ohne Desktop und zusätzliche Software.

Ich nehme die Installation vom Mac vor und beschreibe diesen Weg. Auf der Internetseite der Raspberry Pi Foundation gibt es ebenfalls Anleitungen für Windows bzw. Linux.

Es gibt dabei zwei unterschiedliche Wege. Einmal per Terminal oder aber über den Raspberry Pi Imager.

3.1 Installation per Terminal

Nachdem Download wird das ZIP Paket entpackt und die SD Card am Rechner / Lesegerät eingesteckt werden. Über das Terminal einmal den Befehl diskutil list ausführen, und es erscheinen in etwa folgende Informationen:

Über die Ausgabe im Terminal identifiziert ihr die SD Karte, in meinem Fall ist es disk2 (external). Im nächsten Schritt muss die SD Karte geunmounted werden:

diskutil unmountDisk /dev/disk2

Danach wird das Image kopiert:

sudo dd bs=1m if=path_of_your_image.img of=/dev/rdisk2; sync

Das Kopieren dauert einen Moment. Nach erfolgreichem Kopieren wird die SD karte noch ausgeworfen:

sudo diskutil eject /dev/rdisk2

Fertig mit der Installation von Raspberry Pi OS.

Achtet dabei darauf, das ihr die 2 evtl. durch eure diskX Nummer ersetzt!

Weiter geht es, falls ihr diesen Weg gewählt habt, unter 3.3

3.2 Installation per Raspberry Pi Imager

Der alternative Weg ist die Installation über den Raspberry Pi Imager, eine Oberfläche, die Schritt für Schritt durch den Installationsprozess führt.

3.3 SSH Zugriff aktivieren

In meinem Fall musste ich auf der SD Karte im root eine leere Datei mit dem Namen ssh anlegen.

3.4 IP-Adresse vom Raspberry Pi ermitteln

Nach erfolgreicher Installation steckt ihr die SD Karte in euren Raspberry Pi und schließt diesen sowohl an das Stromnetz als auch per LAN an euren Router.

Im Router solltet ihr ihn nach einiger Zeit als neues Gerät finden. Ich nutze in meinem Netzwerk komplett UniFi Geräte und melde mich hierzu auf dem UniFi Controller an und navigiere zu der Clients Übersicht.

In den Client Einstellungen unter Configuration –> General vergebe ich einen Alias (Namen) Pi-hole und speichere diese Änderung über den Save Button. Unter Network setze ich die IP-Adresse auf fix, ebenfalls speichern nicht vergessen.

4. Installation von Pi-hole

Zur Installation von Pi-hole loggen wir uns per SSH auf dem Raspberry Pi ein:

ssh pi@IP-Adresse-vom-Raspberry-Pi

4.1 Vorbereitungen

Das Standardpasswort lautet: raspberry

Ihr seid nun auf dem Raspberry Pi eingeloggt und solltet direkt das Standardpasswort ändern. Dazu gebt ihr in der Eingabeaufforderung folgenden Befehl ein:

passwd

Und einmal eure Raspberry Pi Installation auf den aktuellsten Stand bringen:

sudo apt-get update
sudo apt-get upgrade

4.2 Eigentliche Installation

Die Installation erfolgt über einen einzigen Befehl:

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

Im folgenden wird der Pi-hole-Installer herunter geladen und danach ausgeführt. Hier folgt man einfach den Anweisungen auf dem Bildschirm, die Standardeinstellungen können weitestgehend belassen werden (können später auch noch geändert werden).

Mit der Bestätigung der Einstellungen im Installer, ist dieser noch ein wenig auf der Kommandooberfläche beschäftigt. Nach Abschluss erscheint wieder ein Bildschirm mit blauem Hintergrund mit dem Hinweis der abgeschlossenen Installation. Bitte hier unbedingt das Passwort notieren!

Damit der Pi-hole aktiv wird und arbeitet, muss im Router der Eintrag für den DNS-Server geändert werden. Dieser steht standardmäßig in den meisten Fällen auf auto und muss auf manuell geändert werden. Die IP-Adresse ist die von eurem Pi-hole.

Um Pi-hole zu testen, also ob er auch tatsächlich reibungslose funktioniert, am besten einmal die Web Admin Oberfläche aufrufen und schauen ob von Pi-hole Anfragen aufgezeichnet und geblockt werden.

5. Der laufende Betrieb & Optimierungen

5.1 Passwort ändern

Als erstes ändern wir das Passwort für die Web Admin Oberfläche, damit wir uns dieses seltsame generierte Passwort nicht merken oder gar aufschreiben müssen.

pihole -a -p

Danach starten wir den Raspberry Pi einmal neu.

sudo reboot

5.2 Übersicht und Statistiken

Im obigen Screenshot sieht man das Dashboard wenn man nicht eingeloggt ist. Meldet man sich beim Pi-hole an, gelangt man auf einer Dashboard Version mit wesentlich mehr Details.

Die Zusammenfassung der letzten 24 Stunden zeigt die Gesamtzahl der DNS-Abfragen (total queries) und die Anzahl der geblockten Abfragen (queries blocked) aus der sich die Blockquote (percent blocked) errechnet.

Unter Query Log erhält man tiefe Details über die einzelnen DNS-Abfragen. Teilweise sehr interessant welche Geräte so alles nach draußen “telefonieren” möchte, wie man früher so schön gesagt hat.

5.3 Filterlisten

Die on-board Filterlisten, die man bei der Installation mit installiert hat, beinhalten derzeit über 84.000 Einträge. In einer Sammlung auf firebog findet ihr viele weitere Filterlisten, die ihr wie folgt integrieren könnt.

Pi-hole Web Admin –> Group Management –> Adlists kann man im oberen Bereich weitere Filterlisten hinzufügen. Nachdem Hinzufügen weitere Listen muss man noch ein Update durchführen: Pi-hole Web Admin –> Tools –> Update Gravity.

Ich bin bei meiner Installation momentan noch in der Test-Phase und habe nach 3-4 Tagen Betriebszeit derzeit 271.769 Domains in meiner Blocklist und eine Blockquote von 19,5%.

5.4 Privatsphäre

Pi-hole protokolliert jede Anfrage von jedem Client und speichert in der Grundkonfiguration wirklich alles. Aus Gründen der Privatsphäre sollte hier die Einstellung geändert werden, wir wollen ja schließlich keine Überwachung mit Pi-hole realisieren.

Im Web Admin –> Settings –> Privacy wird dafür statt Show everything and record everything auf Hide domains: Display and store domains as “hidden” ausgewählt. Somit werden die angefragten Domainnamen nicht gespeichert.

Mit der Änderung wird allerdings nur das Logging über das Web Interface angepasst. Möchte man das Logging auch auf dem Pi-hole direkt abschalten, kann man dies per SSH mit folgendem Befehl machen:

sudo pihole logging off

Der Befehl löscht gleichzeitig den Inhalt der momentan existierende pihole.log.

6. Fazit

Ich bin fast begeistert. Mit dem Pi-hole verschwindet ein Großteil an Werbung und Trackern in einem schwarzen Loch.

Es bedarf sicherlich noch ein wenig Zeit um ein wirklich aussagekräftiges Fazit ziehen zu können. Nervt der Pi-hole bzw. das Unterdrücken der Werbung, da evtl. Seiten nicht mehr so funktionieren wie sie sollten? Aber auch dann: Durch die Einstellmöglichkeiten und Funktionalitäten lässt sich dies mit Sicherheit dann über Black- / Whitelist lösen.

Ausblick… drei Dinge die mit spontan einfallen:

  1. Installation Pi-hole auf meiner Synology DiskStation über Docker
  2. “Jugendschutz”: mit dem Pi-hole und den entsprechenden Filterlisten kann man auch dies umsetzen. Dies werde ich mir beizeiten anschauen und wieder berichten.
  3. Lokaler DNS-Server Unbound als eigener DNS Upstream Server

Kein Kommentar

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