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.

sudo nano /etc/dhcpcd.conf

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

# Example static IP configuration:
#interface eth0
#static ip_address=192.168.0.10/24
#static ip6_address=fd51:42f8:caae:d92e::ff/64
#static routers=192.168.0.1
#static domain_name_servers=192.168.0.1 8.8.8.8 fd51:42f8:caae:d92e::1

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:

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

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 🙂


Sie benötigten persönliche Unterstützung oder haben nicht die richtige Lösung für Ihr Problem gefunden?

Dieser Blog wird von mir, Jan Kappen, in seiner Freizeit betrieben, hier beschreibe ich Lösungen für Probleme aller Art oder technische Anleitungen mit Lösungsansätzen.

Die berufliche Unabhängigkeit

Ich bin seit Januar 2020 vollständig selbstständig und habe meine eigene Firma gegründet, die Building Networks mit Sitz in Winterberg im schönen Sauerland. Hier stehe ich als Dienstleister gerne für Anfragen, Support oder Projekte zur Verfügung.

Die Firma Building Networks bietet Ihnen:

  • Hilfe und Support per Telefon, Fernwartung oder persönlich vor Ort
  • Projekt-Unterstützung
  • Ausgezeichnete Kompetenz zu den Themen
    • Microsoft Hyper-V
    • Microsoft Failover Clustering & HA
    • Storage Spaces Direct (S2D) & Azure Stack HCI
    • Veeam Backup & Recovery
    • Microsoft Exchange
    • Microsoft Exchange Hybrid Infrastruktur
    • Microsoft Active Directory
    • Microsoft Office 365
    • Ubiquiti
    • 3CX VoIP PBX
    • Fortinet Network Security
    • Baramundi Software
    • ...

Ich freue mich über Ihren Kontakt, weitere Informationen finden Sie auf der Webseite meiner Firma unter Building-Networks.de

Jan

Jan Kappen arbeitet seit 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. Von September 2018 bis Dezember 2019 war Jan als Senior Network- und Systemadministrator bei einem großen mittelständischen Unternehmen im schönen Sauerland angestellt. Im Januar 2020 hat er den Sprung in die Selbstständigkeit gewagt und ist seitdem Geschäftsführer der Firma Building Networks in Winterberg. In seiner Freizeit kümmert er sich um das Freifunk-Netzwerk in Winterberg und Umgebung.

15 Kommentare:

  1. Perfekte Anleitung. Klappt super. Danke.

    Ich suche nun noch nach einer Anleitung wie ich von meinem Smartphone (iPhone) aus per VPN auf das pihole „zugreifen“ kann bzw. also auch mein Smartphone unterwegs von Werbung befreien kann.

    Hast du da einen Tipp? Habe bisher nichts gefunden.

    • Hi,
      um den Pi auch von deinem Handy aus zu nutzen, müsstest du ein VPN mit deinem Handy aufbauen und sämtliche Daten über den VPN-Tunnel schicken (also kein Split Mode) sowie deinen Pi Hole als DNS Server nutzen.
      Eine andere Möglichkeit wäre die Nutzung von Apps, die etwas ähnliches machen, z.B. Blokada. Hier wird im Prinzip das gleiche gemacht, ist die Frage ob du dem Betreiber die Daten von dir geben möchtest oder nicht 🙂
      Gruß, Jan

      • Hm ja. Das dachte ich mir. Ich wollte von in der fritzbox einrichten und die Daten einfach im iPhone eingeben. Muss ich da unter Netzwerk und auch unter Internet/ Zugangsdaten je die ip des pihole bei DNS eingeben? Kennst du dich da aus? Hab versucht es ein wenig zu googeln, weiß aber nicht zu 100% was die richtige Einstellung ist.
        Brauche ich für VPN der fritzbox auf jeden Fall einen Dynamic DNS Server oder kann ich da das pihole eintragen?
        Danke für deine Hilfe.

  2. Kannst dir deine Antwort glaube ich sparen. Habe eben gesehen dass meine fritzbox nur über IPv6 erreichbar ist. Mein Mobilfunkanbieter bietet jedoch nur IPv4 an. Eine direkt vpn Verbindung zur fb kann ich also vergessen wenn ich das richtig verstehe.

    Muss also irgendwie über den pi gelöst werden. Mit Openvpn oder so. Leider hab ich noch keine Anleitung gefunden wie ich das mit pihole kombinieren kann, die ich auch verstehe. 😉

  3. Hallo Jan, ich habe Pi-hole schon eine ganze Weile laufen und war sehr zufrieden. In letzter Zeit kommt die Werbung im Firefox wieder und ich habe das Problem entdeckt… dns over https. Trots Abschaltung von DoH im Firefox hab ich immernoch Werbung, z.B. auf wetter.com. Evtl hast Du ja eine Lösung.

  4. Hallo Jan,
    wo genau hängen Deine PiHoles genau?
    Vor oder nach dem USG?
    In Management oder einem anderen VLAN?

    Danke und Gruss,
    Matthias

    • Hallo Matthias,
      meine PiHoles hängen im internen LAN, was in meinem Fall auch das Management-VLAN ist. Man könnte sie theoretisch auch in ein anderes Subnetz hängen und routen, wenn du Firewall-Regeln entsprechend vorhanden sind. Macht in meinem Heim-Netz aktuell aber keinen Sinn 🙂
      Gruß, Jan

  5. Habe nach dieser Anleitung pihole auf einem Raspi 2B aufgesetzt und alles sofort und ohne Probleme zum laufen bekommen. Jetzt noch ein bisschen Feintuning und alles ist perfekt.
    Danke für diese Anleitung.

  6. vielen Dank für die Anleitung, habe mir ein synology router bestellt, danach richte ich pi-hole ein.

  7. Hallo Jan und alle Mitleser,
    Als erstes möchte ich sagen, dass ich es sehr cool finde, dass hier dein umfangreiches Wissen mit deiner Community geteilt wird.

    Und als nächstes dass ich diese Anleitung verwenden werde um mein pi4 heute Mittag einzurichten und dann weiteres Feedback geben werde.
    Zudem wüsste ich gerne von dir welches Lehrmaterial ich mit einem niedrigem Wissensstand verwenden sollte um mich mehr mit der Networking Materie zu befassen.

    Würde gerne ein paar Server zuhause erstellen können und evtl auch paar detected Gaming server…ubd zwar so, dass ich genau verstehe wie alles ineinander greift und nicht nur so dass es funktioniert. 🙄

    Hoffe der Kommentar ist passend und nicht zu sehr ausschweifend.

    • Hallo Paul,
      danke für die Blumen 🙂 Ich kann dir udemy als Quelle für Anleitungen und Tutorials ans Herz legen, weiterhin gibt es auf youtube auch einige gute Anleitungen zu gewissen Themen. Und ansonsten hilft arbeiten und probieren mit der Thematik immer gut, lesen von Tutorials und versuchen zu verstehen, wie die Dinge miteinander arbeiten oder eben auch nicht.
      Viel Erfolg 🙂
      Jan

  8. Erst mal Kompliment und herzlichen Dank für die schöne Anleitung.
    Leider funtkioniert bei mir die Pi-Hole Installation nicht.
    Auf die Command-Line
    curl -sSL https://install.pi-hole.net | bash
    hin bekommen ich die folgende Meldung:
    Failed to connect to install.pi-hole.net port 443: Keine Route zum Zielrechner
    Grundsätzlich funktioniert die Internetverbindung.
    sudo apt-get update
    konnte ich erfolgreich ausführen.

    Wäre froh um Tipps wie ich das Problem lösen kann.

    Danke schon jetzt!!!

  9. Pingback:Pi-Hole DNS Server als VM unter Hyper-V - Jans Blog

Schreibe einen Kommentar

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