Wie installiere ich Pi-hole (DNS-Server und Adblocker) auf dem Raspberry Pi?

Dieser Artikel führt euch durch die Installation und Konfiguration von Pi-hole auf einem Raspberry Pi. Pi-hole ist ein DNS-Server, Adblocker und DHCP-Server in einem. Vermutlich sehen die meisten noch einen Sinn in einem Adblocker – aber in einem eigenen internen DNS Server?

Als Softwareentwickler habe ich einige Anwendungen im internen Netzwerk auf dem Raspberry Pi oder anderen Geräten laufen. Diese muss ich direkt über die IP Adresse und Pfad ansprechen. Meine Fritzbox erlaubt aus Sicherheitsgründen (DNS Rebind Schutz) eigene DNS Einträge nicht. Aus diesem Grund habe ich mich entschieden Pi-hole zu installieren und als DNS-Server und Adblocker zu nutzen. Der Adblocker funktioniert im übrigen über DNS Einträge. Es ist nicht möglich den Adblocker ohne den Pi-hole als DNS Server zu nutzen.

Komponenten

Installation Pi-hole

Die Installation läuft größtenteils automatisch ab. Ihr werdet hin und wieder um Bestätigung oder Auswahl gefragt.

#Download und Starten der Installation
curl -sSL https://install.pi-hole.net | bash

Führt den oben genannten Befehl aus. Nach dem Download startet die Installation.

Mit Enter bestätigen.

Dieser Bildschirm weißt darauf hin, dass der Raspberry Pi statische IP braucht um als DNS Server zu funktionieren. Eine andere Möglichkeit wäre die permanente Reservierung per DHCP. Die IP Adresse vom DNS Server darf sich eben nicht ändern. Bestätigt diesen Bildschirm mit Yes.

Wählt das Netzwerk-Interface aus, welches ihr für den Pi-hole nutzen möchtet. eth0 sollte hier der Standard sein. Bestätigt mit Ok.

Die Zusammenfassung zeigt nochmals die aktuellen Netzwerkeinstellungen und bestätigt diese als statische IP Adresse.

Unter Umständen kann es zu einer Doppelzuweisung der ausgewählten statischen IP Adresse kommen. Dieser Schritt weißt darauf hin – wir bestätigen mit Ok.

Der nächste Schritt ist die Auswahl des externen DNS Servers. Ich benutze ganz gerne Cloudflare. Ihr könnt aber auch Google oder andere nutzen.

Die Selektion der Blacklist für den Adblocker bzw. eine Liste der DNS Einträge die geblockt werden. Bei der Standardinstallation gibt es nur die StevenBlack Liste. Bestätigt mit Ok.

Ihr werde gefragt, ob ihr das Web UI installieren möchtet. Das würde ich zwingend raten, denn das Web UI erleichtert die Konfiguration erheblich. Weiterhin könnt ihr grafisch viele Statistiken einsehen. Bestätigt mit Ok.

Hab ihr euch für das Web UI entschieden muss dieses per Webserver laufen. Dieser Schritt installiert euch einen solchen Webserver automatisch. Falls ihr bereits einen Webserver laufen habt könnt ihr ebenso die Dateien manuell in euren Webserver kopieren. Ich würde euch ebenfalls dringlich empfehlen diese Option auf On zu setzen und mit Ok zu bestätigen.

Grade am Anfang ist es hilfreich und sinnvoll die DNS Queries zu loggen. Ihr könnt geblockte und durchgelassene DNS Anfragen im Web UI sehen. Ich empfehle euch Log queries zu aktivieren. Weiter mit Ok.

Für die Aufzeichnung könnt ihr aus Datenschutzrechtlichen Gründen bestimmte Daten ausblenden. Ich habe jedoch Show everything gewählt und mit Ok bestätigt.

Die Installation ist nun abgeschlossen. Auf dem Abschlussbildschirm sehr ihr die Verbindungsdaten und das Passwort, welches ihr für den Login im Web UI benötigt.

Ändern des Passwortes für das Web UI

Das Passwort lässt sich ganz einfach über die Konsole anpassen.

#Password ändern
pihole -a -p newPassword

Pi-hole als DNS Server in der Fritzbox setzen

Ruft das Web UI der Fritzbox auf und navigiert zu Heimnetz -> Netzwerk -> Tab Netzwerkeinstellungen. Scrollt herunter und klickt auf IPv4-Adressen.

Fritzbox - Heimnetz -> Netzwerk -> Netzwerkeinstellungen -> IPv4-Adressen
Fritzbox – Heimnetz -> Netzwerk -> Netzwerkeinstellungen -> IPv4-Adressen

Tragt in der Einstellung Lokaler DNS-Server die IP Adresse eures Raspberry Pi ein auf dem Pi-hole läuft.

DNS-Server auf IP vom Raspberry Pi setzen
DNS-Server auf IP vom Raspberry Pi setzen

Bestätigt am mit unteren Fensterrand mit Ok. Die Fritzbox verteilt nun die neue Information des DNS Servers. Die Clients der Firtzbox bekommen die neue IP des DNS Servers mitgeteilt. Dies kann einige Minuten dauern. Notfalls müssen die Clients sich mit dem Netzwerk neu verbinden. Aus Erfahrung zieht sich der Client dann die neue DNS IP Adresse.

Whitelist von Domains in Pi-hole

Die Liste der geblockten DNS Einträge ist sehr groß. Es wird hin und wieder vorkommen, dass ihr Seiten oder Bereiche von Seiten nicht mehr öffnen könnt, die ihr jedoch braucht. Ein Beispiel bei mir war https://analytics.google.com/. Der Pi-hole blockt diese Domain.

Um diese Domain zu whitelisten loggt euch im Web UI von Pi-hole ein. Tragt unter Whitelist die Domain ein und fügt sie mit Add to Whitelist hinzu.

Das Ergebnis sollte dann wie folgt aussehen:

Whiteliste analytics.google.com
Whiteliste analytics.google.com

Nun solltet ihr im Browser diese Domain wieder öffnen können.

Eigene DNS Einträge setzen

In meiner Einleitung habe ich den Sinn für eigene interne DNS Einträge beschrieben. Diese kann ich nun ebenfalls im Web UI von Pi-hole setzen. Navigiert dazu in Local DNS -> DNS Records. Tragt bei Domain euren DNS ein, den ihr im internen Netzwerk nutzen möchtet. Bei IP Adresse tragt ihr die IP Adresse ein auf die der DNS Eintrag zeigen soll.

Ich habe einen Webserver auf 192.168.178.62 laufen und habe dort 2 Applikationen. Die Gartenberegnung und die Lichtsteuerung. Bevor ich die internen DNS Einträge gesetzt habe musste ich die Gartenberegnung mit http://192.168.178.62/garten und die Lichtersteuerung mit http://192.168.178.62/lights aufrufen. Mit den internen DNS Einträgen hört der Server nun auf http://lights.home.loc bzw. http://garten.home.loc.

Interne DNS Einträge
Interne DNS Einträge

Das Setzen der DNS Einträge reicht natürlich noch nicht aus. Der Webserver muss ebenfalls noch konfiguriert werden, damit er auf diese DNS Einträge hört. Wie du die Konfiguration im Apache einrichtest findest du in diesem Artikel.

Hilfreiche Links

Beitrage der gleichen Kategorie

Deploy React to Raspberry Pi

In diesem Artikel möchte ich euch in aller Kürze ein kleines Script an die Hand geben, welches es euch ermöglicht per npm Kommando eure Applikation auf den Raspberry Pi oder ein sonstiges Linux System zu deployen. Für die Datenkopie nutzen wir den Befehl scp. Die komplette Syntax und Referenz findet ihr hier. Damit das Script […]

0 Kommentare

Bitte tragt euren Namen ein.
Bitte tragt eure Email-Adresse ein.
Top