Wer zumindest in den eigenen vier Wänden einigermaßen vor nervender Werbung geschützt sein möchte, für den bietet sich die Installation von Pi-hole auf einem Raspberry Pi als äußerst günstige und einfach einzurichtende Lösung an.
Natürlich könnte man Pi-hole auch auf jedem anderen System oder Server einrichten, mit dem Raspberry hat man aber ein autarkes System welches 24/7 mit wenig Stromverbrauch laufen kann.
Es gibt unterschiedliche Methoden Pi-hole auf dem Raspberry einzurichten, vor allem wenn man bereits einen Raspberry besitzt und für andere Zwecke nutzt. Um nicht in Leistungsengpässe zu geraten habe ich jedoch einen dedizierten Raspberry auf welchem ausschließlich Pi-hole läuft, und dementsprechend sieht auch diese Anleitung aus.
Benötigt wird dafür ein Raspberry (ich benutze den Raspberry Pi 3 Model B+) mit den zum üblichen Betrieb nötigen Bauteilen – also eine SD-Karte, ein Micro-USB Stromkabel, ein Netzwerkkabel und bestenfalls noch ein Gehäuse. Das kann man sich nach Lust und Laune selbst zusammenstellen oder zu einem der vielen Komplettpakete greifen.
Installation: Betriebssystem
Zuerst müssen wir ein Betriebssystem installieren. Hierfür benötigen wir einen SD-Kartenleser und einen Monitor sowie eine USB-Tastatur.
Inzwischen gibt es den Raspberry Pi Imager, welcher die Auswahl und Installation des passenden Betriebssystems auf der SD-Karte sehr einfach macht. Wir stecken also die SD-Karte in das Lesegerät und installieren den Raspberry Pi Imager.
Einmal gestartet wählen wir das passende Betriebssystem aus. Hier nutzen wir die Light-Variante von Raspbian. Für andere Zwecke fehlen dort sicherlich Funktionen, für Pi-hole reicht es aber völlig aus. Wir starten also den Raspberry Pi Imager, klicken auf Choose OS -> Raspbian (other) -> Raspbian Lite, wählen die SD-Karte aus und los gehts.
Sobald der Prozess beendet ist nehmen wir die SD-Karte und stecken sie in den Raspberry Pi und schließen diesen dann ans Netzwerk, an einen Monitor und an eine Tastatur an sowie schlussendlich an den Strom an. Der Raspberry startet.
Einloggen können wir uns nun mit dem Benutzernamen „pi“ und dem Passwort „raspberry“ (Achtung! Für die Eingabe wird hier wahrscheinlich das englische Tastaturlayout genutzt, weswegen man „raspberrz“ anstatt „raspberry“ eingeben muss).
Nun konfigurieren wir den Raspberry erstmal indem wir
sudo raspi-config
eingeben und bestätigen. Wie bei Linux üblich steuern wir durch das Menü mit den Pfeiltasten, bzw. wechseln mit Tab zwischen den Optionen hin und her. Mit der Leertaste werden Häkchen gesetzt, mit Enter wird bestätigt.
Als erstes sollte man dem aktuellen Nutzer ein neues Passwort vergeben (Punkt 1). Unter Punkt 2 können wir unter Hostname dem Gerät einen Netzwerknamen geben, zum Beispiel Pi-hole. Unter Punkt 4 können wir noch ein paar Lokalisations-Einstellungen vornehmen. Unter Punkt 5 (Interfacing Options), und das ist wichtig, müssen wir unter SSH den SSH-Zugang aktivieren, damit wir später über SSH auf den Raspberry zugreifen können und ihn nicht jedes Mal an einen Monitor anschließen müssen.
Das sollte es erstmal gewesen sein. Eventuell möchte der Raspberry jetzt gerne neustarten. In jedem Falle können wir ihn aber jetzt abstecken, neben dem Internet-Router (bei mir eine Fritz-Box) platzieren, dort mit dem Router mit dem Netzwerkkabel verbinden und dann wieder an den Strom anstecken.
Pi-hole installieren
Nun zu Pi-hole. Wir verbinden uns also über SSH mit dem Raspberry und geben folgendes ein:
curl -sSL https://install.pi-hole.net | bash
Damit wird automatisch der Installationsprozess von Pi-hole gestartet.
Für den Upstream DNS-Service würde ich persönlich nicht Google nutzen, sondern andere Anbieter eintragen, welche eher die Privatsphäre respektieren als Google. Ein Liste von verfügbaren Services gibt es beispielsweise unter opennic.org. Unter der Serverübersicht von OpenNIC können wir uns einfach zwei passende IPs aussuchen und eintragen.
Die restlichen Einstellungen des Konfigurationsassistenten kann man so belassen, auf jeden Fall sollte man sich am Ende das Passwort notieren. Das war es dann auch schon.
Router konfigurieren
Nun öffnen wir die Konfigurationsseite des Routers. Dort vergeben wir bestenfalls dem Raspberry (welcher jetzt unter dem von euch angegebenen Namen angezeigt werden sollte) eine feste IP-Adresse, bestenfalls die, die er gerade schon hat.
Nun, und das ist der allerwichtigste Punkt, sagen wir dem Router, er soll den Raspberry als DNS-Service nutzen. Hierzu öffnen wir die DNS-Einstellungen – bei meiner FritzBox zu finden unter Internet -> Zugangsdaten -> DNS-Server (Reiter). Dort tragen wir jetzt die festgelegte IP-Adresse des Raspberrys ein und bestätigen die Eingabe.
Geschafft! Gratulation, ab jetzt laufen alle Verbindungen zum Internet aus eurem Netzwerk über den Raspberry, welcher die Werbung heraus blockt.
Ein kleiner Nachsatz noch: Bei mir bzw. meiner FritzBox war es nun der Fall, dass Pi-hole alle Anfragen nach außen unter der IP des Routers anzeigte. Das ist nicht schlimm, da ich aber wissen wollte welches Endgerät wie viele Anfragen stellt, musste ich das noch umstellen. Auf der FritzBox ging das unter Heimnetz -> Heimnetzübersicht -> Netzwerkeinstellungen (Reiter) -> IP-Adressen.
Dort konnte ich zusätzlich einen lokalen DNS-Server angeben, also noch einmal die IP-Adresse des Raspberrys eintragen, damit die FritzBox den Endgeräten quasi angibt, dass sie sich doch direkt über den Raspberry verbinden können.
Nach diesem kurzen Update werden nun alle IPs der jeweiligen Endgeräte einzeln in Pi-hole angezeigt, was etwas übersichtlicher ist, und natürlich am meisten Sinn macht wenn alle Endgeräte eine statische IP in eurem Netzwerk zugeordnet bekommen.
Statistiken und Konfiguration im Pi-hole Dashboard
Das Pi-hole Dashboard öffnet man über die IP des Raspberrys, gefolgt von /admin. Also beispielsweise http://192.168.1.6/admin.
Mit dem zuvor notierten Passwort kann man sich einloggen. Dort lassen sich Statistiken einsehen, Webseiten in eine Whitelist eintragen, andere DNS-Server eintragen, usw.