Benutzer-Werkzeuge

Webseiten-Werkzeuge


howtos:pi-hole
Übersetzungen dieser Seite:

Pi-Hole Installation und Konfiguration

Wer kennt das nicht, bei Google auf einen Link geklicked und schon bei einem Verkäufer gelandet, eine Website aufgerufen und gefühlt Minuten gewartet bis endlich alle Werbebanner geladen sind. Das muss nicht so sein, Werbung muss man nicht ertragen.
Die Möglichkeiten sind vielfältig und beginnen mit der Installation von Ad-Blockern im Browser, mit Black Lists im Router. Dabei kann man es sich auf einfach machen…. Die Werbung muss ja irgendwo herkommen, dies geschieht nicht wie früher, wo ich in einer Zeitung ein Inserat aufgegeben habe und diese es dann veröffentlichte. Damals war die Werbung Bestandteil der Zeitung und Webseiten sehen so aus, als wäre die Werbung ebenfalls ihr Bestandteil. Glücklicherweise ist dem aber nicht so, denn die Werbung wird aus externen Quellen, sogenannten Werbenetzwerken, erst dann heruntergeladen wenn ihr Euch die Webseite anzeigt. Dadurch wird erst eine „personalisierte“ Werbung ermöglicht. Und damit sich der Betreiber einer Webseite nicht um den Traffic kümmern muss, den die Werbung erzeugt, überredet man den Browser diesen Part zu übernehmen.
Und genau hier ist der Ansatzpunkt um ca. 80% aller Werbung zu verbannen. Die Idee ist, alle Werbung, die nicht Bestandteil der Webseite selbst ist, gar nicht erst zu laden. Nicht nur die Ladezeiten der Webseiten wird verringert, im Zusammenspiel mit PiVPN wird auch das mobile Datenvolumen für Inhalte, anstatt für Werbung benutzt.Darüberhinaus handelt es sich um eine zentrale Lösung, die nicht erfordert auf jedem einzelnen Gerät einen Werbeblocker einzusetzen.

Installation

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

Wie bei PiVPN reicht dieser eine Befehl um Pi-Hole zu installieren. Im folgenden Konfigurationsdialog, der sich an die automatische Installation der notwendigen Pakete anschließt, wird man nach einigen Einstellungen gefragt, u.a. welcher DNS (Domain Name Service) genutzt werden soll. Hier hat man die Wahl entweder dein heimischen Router (sofern er DNS als Service anbietet, wie die Fritz Box), den DNS des Internet Providers oder, um Tracking zu verhindern, einen der freien, nicht protokoliierenden DNS Server einträgt. Ich habe mich dazu entschieden hier meine Fritz Box einzutragen. Für die Einstellungen, die man überlegt machen sollte, gebe ich hier meine Auswahl zum Besten:

  • Select Upstream DNS Provider - 192.168.178.1 (meine Fritz Box)
  • Select Protocols - hier habe ich Ipv6 abgewählt, aber nur weil ich mein Provider mir kein IPv6 anbietet.
  • Do you want to use your current network settings as a static address? -
    • Ip Address: 192.168.178.30 (IP des Raspberry Pi im Heimnetz)
    • Gateway: 192.168.178.1 (IP der Fritz Box im Heimnetz
  • Do you want to log queries? - Yes, um Statistiken sehen zu können. Wer darauf verzichten möchte um die SD-Karte des Pi zu schonen, kann hier auch „No“ wählen, dies hat keinen Einfluss auf die Funktionen.

Im Laufe der Installation wird die URL des Web Interfaces angezeigt und auch das Passwort des Users admin, das ihr sicher verwahren solltet.

Zu diesem Zeitpunkt ist Pi-Hole komplett funktionsfähig und einsatzbereit. Die entsprechenden Dienste werden bei Starten der Raspberry Pi mitgestartet, die tägliche automatische Aktualisierung der Block Listen ist aktiviert. Es sind jetzt nur noch alle Clients dazu zu überreden den Raspberry Pi als DNS zu benutzen. Die einfachste Möglichkeit dies zu gewährleisten ist, auf dem heimischen Router die DHCP Einstellungen so anzupassen, das es den Raspberry Pi als DNS propagiert. Bei der Fritz Box findet man den Punkt unter

Heimnetz -> Netzwerk -> Reiter: Netzwerkeinstellungen -> IPv4 Adressen -> Feld: Lokaler DNS Server

Wenn Euch das nicht gelingt, oder ihr den Werbeblocker nur für einzelne Geräte nutzen wollt, müsst Ihr die DNS Einstellungen auf jedem einzelnen Gerät anpassen.

Konfiguration

Es ist für das Blocken der Werbung nichts weiter zu konfigurieren, solltet Ihr aber etwas ändern wollen kann dies entweder durch ändern der Datei /etc/pihole/setupVars.conf oder durch eine Neuinstallation geschehen. Wird die Datei /etc/pihole/setupVars.conf manuell geändert, müssen die entsprechenden Dienste neu gestartet werden.

sudo service dnsmasq restart
sudo service pihole-FTL restart

Für Experten

Ihr wollt mehr, z.B. weil er heimische Router keinen DNS Service bietet oder ihr eigenen Adressen umleiten wollt? Natürlich ist dies kein Problem, denn Pi-Hole benutzt für seinen Funktionen den Dienst dnsmasq, einen kleinen, einfachen DNS Server. Die Konfiguration des DNS Servers findet man unter /etc/dnsmasq.d/01-pihole.conf . In dieser Datei stehen alle Informationen, die Pi-Hole benötigt. dsnmasq liest alle Dateien in diesem Verzeichnis, die auf .conf enden. Ich beschreibe nun mal, wie einfach man

  • heimische IPs mit einem Namen versieht
  • externe Adressen auf interne Adressen umleitet. Wozu? Ihr betreibt sicherlich eine eigene Cloud im Heimnetz, um Daten auf allen Geräten zur Verfügung zu haben. Diese Cloud muss natürlich auch aus dem Internet zu erreichen sein, was dazu führt das ihr zwei Namen für die Cloud verwenden müsst. Der Name im internen Netz unterscheidet sich also von dem Namen, der aus dem Internet verwendet werden muss. Um dies zu vermeiden kann dnsmasq den externen Namen im Heimnetz auf die interne Adressse umleiten.

Als erstes legen wir eine eigene Konfigurationsdatei /etc/dnsmasq.d/02-lan.conf an, deren Inhalt wie folgt aussieht:

addn-hosts=/etc/pihole/lan.list

Damit teilen wir dnsmasq freundlich mit, das eine Datei /etc/pihole/lan.list ebenfalls zu berücksichtigen ist. Der Inhalt dieser Datei, die wir ebenfalls anlegen müssen, entspricht im Aufbau exakt einer /etc/hosts Datei. Hier ein Beispiel:

192.168.178.30 raspberrypi raspberrypi.fritz.box # PI fuer PiHole
192.168.178.40 pi3 pi3.fritz.box onkelhartwig.myfirewall.org onkelhartwig.myfirewall.org # PI fuer owncloud und OpenVPN Client

Wie man sieht, habe ich hier zwei Raspberry Pi eingetragen, für die dnsmasq die Namen in IP Adressen (und umgekehrt) übersetzt. Wenn ich im Internet bin wird „onkelhartwig.myfirewall.org“ zu meiner externen IP aufgelöst, während zu Hause die interne IP (192.168.178.40) benutzt wird.
Apropos: in einer /etc/hosts Datei wird alles, was hinter dem Zeichen „#“ steht als Kommentar interpretiert.

howtos/pi-hole.txt · Zuletzt geändert: 2022/02/18 08:09 von 127.0.0.1