Projekt Pi-hole

(Dieser Beitrag wurda am 25. Januar 2021 aktualisiert.)

DNS Server sowie Netzwerk-, Browser- und Tracking-Schutz im Heimnetz


<<< Installation Raspberry OS auf SD-Karte ohne Monitor, Maus und Tastatur <<< | >>> Wireguard auf dem Raspberry Pi >>>


Werbung auf dem Handy, Advertisements auf dem PC, dem Laptop, also auf jedem Gerät, welches mit dem Internet kommunizieren kann. Wen das nervt, der hat sicher schon von Pi-hole gehört. Aber wie installieren? Was muss ich alles tun? Was brauche ich? Nun ein guter Einstieg ist mein vorhergehender Artikel dazu. Wer den schon abgearbeitet hat, landet dann idealerweise hier und startet sein eigenes "(Heim)Projekt Pi-hole".

Pi-hole ist eine freie Software, welche unter der European Union Public Licence steht, sich aus Spenden finanziert (was ich nur unterstützen kann) und so ohne den Erwerb einer Lizenz verwendet werden darf. Pi-hole wurde, wie der Name schon sagt, speziell für die Verwendung auf einem Raspberry Pi zugeschnitten, kann ohne Anpassungen auch auf anderen Unix Derivaten und mit Umwegen sogar auf Windows betrieben werden. Für den Zweck des DNS Servers, der natürlich stets online sein muss, ist ein Raspberry aber speziell hinsichtlich des Ressourcen Bedarfs dieses Systems ideal für diesen Zweck geeignet.
Aber nicht nur das, da die Software Pi-hole eigentlich ein Paket ist und unterschiedliche Dienste mitbringt, ist es auch für Heim Administratoren interessant, die bspw. einen eigenen DNS Server oder einen eigenen DHCP Service im Netzwerk bereitstellen wollen, dabei aber nicht die Funktionen des Routers (bspw. der FritzBox) verwenden wollen oder können, weil bspw. bestimmte Funktionen fehlen (bspw. DNS Forwarding, Split DNS, spezielle DHCP Optionen etc.). Genau hier kommt Pi-hole ebenfalls ins Spiel und ich verwende Pi-hole – speziell im Zusammenhang mit WireGuard – als DNS Server, um bspw. "Conditional Forwarding" verwenden zu können, denn das kann eine FritzBox nativ nicht. Leider bin ich auch nicht 100% fit beim nativen Linux DNS Server "Bind", ich komme mit Pi-hole einfach besser klar, da mir die Pi-Hole GUI bereits viele Aufgaben abnimmt, die unter "Bind" zu Fuß zu erledigen sind. Aber das ist ein anderer Beitrag…

Im Beitrag Installation Raspberry OS auf SD-Karte ohne Monitor, Maus und Tastatur habe ich beschrieben, wie man einen Raspi installiert und die grundsätzlichen Parameter festlegt. Aufbauend auf diesem ersten Beitrag installieren wir jetzt Pi-hole auf dem Raspi. Ich denke bei geübten Anwendern und genauem Befolgen der Anweisungen und Hinweise, ist das Thema in 2h locker erledigt und Eure Clients verwenden Pi-hole als DNS Server und ihr könnt mit dem Whitelisten beginnen, denn das wird sicher notwendig sein. (Netflix, Youtube, allgemein Streaming Dienste etc. …)
Voraussetzungen:

  • Der Raspi ist fertig installiert und via SSH im internen Netzwerk erreichbar
  • Der Raspi hat Internet Zugriff, denn die Installationspakete werden direkt aus dem öffentlichen Repository heruntergeladen und später wird der Raspi die Kommunikation mit externen DNS Server übernehmen.

Passt alles? Dann mal los!

Abkürzung für Fortgeschrittene…

  1. Raspi OS aktualisieren
  2. Pi-hole Installationsscript herunterladen und starten
  3. Wizard abarbeiten
  4. DNS Server im lokalen Netzwerk anpassen
  5. Client DHCP Releases erneuern

Zu schnell? Ok, dann Eins nach dem Anderen…

  1. SSH Verbindung mit Putty auf den Raspi
  2. Update Repositories aktualisieren (also nach Updates suchen)
    sudo apt update

  3. Raspi aktualisieren und Updates installieren (full-upgrade installiert hier auch notwendige Abhängigkeiten)
    sudo apt full-upgrade -y

  4. Pi-hole mit dem One Step Wizard installieren
    curl -sSL https://install.pi-hole.net | bash

  5. Jetzt sollte der Wizard (Shellscript) automtaisch starten und die erste Warnung bestätigen wir mit ENTER
  6. Pi-hole fianziert sich aus Spenden und weist im nächsten Fenster darauf ´hin, auch hier bestägen wir mit ENTER
  7. Jetzt weist das Script darauf hin, dass es ratsam wäre, für Pi-hole eine statische IP zu konfigurieren. Wer das noch nicht wie in meinem vorhergehenden Beitrag getan hat, kann das jetzt nachholen, alle anderen können die Einstellungen unverändert lassen.
  8. Jetzt ist die Schnittstelle auszuwählen, unter welcher der Raspi erreichbar ist und an welcher Pi-hole dann "horchen" wird. Bei mir WLAN also gehts mit Pfeiltaste runter –> Leertaste –> TAB-Taste –> ENTER weiter…
  9. Im nächsten Schritt legen wir fest, welchen DNS Server Pi-hole für die Namensauflösung bei öffentlichen DNS Namen wie verwenden soll. Ich verwende im Regelfall die Cloudflare DNS Server, aber das ist immer Ansichtssache, grundsätzlich funktionieren alle Server in dieser Liste. Diese Einstellung kann auch später noch in der WEB GUI von Pi-hole geändert werden.

    Eintrag auswähle mit Pfeiltaste runter –> TAB-Taste –> ENTER
  10. Im nächten Step zeigt Pi-hole die Blacklist an, welche für die Filterung von Tracking und Advertisements verwendet wird. Dies kann einfach mit TAB-Taste –> ENTER bestätigt werden. Auch das ist später noch anpassbar, für mich sogar irrelevant, da ich im Prinzip nur den DNS Server benötige und die Filterung gar nicht verwende.
  11. Jetzt legt man fest, ob das Tracking via IPv4 und/oder IPv6 durchgeführt werden soll, auch hier einfach mit TAB-Taste –> ENTER fortsetzen
  12. Jetzt folgt die Abfrage der IP Einstellungen des Raspi, die ich unverändert lasse, denn ich habe bereits wie hier beschrieben eine feste IP definiert. Also geht’s mit TAB-Taste –> ENTER weiter…
  13. Beachte den Hinweis, dass es zu einem IP Konflikt kommen kann, wenn die feste IP im DHCP Scope des Routers liegt. In meiner Konfiguration liegt die feste IP aber "unterhalb" des DHCP Scopes, den meine FritzBox verwendet, also weiter mit ENTER
  14. Im nächsten Schritt teilt uns Pi-hole noch mit, dass auch IPv6 verwendet wird, was mir mit ENTER zur Kenntnis nehmen…
  15. Pi-hole kann via CLI und via GUI verwaltet werden. Wer lieber eine WEB GUI verwendet, setzt mit TAB-Taste –> ENTER fort…
  16. Sollte bereits ein Webserver auf dem Raspi aktiv sein, kann man hier die Installation des Webservers und der PHP Module abwählen. Wir starten bei NULL, also setzen wir mit TAB-Taste –> ENTER fort…
  17. Jetzt wird noch festgelegt, ob das Logging aktiviert wird, was wir ebenfalls unverändert lassen, also mit TAB-Taste –> ENTER weiter…
  18. Im letzten Schritt vor der Installation kann man noch definieren, welche Daten im Log stehen sollen, ich lasse das hier unverändert, also weiter mit TAB-Taste –> ENTER
  19. Jetzt startet die Installation…

  20. Nach Abschluss der Installation gibt Pi-hole noch Hinweise zur DNS Konfiguration der lokalen Geräte mit.
    ACHTUNG: In der letzten Zeile steht das Initial-Passwort für den Zugriff auf die Pi-hole Oberfläche. Das Passwort also gleich speichern und/oder aufschreiben! Die Anmeldung an Pi-hole erfolgt übrigens ohne Benutzername, also nur mit diesem Passwort.
    Abschluss der Installation dann mit ENTER

    Wer zu schnell ENTER gedrückt hat, findet das Passwort und die Hinweise noch in der CLI Session…
  21. Jetzt versuche ich das Interface direkt im Browser, mit Aufruf der festen http://192.168.xxx.8/admin IP zu öffnen, um zu prüfen, ob die WEB GUI von Pi-hole funktioniert…
  22. Direkt danach der Versuch des Login mit dem vorher gespeicherten Passwort.
  23. Im Ergebnis sollte sich jetzt die OPberfläche von Pi-hole, mit allen Konfigurationsmöglichkeiten öffnen und die Installation ist damit abgeschlossen.

Ab hier kann man jetzt mit der Konfi´guration von Pi-hole als Advertisement- und Tracking-Filter, als DNS Server oder als DHCP Server beginnen!

Wichtiger Steps und Hinweise für FritzBox User:

  • Damit Pi-hole seine Arbeit machen kann, müssen jetzt alle Geräte den Pi-hole as DNS Server verwenden.
  • Der Pi-hole muss ab jetzt immer online und erreichbar sein, sonst funktioniert das Surfen im Internet und andere Internet abhängige Dienste nicht mehr.
  • Sollten Seiten geblockt werden, die man eigentlich sehen möchte, müssen diese in Pi-hole whitelisted werden
  • Am Beispiel der FritzBox mit FritzOS 7 und aufwärts, muss jetzt also folgendes konfiguriert werden:
    Zur Erinnerung, mein Pi-hole horcht auf der 192.168.xxx.8

    Jetzt runterscrollen…

    Jetzt den Pi-hole als DNS Server festlegen und speichern nicht vergessen!

    Bitte etwas Geduld, denn alle Geräte behalten Ihre DNS Konfiguration so lange, bis ein neues DHCP Lease vergeben, also auch eine Aktualisierung der DNS Servers Konfoguration am Endgerät vorgenommen wird. Das kann man bspw. mit einem Neustart des betreffenden Gerätes erreichen oder an einem Windows System durch Deaktivieren und erneutem Aktivieren des Netzwerk-Adapters oder auf der CMD, als Administrator mit

    ipconfig /release
    ipconfig /renew

    Prüfen kann man das, indem man in der Pi-hole GUI die Log Einträge prüft. Hier müssten nun sukzessive die Geräte aus dem lokalen Netzwerk erscheinen, also der Nachweis, dass sie Pi-hole als DNS Server verwenden.

    Im nächsten Beitrag werde ich auf die Verwaltung von Pi-hole und die "Spezialitäten" des DNS Servers, unter Pi-hole und dessen Verwendung im Zusammenhang mit WireGuard eingehen…