Pi-hole ist ein Werbeblocker auf DNS-Ebene. Das heißt Werbung wird auch geblockt, wenn kein Adblocker verwendet wird, da die Anfragen zum Anzeigen der Werbung ins Leere laufen. In diesem Beitrag beschreibe ich wie Pi-hole auf einem Raspberry Pi mi Raspbian Jessie Lite installiert und konfiguriert werden kann.
Installation
Die Installation von Pi-Hole lässt sich bequem mit folgendem Befehl starten.
$ curl -sSL https://install.pi-hole.net | bash
Nachdem sich der Installer konfiguriert hat werden verschiedene Information angezeigt, welche einfach bestätigt werden können.
Nun muss das zu nutzende Netzwerkinterface ausgewählt werden. Ich betreibe mein Raspberry Pi über Ethernet und wähle daher eth0 aus. Falls der Raspberry Pi über WLAN mit dem lokalen Netzwerk verbunden ist muss hier wlan0 ausgewählt werden.
Danach muss der Upstream DNS Provider ausgewählt werde – ich verwende Google.
Nun muss ausgewählt werden, über welche Protokolle (IPv4/IPv6) Werbung geblockt werden soll. Ich blocke sie sowohl über IPv4 als auch IPv6.
Nun wird angeboten die aktuelle Netzwerkkonfiguration als statische Adresse zu hinterlegen. Da ich wie im Beitrag Einem Raspberry Pi mit Raspbian Jessie Lite eine Statische IP-Adresse zuweisen beschrieben die angezeigte IP-Adresse bereits als statische Adresse für meinen Raspberry Pi hinterlegt habe bestätige ich die Abfrage mit “Yes”.
Jetzt wird eine Warnung angezeigt, dass durch das Übernehmen der Adresse ein IP Konflikt auftreten kann. Dies ist der Fall, wenn der Router versucht die IP-Adresse einem anderen Gerät zuzuweisen. Da ich die IP-Adresse bereits vorher als statische Adresse außerhalb des DHCP Bereichs des Routers vergeben habe kann ich die Warnung bedenkenlos mit “OK” bestätigen.
Nun wird die IPv6 Adresse angezeigt, welche zum Blockieren der Werbung verwendet wird.
Jetzt wird angeboten das Web Admin Interface zu installieren, was ich auch bejahe. Über dieses können nach der Installation Statistiken angezeigt sowie die Konfiguration angepasst werden.
Jetzt wird gefragt, ob die Anfragen an Pi-hole geloggt werden sollen, wenn dies mit “OK” bestätigt wird werden auf dem Web Interface später nette Graphen dazu angezeigt.
Nun installiert und konfiguriert sich Pi-hole. Abschließend wird eine Erfolgsmeldung mit dem Passwort zum Einloggen angezeigt.
Jetzt kann die am Ende der Installation angezeigte Adresse (z.B. http://192.168.0.10/admin) aufgerufen werden, um zum Web Admin Interface zu gelangen. Dieses Zeigt direkt Statistiken zu allen bzw. den geblockten DNS Anfragen sowie die Anzahl der Domains die geblockt werden. Durch einen Klick auf “Login” in der linken Seitenleiste wird die Seite zum Anmelden an Pi-hole aufgerufen.
Auf der Anmeldeseite kann direkt das Passwort eingegeben werden (1). Nach einem Klick auf “Log in” (2) erfolgt die Anmeldung.
Auf dem jetzt angezeigten Dashboard werden im Vergleich zur Startseite zusätzliche Statistiken wie das Verhältnis von IPv4 und IPv6 Anfragen, die genutzten Upstream DNS Server, am häufigsten angefragten Domains oder die Clients mit den meisten Anfragen angezeigt. Zu Beginn werden hier lediglich die Anfragen welche Pi-hole beim Installieren abgesendet hat angezeigt.
Konfigurieren
Jetzt muss Pi-hole noch konfiguriert werden.
Passwort
Zuerst sollte das Passwort geändert werden. Dies geht leider nur über das Terminal mit nachfolgendem Befehl bei dem das Passwort auch noch als Klartext angezeigt wird.
$ pihole -a -p <newpassword>
New password set
DNS
Ich habe bei mir außerdem die DNS Konfiguration leicht angepasst. Um die Konfiguration ändern zu können muss im Linken Menü auf “Settings” geklickt werden
Nun müssen die “Advanced DNS settings” ausgeklappt werden.
In den Einstellungen fehlten bei mir die beiden Harken bei den IPv6 DNS Servern (1). Außerdem möchte ich DNSSEC (2) verwenden, welches die DNS Antworten auf Manipulation überprüft. Falls der Raspberry Pi auch als VPN Server genutzt wird und Pi-hole DNS Anfragen über das VPN beantworten soll muss das “Internet listening behaviour” auf “Listen on all interfaces, permit all origins” gestellt werden (3). Sonst werden die DNS Anfragen nicht beantwortet. Hier sollte aber beachtet werden, dass der Raspberry Pi nicht über Port 53 vom Internet aus erreichbar ist, sonst beantwortet er auch Anfragen aus dem Internet. Abschließend können die Einstellungen mit einem Klick auf “Save” (4) gespeichert werden.
DNSSEC testen
Nun sollte noch getestet werden, ob DNSSEC auch funktioniert. Dazu kann einfach die Webseite http://dnssec.vs.uni-due.de/ aufgerufen werden. Dort muss lediglich auf den Button „Start test“ geklickt werden.
Anschließend wird angezeigt, ob der Test erfolgreich war oder nicht.
Website auf nginx und HTTPS umstellen
Ich betreibe Webseiten gerne über HTTPS und verwende als Webserver nginx. Wie Pi-hole auf nginx und HTTPS umgestellt werden kann habe ich im Beitrag Pi-hole unter Raspbian Jessie Lite mit nginx und SSL betreiben beschrieben.
Toller Beitrag, damit läuft die Installation super einfach!
Ich habe Pi-Hole seit einigen Tagen im Netzwerk und bin wirklich erschrocken, wie viele Anfragen durch den DNS geblockt werden. Uns ist allen bewusst, dass es viel Werbung im Netz gibt, dennoch hätte ich nie mit so viel Werbung gerechnet.
Super ist auch, dass man Pi-Hole auch unterwegs nutzen kann, indem man sich per VPN nach Hause verbindet und den kompletten Datenverkehr über das VPN schleust.
Ergänzend würde ich noch sagen, dass man die Blockliste eventuell anpassen muss, da sonst einige Websites ohne Grund geblockt sind. Das geht allerdings über das Webinterface sehr einfach.