PiHole Teil 1: PiHole auf dem Raspberry Pi einrichten

PiHole Teil 1: PiHole auf dem Raspberry Pi einrichten

Dieser Beitrag ist Teil 1 von 3 in der Artikelreihe Pihole

Dieser Artikel ist der erste Teil meiner kleinen Artikelreihe zu PiHole. Im ersten Teil zeige ich dir wie du PiHole installierst und im Netzwerk einrichtest.

Im zweiten Teil zeige ich dir, wie du die DNS-Anfragen mit DNSCrypt verschlüsselst, um eine höhere Anonymität zu erzielen und der DNS-Manipulation vorzubeugen.

Im dritten Teil nutze ich Unbound, um DNS-Anfragen lokal selbst zu beantworten, sodass Endgeräte die DNS-Anfragen nicht mehr an einen Server im Internet stellen müssen. Beachte, dass DNSCrypt nicht in Verbindung mit Unbound genutzt werden kann.

Zusammenfassung

Nach diesem Tutorial…

  • Läuft auf deinem Raspberry Pi die Software PiHole
  • Verschlüsselt DNSCrypt deine DNS-Anfragen (Optional) oder
  • Nutzt du Unbound als lokalen DNS-Server, der die DNS-Anfragen in deinem Heimnetz beantwortet (Optional)

Voraussetzungen

Dieser Beitrag befasst sich mit der Einrichtung von PiHole auf einem Raspberry Pi. Es wird davon ausgegangen, dass Raspbian bereits installiert ist und auf den Pi entweder direkt mit Monitor und Maus oder mittels SSH über Netzwerk zugegriffen werden kann. Außerdem müsst ihr vorher prüfen, ob es euer Router erlaubt einen eigenen DNS-Server anzugeben. Diese Funktion wird häufig nicht von den eigenen Routern diverser Anbieter unterstützt. Eine Fritz!Box unterstützt diese Möglichkeit immer.

Was genau ist der PiHole?

Der PiHole ist eine netzwerkweite Lösung zum Blockieren von Werbung und Trackern auf allen Endgeräten, wie Smartphones, Tablets und Computern unabhängig von deren Betriebssystemen. Das bedeutet:

Der PiHole kann theoretisch Werbung und Tracker für alle Geräte blockieren, die sich in eurem Netzwerk befinden. Am Beispiel von In-App Werbung erkläre ich kurz, wie der PiHole technisch funktioniert. Angenommen ein App-Entwickler hat in seiner App Werbung integriert. Bei jedem Start der App oder auch während der Ausführung wird die Adresse werbung.server.com ein oder sogar mehrmals aufgerufen. Dieser Domainname muss allerdings zunächst in eine IP-Adresse übersetzt werden, damit die Werbung anschließend von dort geladen werden kann.

IP-Adressen
Alle Webseiten und Server im Internet sind über IP-Adressen erreichbar. Das kann man sich wie eine Adresse vorstellen. Da sich IP-Adressen nur sehr schwer merken lassen, werden Domainnamen zur Navigation im Internet verwendet. Um eine Internetseite aufzurufen, muss der Domainname (z. B. www.startpage.com) in die dahinterliegende IP-Adresse umgewandelt werden. Sonst „weiß“ der Browser nicht, wo er die gesuchte Internetseite findet.

Domain Name System (DNS)

Dieser Service wird vom sogenannten Domain Name System (DNS) erledigt. Ein DNS-Server erhält dabei die Anfrage als Domainname wie werbung.server.com und ordnet ihr die zugehörige IP-Adresse zu, z. B. 192.168.34.17. Genau das gleiche passiert, wenn du im Browser eine URL eingibst (also den Domainnamen), dieser wird dann von einem DNS-Server in die zugehörige IP-Adresse übersetzt. Du kannst dir das so vorstellen, dass DNS-Server riesige Tabellen haben, in denen in jeder Zeile eine IP-Adresse einem Domainnamen zugeordnet wird. Der Server macht dann nichts weiter, als an den Absender eines Domainnamen die passende IP-Adresse zurückzuschicken. Der Absender „weiß“ dann, wo er im Internet die angefragte Webseite findet.

Theoretisch ist es daher auch möglich im Browser Webseiten direkt mit ihren IP-Adressen anzusteuern. Namen sind jedoch leichter zu merken als IP-Adressen, daher sind in deinem Router üblicherweise DNS-Server von deinem Provider hinterlegt, die Adressen wie werbung.server.com in eine IP-Adresse umwandeln. Es ist bei vielen Routern allerdings auch möglich eigene DNS-Server anzugeben und genau das nutzen wir in Verbindung mit dem PiHole.

PiHole als DNS-Filter

Das DNS-Prinzip macht sich der PiHole zunutze. Intern verwaltet der PiHole aktuell eine eigene DNS-Liste mit über 100.000 Domainnamen, die Werbung ausliefern oder den Nutzer tracken. Nutzt das Smartphone anstatt des Routers nun den PiHole als DNS-Server, so wird die Adresse werbung.server.com mit der internen Liste abgeglichen. Kommt es zu einem Treffer, blockiert der PiHole die Anfrage. Die Werbeanfrage wird also nicht in eine IP-Adresse übersetzt und gelangt so auch nicht ins Internet und es wird keine Werbung geladen und angezeigt. Anstatt der Werbung sieht der Nutzer einen Platzhalter bzw. einfach nichts. Ein einfaches Prinzip, dass Werbung und auch Tracker blockiert und je nach Surfverhalten auch zwischen 10% und 40% Datenverkehr einsparen kann.

Aus eigener Erfahrung kann ich sagen, dass die meisten Anfragen von Google, Apple, Microsoft und Amazon kommen und mit dem PiHole blockiert werden. Gerade auch Windows 10 nimmt sehr häufig Kontakt mit Servern von Microsoft auf, was mit dem PiHole protokolliert werden kann.

WLAN-Einstellungen

Bevor PiHole installiert wird, kümmern wir uns um den WLAN-Adapter. Ich empfehle den PiHole besonders bei vielen WLAN-Geräten über den Ethernetanschluss zu betreiben, da es sonst häufig zu Verzögerungen kommen kann.

Es ist jedoch auch jederzeit möglich nach Einrichtung des PiHoles von WLAN auf Ehternet umzustellen. Darüber hinaus kann die SD-Karte von einem konfigurierten Pi Zero ohne Anpassung einfach in einen Pi B/B+ genutzt werden, um zu einem spätere Zeitpunkt in einen kabelgebundenen Pi umzuziehen. Entscheidest du dich für den WLAN-Betrieb, ist es empfehlenswert die Energiespareinstellungen des Funkadapters auszuschalten. Dies verringert die Antwortdelays des PiHoles spürbar. Solltest du die Ethernetvariante nutzen, so ist es sinnvoll den WLAN- sowie den Bluetooth-Adapter zu deaktivieren. Da der Pihole unterbrechungsfrei laufen soll, kann so Strom gespart werden.

WLAN Energiesparfunktion ausschalten

Dieser Abschnitt ist nur notwendig, wenn du den PiHole drahtlos betreibst. Solltest du ihn jedoch ohnehin mit Kabel am Router angeschlossen haben, kannst du den Punkt überspringen.

Für den Fall, dass der PiHole drahtlos betrieben wird, ist es sinnvoll die Energiesparfunktion des WLAN-Adapters auszuschalten. Diese sorgt dafür, dass der Adapter in eine Art Standby-Modus wechselt, wenn er nicht beansprucht wird. Beim PiHole kann er dazu führen, dass Anfragen verzögert weitergeleitet werden, was teilweise in einem trägen Webseitenaufbau resultiert. Darüber hinaus kann es bei Streaminganbietern manchmal zu Problemen führen.

Für die Abschaltung öffnen wir die Datei mit den Netzwerk-Einstellungen.

sudo nano /etc/network/interfaces

Dort ergänzen wir unten folgende Zeilen, die den Energiesparfunktion dauerhaft ausschalten.

allow-hotplug wlan0
iface wlan0 inet manual
post-up iw wlan0 set power_save off

Speichern können wir dann mit [STRG] + [X], [Y] und dann mit [Enter]. Anschließend muss noch ein Neustart durchgeführt werden.

WLAN und Bluetooth deaktivieren

Dieser Abschnitt ist nur notwendig und sinnvoll, wenn du den PiHole über den Ethernetanschlus betreiben willst. Die Deaktivierung erfolgt softwareseitig. Einige Nutzer mit entsprechenden Messmitteln berichten, dass zumindest der Bluetooth-Chip trotz dieser Deaktivierung weiter funkt.

sudo nano /boot/config.txt

Dort trägst du am Ende die folgenden beiden Zeilen ein.

dtoverlay=disable-wifi
dtoverlay=disable-bt

Speichern können wir dann mit [STRG] + [X], [Y] und dann mit [Enter]. Anschließend muss noch ein Neustart durchgeführt werden.

IPv4 und IPv6 für PiHole vorbereiten

Damit PiHole die richtigen IP-Adressen automatisch bezieht und sowohl IPv4 als auch IPv6 unterstützt, müssen wir ein paar Einstellungen im Router vornehmen. Ich zeige dies hier am Beispiel der Fritz!Box.

IPv4

Der Raspberry Pi muss immer die gleiche IPv4-Adresse im Heimnetz erhalten. Gehe dazu nach Heimnetz > Netzwerk > Netzwerkverbindungen und suche den Raspberry Pi in der Lister heraus. Klicke rechts auf das Stiftsymbol, um die Einstellungen zu bearbeiten. Dort kannst du die gewünschte IPv4-Adresse einstellen (oder die aktuelle eingestellt lassen). Setzte darunter den Haken bei: Diesem Netzwerkgerät immer die gleiche IPv4-Adresse zuweisen. Speichere die Einstellungen mit [OK].

IPv6

Bei IPv6 gibt es diese Option leider nicht, da IPv6 anders funktioniert. Wir wechseln hier in folgenden Einstellungsdialog: Heimnetz > Netzwerk > Netzwerkeinstellungen > IPv6-Konfiguration. Dort stellen wir Folgendes ein.

  • Unique Local Addresses
    • Unique Local Addresses (ULA) immer zuweisen
    • DEAKTIVIERT: ULA-Präfix manuell festlegen
  • Weitere IPv6-Router im Heimnetz
    • DEAKTIVIERT: Auch IPv6-Präfixe zulassen, die andere IPv6-Router im Heimnetz bekanntgeben
    • AKTIVIERT: Diese FRITZ!Box stellt den Standard-Internetzugang zur Verfügung
      • Präferenz: Hoch
  • DNSv6-Server im Heimnetz
    • AKTIVIERT: DNSv6-Server auch über Router Advertisement bekanntgeben (RFC 5006)
    • Lokaler DNSv6-Server: Feld zunächst noch leer lassen, da wir noch nicht die IPv6-Adresse des PiHoles kennen.
  • DHCPv6-Server im Heimnetz
    • DHCPv6-Server in der FRITZ!Box deaktivieren
      • Es sind keine anderen DHCPv6-Server im Heimnetz vorhanden.

Speichere die Einstellungen mit [OK].

Unter Unique Local Addresses (ULA) steht auch das Präfix lokaler IPv6-Adressen. In der Regel beginnt es mit fd00. Diese Information benötigen wir, um unsere Einstellungen zu überprüfen.

Wir benötigen für den PiHole keinen DHCPv6-Server, da sich die lokale IPv6-Adresse eines Clienten aus dem lokalen ULA-Präfix des Routers und der Geräte-ID (MAC-Adresse) des Clienten zusammensetzen. Beide Teile ändern sich nicht und sind daher immer gleich. ULA-Adressen sind daher nur lokal in einem Heimnetz zugänglich. Darüber hinaus erhalten Clienten sogenannte GUA-Adressen die weltweit einzigartig sind (GUA-Adressen). Unter diesen sind Clienten auch theoretisch aus dem Internet erreichbar.

IP-Adressen überprüfen

Damit wir die IP-Konfiguration nicht wiederholen müssen, überprüfen wir vor der Installation von PiHole, ob der Raspberry Pi die richtigen IP-Adressen bekommen hat.

sudo ifconfig

In der Ausgabe solltest du die IPv4-Adresse sehen, die du in der Fritz!Box eingestellt hast. Darunter kommen eine oder auch mehrere IPv6-Adressen. Die Adresse, die wir suchen beginnt in der Regel mit „fd00::“ gefolgt von 16 Stellen. Dies ist deine festgesetzte lokale IPv6-Adresse des Raspberry Pi. Andere Adressen können z. B. mit „2a02“ oder mit „2100“ beginnen. Dies sind die GUA-Adressen, die sich jedoch ändern können, wenn dein Internetprovider deinem Router ein neues IPv6-Präfix zuteilt.

Sind beide IP-Adresse in der Ausgabe aufgetaucht, können wir mit der Installation beginnen

Installation und Einrichtung

Zunächst aktualisieren wir Raspbian sofern noch nicht geschehen.

sudo apt update && sudo apt upgrade

Für die Installation müssen wir anschließend nur folgenden Befehl auf der Konsole ausführen. Damit wird PiHole aus dem Internet heruntergeladen und installiert.

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

Nachdem alle Pakete installiert wurden, öffnet sich der Konfigurator, in dem wir einige Einstellungen vornehmen können. Im Folgenden zeige ich meine Einstellungen. Du kannst die Einstellungen auch nachträglich jederzeit über die Benutzeroberfläche im Browser ändern.

Upstream DNS-Provider

Der DNS-Provider übersetzt die Domainnamen in die zugehörige IP-Adresse. Der PiHole selbst kann diesen Dienst nicht leisten, da er nur die DNS-Anfragen von Werbung und Trackern kennt und blockiert. Alle übrigen Anfragen werden durchgeleitet und müssen anschließend von einem DNS-Service aufgelöst werden. Da für den Router von nun an der PiHole als DNS-Server fungiert, muss im PiHole ein DNS-Anbieter definiert werden, der die Namensauflösung durchführt. Aus Datenschutzgründen sollte hier keiner der bekannten großen Anbieter hinterlegt werden. Ich definiere daher eigene DNS-Server. Mit Suchmaschinen können im Internet sehr schnell viele DNS-Anbieter ermittelt werden. Für schnelle Reaktionszeiten sowie höheren Datenschutz sollten europäische Server gewählt werden.
Custom: 46.182.19.48, 80.241.218.68

Blockierlisten

Lass hier einfach alle Listen ausgewählt. Diese bieten eine gute Filterung und können bei Bedarf später weiter ergänzt werden.

Internetprotokolle

Wähle hier sowohl IPv4 und IPv6 für die Filterung aus, da die meisten Anwendungen inzwischen beide Protokolle verwenden. Bei mir werden beide Protokolle etwa zu je 50% für den Datenverkehr verwendet. Selbst wenn dein Internetanschluss nur das IPv4 Protokoll verwendet, hast du durch die Auswahl von IPv6 keine Nachteile.

Statische Adressen

PiHole erkennt die IP-Adressen meistens automatisch. Diese sollten der IPv4 und der IPv6-Adresse entsprechen, die du zuvor auf dem Raspberry Pi in der Ausgabe gefunden hast. Trage hier unter IP-Adresse die IP des Raspberry PIs ein und als Gateway die IP eures Routers.
IPv4-Adresse: 192.168.1.5 (Raspberry Pi)
Gateway: 192.168.1.1 (Router)
IPv6-Adresse: Beginnt mit fdoo

Admin Interface

Wähle hier aus, dass die Benutzeroberfläche installiert wird. Es ermöglicht dir den Zugriff auf den PiHole über den Browser. Die Einstellungen können darüber sehr einfach verwaltet und geändert werden.

Lighttpd

Wähle diese Option aus. Hierbei handelt es sich um den Webserver für die Benutzeroberfläche.

Log Queries

Wähle aus, ob du den Datenverkehr loggen möchtest. Ich empfehle diese Option einzuschalten.

Privacy Mode für FTL

Wähle aus in welchem Umfang der Datenverkehr mitgeschrieben wird. Ich habe für die Konfiguration zunächst folgendes ausgewählt: 0 Show everything

Nachdem du alles bestätigt hast, wird dir noch die Adresse für das Web-Interface und das Login-Passwort angezeigt. Das Passwort musst du dir unbedingt an dieser Stelle abspeichern. Die Adresse des Web-Interfaces lautet : http://pi.hole/admin oder über die IP: http://192.168.1.5/admin (Die IP muss auf deine IP angepasst werden)

Einstellungen im PiHole

Rufe als nächstes im Browser die obige Seite auf (http://pi.hole/admin). Dort siehst du nun die Benutzeroberfläche deines PiHoles. Sie ist von jedem Gerät aus erreichbar, das sich in deinem Netzwerk befindet. Aus dem Internet kann darauf jedoch nicht zugegriffen werden und das ist auch gut so. Schließlich sollen Fremde keinen Zugriff auf den PiHole haben.

Gehe nun links auf Login und melde dich mit dem oben notierten Passwort an. Nun kommst du in eine erweiterte Übersicht mit Einstellungsmöglichkeiten. Gehe rechts auf Settings. In dem sich öffnenden Menü siehst du links die IPv4 und IPv6 Adresse deines PiHoles. Notiere sie dir, da du sie später noch im Router eintragen musst. Wechsle oben in den Reiter DNS. Hier aktivierst du ganz unten den Haken bei „Use Conditional Forwarding“. Dort trägst du als Local network 192.168.178.0/24 als IP- Adresse des Routers 192.168.178.1 und als lokalen Domainnamen fritz.box ein. Bei anderen Routern unterscheidet sich der Domainname. Z.B. easy.box bei Vodafone DSL-Routern. Auch die IP-Adressen müsst ihr an die eures Routers angleichen




Zusätzlich müssen die Haken unter Advanced DNS settings wie im Bild oben gesetzt werden. Bei „Never forward non-FQDN“ und bei „Never forward reverse lookups for private IP ranges“ müssen die Haken entfernt und bei „Use DNSSEC“ sollte der Haken gesetzt werden. Letzteres ist aber nicht zwingend notwendig.

In jedem Fall solltest du in deinem Router noch einstellen, dass dem Raspberry Pi immer die gleiche IP-Adresse zugeordnet wird. Andernfalls bekommt der Pi möglicherweise bei jeder Einwahl ins Netzwerk eine neue IP zugeordnet. Die Folge: Der Router findet den PiHole als DNS-Server nicht und kann die DNS-Anfragen nicht weiterleiten.

Dashboard

Auf der Seite Dashboard befindest du dich nach dem Login. Hier siehst du alle eingegangenen DNS-Anfragen der vergangenen 24 Stunden. Weiter unten findest du außerdem die Endgeräte, die den PiHole als DNS-Server nutzen. Beachte, dass die Geräte hier nur angezeigt werden, wenn du den PiHole mit Variante 3 als DHCP konfiguriert hast (siehe unten Einrichtung als DNS-Server). Mehr Details zu den Anfragen findest du in der Logdatei, die du links mit Query Log oder Long term data abrufen kannst.

Blacklist und Whitelist

Es sollten nun etwa 100.000 Domains in der Blockierliste stehen (rotes Feld). Die Standardinstallation beinhaltet damit sehr brauchbare Blockierlisten. Über die Weboberfläche ist es inzwischen sehr einfach möglich in den Einstellungen manuell weitere Blockierlisten hinzuzufügen. Eine sehr große Sammlung findest du unter:

Die Blacklist selbst ist nicht dafür gedacht komplette Blockierlisten hinzuzufügen, da sie nur einzelne Domains aufnehmen kann. Um einzelne Domains zu blockieren, kannst du diese als Eintrag in die Blacklist aufnehmen. Zur Erweiterung der Blockierlisten hingegen gehe auf Settings und dann auf den Reiter Blocklists. Hier kannst du ganz unten die Links der Listen aus der oben verlinkten Seite einfügen. Es sollte berücksichtigt werden, dass bei so vielen Einträgen wie auf meinem Screenshot zu sehen ist, es zwangsweise zum sogenannten Overblocking kommt, d. h. es werden ganze Webseiten geblockt, die man aufrufen möchte.

Aus diesem Grund sind auf der Seite ebenfalls empfohlene Einträge für die Whitelist aufgeführt, die von den Blockierlisten ausgenommen bleiben. Selbstverständlich kann manuell jede beliebige Domain in die Whitelist (oder auch in die Blacklist) aufgenommen werden. Es ist empfehlenswert die Whitelisteinträge zumindest teilweise zu übernehmen, da sonst u. U. auch Dienste wie Spotify, YouTube und Netflix in Teilen geblockt werden könnten.

Im Laufe der ersten Wochen wirst du vermutlich weitere Domainnamen auf die Whitelist setzen, da der ein oder andere Dienst im Internet womöglich nicht erreichbar sein wird. Auch kommt es vor, dass Formularfelder nicht richtig angezeigt werden. Behalte daher immer im Hinterkopf, dass der PiHole möglicherweise die Ursache für eine nicht aufrufbare Webseite oder eines Inhalts ist.

Disable

Hier kannst du den PiHole dauerhaft oder für eine definierte Zeit abschalten. Damit kannst du testen, ob der PiHole die Ursache für einen blockierten Inhalt im Internet ist. Schalte dazu den Pihole aus und rufe die Webseite bzw. den Inhalt erneut auf. Wird die Seite jetzt ordnungsgemäß angezeigt, ist der Pihole die Ursache für die vorherige Blockierung. Blockierte Domains kannst du dann auf die Whitelist setzen.

Einrichtung als DNS-Server

Jetzt ist der PiHole zwar im Netzwerk aktiv, allerdings muss er noch den Endgeräten bzw. dem Router bekannt gemacht werden. Ansonsten werden alle DNS-Anfragen weiter an den vom Internetprovider voreingestellten Server weitergeleitet. Dazu gibt es drei mögliche Wege.

Variante 1: Manuell

Du kannst den DNS-Server manuell in deinen Geräten eintragen. Das bedeutet: Jedes Gerät muss einzeln auf den neuen DNS-Server konfiguriert werden. Bei 3 bis 4 Geräten ist das noch ein überschaubarer Aufwand. Nachteilig ist jedoch, dass Gäste, die sich ins WLAN einloggen nicht vom PiHole profitieren. Außerdem muss bei jedem neuen Gerät der DNS-Server manuell nachgetragen werden. Ein Vorgehen, dass du vielleicht schnell vergisst oder vor dir herschiebst. Ich persönlich finde diese Lösung daher nicht praktikabel.

Variante 2: Router

Du kannst in deinem Router auch die IP-Adresse des Raspberry Pi’s als DNS-Server eintragen. Vorteil: Für die Endgeräte ändert sich nichts. Jeder Computer und jedes Smartphone stellt seine DNS-Anfragen wie gewohnt an den Router, der die Anfrage dann an den PiHole weiterleitet. Auf einer Fritz!Box muss allerdings dann die IP-Adresse des Pi’s als Ausnahme für den DNS-Rebind Schutz hinzugefügt werden, der eine Weiterleitung auf eine IP-Adresse im eigenen Heimnetz verhindert. Das ist jedoch schnell umsetzbar.
Nachteilig an dieser Methode ist jedoch in manchen Fällen, dass im PiHole nur der Router als Client angezeigt wird, da alle Anfragen über den Router zum PiHole gelangen. Es ist nicht nachvollziehbar, von welchem Endgerät die Anfragen stammen, da diese nicht direkt mit dem PiHole kommunizieren. Ein weiterer Nachteil ist, dass das Gäste-WLAN von der Fritz!Box nicht den alternativen DNS-Server verwendet und stattdessen auf den DNS-Anbieter vom Provider zurückgreift (was wir ja gerade nicht wollen). Gäste würden daher nicht vom PiHole profitieren. Wenn dich das nicht stört, ist dies die schnellste und einfachste Lösung. Die Nachteile kannst du allerdings auch mit Variante 3 umgehen.

Variante 3: DNS-Server in DHCP des Routers

Wer die IP-Adressen in seinem Heimnetz von seinem Router verwalten lässt, der kann den PiHole als neuen DNS-Server für alle Endgeräte direkt bekannt machen. Der Router fungiert hierbei weiterhin als DHCP-Server und teilt allen Endgeräten wie gewohnt die IPs und den DNS-Server mit, so wie er es bisher auch getan hat. Er überträgt jetzt dabei nur die IP-Adresse des PiHoles anstatt des DNS-Servers des Internetproviders.

Beispiel Fritz!Box

  • IPv4: Heimnetz > Heimnetzübersicht > Netzwerkeinstellungen > IPv4 Adressen > Lokaler DNS Server
  • IPv6: Heimnetz > Heimnetzübersicht > Netzwerkeinstellungen > IPv6 Adressen > DNSv6-Server im Heimnetz
    • Die IPv6-Adresse beginnt in der Regel mit fd00 gefolgt von drei Feldern mit 0. Erst die letzten 5 Felder enthalten den Rest der IPv6-Adresse des PiHoles, also in etwa so:
fd00:0:0:0:76a5:8126:fe74:8974:ga45

Tragt dort jeweils die IPv4 und IPv6 Adresse des PiHoles ein, die ihr wie oben beschrieben in der Weboberfläche unter Einstellungen finden könnt. Achtet darauf euch nicht zu vertippen. Sollte dir hier jedoch ein Fehler unterlaufen, ist dein Router nicht mehr unter dem Namen (z. B. fritz.box) erreichbar, sondern nur noch unter der eigenen IP-Adresse.

Warnung
Wenn du die Einstellungen des DHCP-Servers des Routers änderst, sollte dir bewusst sein, dass im Falle eines Ausfalls von PiHole kein DNS-Server mehr erreichbar ist und damit keine Internetverbindung mehr möglich ist. Bei Variante 2 besteht diese Gefahr nicht, da der Router als Fallback-Lösung immer den DNS-Server des Internetprovider nutzen kann. Variante 3 überschreibt diese Fallback-Lösung jedoch! Aus diesem Grund solltest du bei Variante 3 die fertige PiHole Konfiguration als Imagedatei auf deinem PC speichern. So kannst du im Notfall den funktionierenden PiHole wiederherstellen. Schreibe dazu das Image auf eine leere microSD-Karte und lege diese in einen Raspberry Pi ein. Der PiHole sollte automatisch wieder online gehen und die Internetverbindung aller Geräte funktionieren. Notfalls kannst du den Router jedoch beim Ausfall des PiHoles auch über die IP-Adresse erreichen, dich einloggen und den DNS-Server auf die Standardeinstellungen zurückstellen.

Wechsle nun wieder auf das Dashboard des PiHoles und rufe in einem neuen Browsertab eine Webseite auf, die Werbung anzeigt, z. B. die Seite einer Zeitung. Wenn die Statistiken auf dem Dashboard anschließend nicht auf Null stehen und die DNS-Anfragen beim Aufruf von Webseiten ansteigen, funktioniert der PiHole ordnungsgemäß. Spannend ist, wie viel Datenverkehr tatsächlich blockiert wird. Wie du siehst, ist das bei mir mit über 20% ein enormer Anteil am gesamten Internetdatenverkehr. Im Folgenden erläutere ich weitere Einstellungsmöglichkeiten

Updates

Update der Blockierliste

Der PiHole führt automatisch jeden Sonntag ein Update der Blockierlisten durch. Listen, die du nachträglich hinzugefügt hast, werden dabei ebenfalls aktualisiert. Das wöchentliche Update ist ausreichend, da die Listen nicht jeden Tag erneuert werden. Außerdem kann es sein, dass dein Zugriff auf Listen gesperrt wird, wenn du zu häufig ein Update durchführst. Dennoch kann es Gründe geben das automatische Updateintervall oder nur den Zeitpunkt zu ändern.
Schauen wir uns die Update-Einstellungen an. Öffne dazu die PiHole interne Update-Datei mit dem Editor nano. Alternativ kannst du auch einen Editor deiner Wahl nutzen. Ersetze dafür „nano“ durch den entsprechenden Editor.

sudo nano /etc/cron.d/pihole

Die lange Zeile in der Mitte sorgt für ein wöchentliches Update der Blockierlisten. In meinem Fall wird jeden Sonntag um 3 Uhr 43 Minuten das Update durchgeführt. Die Zeit kann bei dir abweichen, da diese bei der Installation zufällig erzeugt wird und immer zwischen 3 Uhr und 5 Uhr nachts liegt. Dem Kommentar kannst du entnehmen, dass diese Datei unter der Kontrolle von PiHole steht. Das bedeutet, dass die Datei durch eine neue Version ersetzt wird, wenn du den PiHole aktualisierst. Daher ist es nicht sinnvoll Änderungen an dieser Datei durchzuführen. Spätestens mit dem nächsten Update wird diese nämlich wieder rückgängig gemacht.
Solltest du jedoch unbedingt ein anderes Update-Intervall oder einen anderen Zeitpunkt für die Updates benötigen, kannst du dies über einen eigenen Cron-Job erreichen. Ich habe bspw. nachts das WLAN abgeschaltet, sodass das voreingestellte Update von PiHole fehlschlägt.

Öffne die Cronjob Konfigurationsdatei.

sudo crontab -e

Trage ganz am Ende der Datei folgende beiden Zeilen ein. Das ‚#‘ wird einem Kommentar vorangestellt. Diese Zeilen werden bei der Ausführung der Befehle ignoriert.

#ADDED: Update pihole blocklists every Sunday at 10 a.m.
0 10 * * 7 sudo pihole -g

Speichere und schließe die Datei anschließend mit [STRG+X], bestätige mit [Y] und dann mit [Enter].

Update der PiHole Software

Wenn du die PiHole Software aktualisieren möchtest, führe den folgenden Befehl auf der Konsole aus. Dies solltest du immer manuell durchführen. Es ist darüber hinaus nicht sehr häufig notwendig, da die Update-Intervalle relativ lang sind.

sudo pihole -up

Systemzeitsynchronisation

Die standardmäßige Zeitsynchronisation des Betriebssystems kann in bestimmten Szenarien dazu führen, dass der PiHole nicht mehr funktioniert. Da ein Raspberry Pi aus Kostengründen keine eigene Real Time Clock (RTC) besitzt, wie man es von herkömmlichen PCs kennt, synchronisiert Raspbian die Zeit mit Internetservern und speichert die jeweils aktuelle Zeit in einer Datei.

Ist der PiHole jedoch mehrere Stunden vom Strom getrennt (z. B. bei einem Umzug, Stromausfall o. Ä.) lädt er die zuletzt bekannte Zeit aus dieser Datei und zählt die Zeit dort weiter. Dadurch kommt es zu einer Differenz zwischen der Systemzeit und der tatsächlichen Zeit. In diesem Fall funktioniert der PiHole nicht mehr ordnungsgemäß. Die Oberfläche ist zwar erreichbar, DNS-Anfragen werden jedoch nicht mehr beantwortet. Der Grund liegt darin, dass DNS-Anfragen nur eine begrenzte Gültigkeitsdauer haben. Durch die Zeitdifferenz zwischen dem DNS-Server (tatsächliche Zeit) und der falschen Systemzeit werden DNS-Anfragen daher als ungültig bewertet. Die Folge davon ist, dass selbst die Zeitsynchronisation mit Internetservern nicht funktioniert, da auch diese Anfragen nicht weitergeleitet werden.

In solchen Fällen ist es möglich die Systemzeit mit folgendem einfachen Befehl manuell zu setzen. Anschließend funktioniert der PiHole wieder ordnungsgemäß. Dabei muss MMTThhmm durch das aktuelle Datum und die genaue Uhrzeit ersetzt werden.

sudo date MMTThhmm

Alternativ kann ein Zeitserver im eigenen Heimnetzwerk genutzt werden, um die Systemzeit automatisch nach einem Stromausfall zu beziehen. Möglich ist dies z. B. mit einem FritzBox-Router, der als Zeitserver bereitgestellt werden kann. Das Vorgehen beschreibe ich in einem separaten Beitrag [Link].

Damit ist der PiHole fertig konfiguriert und einsatzbereit.

Weg der DNS-Anfragen

Der Ablauf der DNS-Anfrage ist nach dieser Konfiguration wie nachfolgend dargestellt. Der Router steht in Klammern, da dieser bei Variante 3 der DNS-Einrichtung im Router übersprungen wird und daher nur bei Variante 1 und 2 an der Weiterleitung beteiligt ist.

Endgerät (PC, Smartphone etc.) > (Router) > PiHole > DNS-Server (Internet)

Wenn du möchtest, kannst du die Anfragen zum DNS-Server noch mit DNSCrypt verschlüsseln, wie ich in Teil 2 der Artikelserie beschreibe. Alternativ kannst du mit Unbound deine DNS-Anfragen lokal selbst beantworten wie ich in Teil 3 der Artikelserie erläutere. Dadurch ersparst du dir die Anfrage an einen DNS-Server im Internet und erhöhst deine digitale Privatsphäre.

Artikelreihen NavigationPiHole Teil 2: Verschlüsselung mit DNSCrypt >

themaster

Verwandte Beiträge

Android: Apps löschen

Android: Apps löschen

Android: Apps deaktivieren

Android: Apps deaktivieren

Raspberry Pi: Universeller Audio-Empfänger für Musikanlagen

Raspberry Pi: Universeller Audio-Empfänger für Musikanlagen

Raspberry Pi: SenseHat

Raspberry Pi: SenseHat

No Comment

Schreibe einen Kommentar

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

2 × 3 =

TIPP: Jazz CD J’s SEVEN

Lust auf JAZZ? Dann hört in die CD von Komponist und Posaunist Jonathan Strieder rein. Jonathan hat mit seiner Band J’s Seven ein eigenes Album aufgenommen und veröffentlicht. Tongariro heißt es und es klingt ganz fantastisch.

Zur CD: [Link]

Besucht Jonathan Strieder auch gerne auf seiner Webseite.

Über Mich

Mein Name ist Philipp und ich beschäftige mich gerne mit Homeprojekten im Hardware- und Softwarebereich. Ich stelle dabei immer wieder fest, dass es im Internet viele unvollständige  Tutorials gibt. Daher bin ich dazu übergegangen, meine Projekte in eigenen Anleitungen festzuhalten. Diese werde ich hier möglichst verständlich und mit dem nötigen Hintergrundwissen aufbereiten. Vielleicht kann ich dabei den entscheidenden Hinweis liefern, der in vielen anderen Tutorials fehlt.

Mein Ziel ist es, dass jeder mit den Tutorials zurecht kommt und alle notwendigen Informationen erhält, um es nachmachen zu können.

Artikelreihen



Weitere Artikel dieser Reihe

Tutorials abonnieren


Unterstütze Uns

Wenn du uns unterstützen möchtest und genau wie wir einen werbefreien Blog bevorzugst, freuen wir uns über eine kleine Kaffee-Spende :).

IBAN: DE51 1203 0000 1067 7545 54
oder
PayPal Spendenlink: