Die Installation von Pi-Hole auf einem Raspberry Pi 3

Mit einem Raspberry Pi kann man ziemlich viele Dinge anstellen. Eine Möglichkeit ist, dass man einen Pi als DNS Server mit der Software Pi-Hole verwendet. Was ist der Vorteil von sowas?

Der DNS-Server als Werbeblocker

Wer sich heutzutage im Internet aufhält, wird bestimmt schon mal an der ein oder anderen Stelle ein kleines, unauffälliges Werbebanner gesehen haben. OK, Scherz beiseite, das Internet ist voll mit Werbung, unnützen blinkenden Bannern und sonstigem Unfug. Pi-Hole ist ein DNS-Server, der für die Umwandlung von Namen in IP-Adressen genutzt wird. Der Gimmick der Software ist, dass Sperrlisten genutzt werden, damit diverse Adressen nicht aufgelöst bzw. “anders” aufgelöst werden. Wird z.B. ein Werbebanner von der Adresse ad.beispiel.de ausgeliefert und diese Adresse auf der Sperrliste steht, kann der Browser das eigentliche Werbebanner nicht aufrufen (z.B. weil er meint, der Server ist unter 127.0.0.1 erreichbar) und es wird nicht angezeigt. Super Sache, vor allem weil so nicht auf jedem Endgerät ein Werbeblocker installiert werden muss und man z.B. auch sein Handy deutlich besser und werbefreier nutzen kann. Eine Diskussion über das Sperren von Werbung und der armen armen Werbebranche sparen wir uns übrigens an dieser Stelle, wer Werbung sehen möchte und die Seiten unterstützen möchte, installiert entweder keinen Pi-Hole oder stellt seine Lieblingsseiten auf die Whitelist.

Gibt es Seiten oder Adressen, die fälschlicherweise geblockt werden, kann dies durch eine Whitelist umgangen werden. Weiterhin können Seiten, die nicht erkannt werden, so auf eine Blacklist kommen. Man sieht eine Statistik, wie viel geblockt wurde und auch was, wenn man möchte. Ich nutze den Pi-Hole zuhause in meinem privaten Netz seit ein paar Tagen und möchte hier einfach mal eine Anleitung schreiben, wie man das Gerät installiert. Here we go…

Die Grundinstallation

Wir starten mit einem Raspberry Pi der dritten Generation. Natürlich gehen auch Geräte der älteren oder neueren Generation, aber von dem dritten Modell habe ich noch ein paar hier rumliegen, die nicht (mehr) gebraucht werden.

Download von Raspbian

Wir starten mit dem Download von Raspbian, das Image bekommen wir unter https://www.raspberrypi.org/downloads/raspbian/. Ich nutze Raspbian Buster with desktop, die Variante mit zusätzlicher Software brauche ich in diesem Fall nicht.

Win32DiskImager

Um das Image später auf die SD-Karte zu spielen, nutze ich Win32DiskImager. Die Software kann unter anderem auf Sourceforge heruntergeladen werden: https://sourceforge.net/projects/win32diskimager/

SD Memory Card Formatter

Die Software SD Card Formatter kann die SD-Karte im Vorfeld formatieren und in das korrekte Format bringen. Die Software kann unter https://www.sdcard.org/downloads/formatter/ heruntergeladen werden.

Die Installation

Wir starten mit dem Aufruf der Software SD Memory Card Formatter und wählen unsere SD-Karte aus, die wir mit einem Kartenlesegerät an den PC / Notebook angeschlossen haben. Ich empfehle an dieser Stelle eine volle Formatierung der Karte, auch wenn dies länger dauert. Das hat den Vorteil, dass mögliche Fehler auf der Karte direkt erkannt werden und die Karte getauscht werden kann.

Ist die Karte komplett formatiert, können wir das heruntergeladene Image auf die SD-Karte kopieren. Dazu nutzen wir die Software Win32DiskImager, wählen die Karte aus, wählen das Image aus (was vorher entpackt werden muss) und schreiben es mit dem Button Write auf die Karte.

Wenn das Image vollständig auf die Karte geschrieben wurde, können wir die Karte in unseren kleinen Pi stecken und das System starten.

Falls man direkt nach dem Start auf das System zugreifen möchte, kann man auch eine Datei mit dem Namen SSH auf die Hauptebene sppeichern, in diesem Fall wird automatisch SSH aktiviert. Da nach dem ersten Start allerdings ein kleiner Wizard durchläuft, der einige wichtige Abfragen macht, empfiehlt sich die einmalige Nutzung von einem Monitor mit Maus/Tastatur.

Die ersten Schritte der Einrichtung

Startet das System das erste Mal, wird im ersten Schritt die Partition so vergrößert, dass die gesamte SD-Karte genutzt wird. Danach startet das System normal durch und begrüßt uns mit einem kleinen Assistenten. Mit Hilfe des Assistenten können wir die Sprache einstellen, das Tastatur-Layout sowie die ersten Updates einstellen. Nach den Updates möchte das System nochmal einen Neustart haben, danach können wir mit der Einrichtung des Netzwerks fortfahren.

Aktivieren von SSH & setzen von einem eigenen Hostnamen

Damit wir von außen per SSH auf das System kommen, empfiehlt sich die Aktivierung von SSH auf das System. Dies geschieht im Optionsmenü von unserem PI.

Hier können wir direkt einen eigenen Namen für unser System setzen

Unter Interfaces können wir nun SSH einschalten.

Nach einem Klick auf OK steht nun SSH zur Verfügung, wegen der Änderung des Hostnamen müssen wir das System allerdings einmal durchbooten.

Konfiguration einer statischen IP-Adresse

Damit der Raspberry Pi immer unter der gleichen IP-Adresse verfügbar ist, setzen wir die IP von DHCP auf statisch. Dies geschieht durch Anpassung der Datei /etc/dhcpcd.conf.

Hier passen wir die folgenden Zeilen auf die von uns gewünschten Werte an:

Die Datei wird gespeichert und wir starten unseren Pi ein letztes Mal durch, damit er die Netzwerk-Änderungen anwendet. Danach können wir uns erneut per SSH an dem System anmelden und mit der Pi-Hole Installation beginnen.

Die Installation von Pi-Hole

Nachdem nun alle benötigten Vorbereitungen getroffen sind, können wir nun die Installation der Pi-Hole Software starten. Dies geht ziemlich einfach, wir brauchen dazu nur den folgenden Befehl ausführen:

Die Installation läuft weitestgehend von alleine durch, es werden allerdings einige Abfragen gemacht, wie man sein System gerne konfigurieren möchte.

Als erstes müssen wir die Upstream-DNS-Server angeben, die wir gerne benutzen möchten. Ich bevorzuge hier die OpenDNS-Server.

Danach erfolgt die Auswahl der Blocklisten, die wir gerne nutzen möchten. Ich lasse hier die Standard-Auswahl stehen.

Nun müssen wir wählen, ob wie Werbung über IPv4 und/oder IPv6 blocken möchten. Auch hier bleibt die Standard-Auswahl bei beiden Optionen stehen.

Nun bekommen wir nochmal unsere Netzwerk-Einstellungen gezeigt mit der Empfehlung, dass wir eine statische IP-Adresse benutzen sollten.

Im nächsten Schritt werden wir gefragt, ob wir das grafische Web-Interface nutzen möchten. Dies ist absolut empfohlen, da wir über das Web-Interface einiges einstellen und konfigurieren können, z.B. unsere Black- und Whitelisten.

Wenn die DNS-Abfragen gespeichert und aufgeführt werden sollen (was zu empfehlen ist für Fehlersuche und Troubleshooting), muss dies ebenfalls eingeschaltet werden. Bei einer Aktivierung kann dann noch das Log-Level ausgewählt werden.

Hat alles geklappt, wird die erfolgreiche Installation inkl. dem Kennwort für das Web-Interface gemeldet:

Die Anmeldung an der Webkonsole

Rufen wir nun die im Setup angezeigte URL auf, erwartet und das Webinterface von unserem Pi-Hole.

Hier erwartet und erstmal nur eine grobe Übersicht über die Anfragen, die geblockten Anfragen sowie die Anzahl der Domains auf der Blockliste. Melden wir uns nun mit dem Kennwort an, was im Setup angezeigt wurde, bekommen wir hier auch noch Möglichkeiten zur Anpassung der Einstellungen sowie zur Pflege der Listen für unsere eigenen Domains.

Die Aktivierung des Pi-Holes

Damit wir nun von dem Pi-Hole DNS Server profitieren, müssen wir ihn in unserem Internet-Router als DNS-Server einstellen. Ich in meinem Fall muss dies in meinem Ubiquiti USG Pro machen, hier stelle ich den DNS-Server vom WAN-Interface auf die vergebene Adresse in meinem lokalen Netzwerk.

An dieser Stelle können wir auch sehen, warum ich meinen Pi-Hole in den Screenshots pihole2 genannt habe: Es existiert bereits ein pihole1, der als primärer DNS-Server schon im Netzwerk aktiv ist. Da aber der Ausfall von dem einen Gerät einen Ausfall vom DNS verursachen würde, habe ich einfach zwei Raspberrys genommen, um eine Redundanz zu schaffen 🙂

Die Statistik vom ersten Gerät sieht auch etwas lebendiger aus als auf dem gerade erst konfigurierten Gerät:

Fazit

Damit wäre die Grundinstallation von unserem Pi-Hole, basierend auf einem Raspberry Pi 3, abgeschlossen. Das System arbeitet nun als DNS-Resolver für mein internes Netzwerk und ist mit den Standard-Regeln und -Listen auch erstmal gut ausgestattet. Man kann jederzeit eigene Filter oder ganze Listen hinzufügen, wenn man den Funktionsumfang noch erweitern möchte. Der Betrieb läuft flüssig, schnell und kostet dank dem geringen Stromverbrauch von einem Raspberry Pi kaum zusätzliches Geld.

Viel Spaß bei der Einrichtung und Nutzung von eurem eigenen Pi-Hole. Achtet vor allem mal auf die Werbung auf den mobilen Endgeräten im WLAN, die nach Nutzung des Pi-Holes dramatisch einbricht und viel weniger stört.

Normalerweise kommt ja an dieser Stelle immer die Bitte, diesen Blog doch bitte auf die Ausnahmeliste im Pi-Hole zu setzen. Müsst ihr bei meinem Blog nicht machen, da ich null Werbung schalte und wie gewohnt weiterhin meine Informationen frei zur Verfügung stelle. Vielleicht könnt ihr mir ja mal nen Kaltgetränk ausgeben, wenn ihr mich seht. Das ist irgendwie viel cooler 🙂

Jan

Jan Kappen arbeitet sein 2005 in der IT. Er hat seine Ausbildung 2008 abgeschlossen und war bis 2018 als IT-Consultant im Bereich Hyper-V, Failover Clustering und Software Defined Storage unterwegs. Seit 2015 wurde er jährlich von Microsoft als Most Valuable Professional (MVP) im Bereich "Cloud & Datacenter Management" ausgezeichnet für seine Kenntnisse und die Weitergabe seines Wissens. Jan ist häufig auf Konferenzen als Sprecher zu finden, weiterhin bloggt er viel. Seit September 2018 ist Jan als Senior Network- und Systemadministrator bei einem großen mittelständischen Unternehmen im schönen Sauerland angestellt. In seiner Freizeit kümmert er sich um das Freifunk-Netzwerk in Winterberg und Umgebung.

Schreibe einen Kommentar

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