Ich hatte hier im Blog ja vor einiger Zeit über die Installation von Pi-Hole auf einem Raspberry Pi 3 geschrieben. Mit Hilfe von einem Pi-Hole betreibt man einen eigenen DNS-Server mit Filterlisten, die Werbung und andere ungewollte Dinge filtern. Dies führt zu deutlich weniger Werbung auf den Endgeräten, ohne das am Endgerät selbst was verändert werden muss. Ich habe bisher zwei Raspberry Pi Server zuhause in meinem Netzwerk laufen, möchte dies aber auf den mittlerweile vorhandenen Server umlagern und dort als VM betreiben. Somit sinkt die Wahrscheinlichkeit, dass einer der kleinen Pi-Geräte mal kaputt geht und es ist unter Hyper-V deutlich einfacher, ein Backup der VM zu erstellen.
Die gewünschte Distribution
Bei der Wahl der Linux-Distribution ist man recht frei, ich persönlich finde Debian eine sehr gute und stabile Distri, daher entscheide ich mich für das aktuelle Debian 10.9.0. Die Anforderungen halten sich sehr in Grenzen, meine VM hat 2 vCPUs und 4 GB RAM, käme aber auch mit deutlich weniger Ressourcen klar.
Die Installation
Die Installation und Hyper-V ist recht einfach. Ich erstelle eine neue VM mit den folgenden Werten und Einstellungen. Basis ist ein Windows Server 2019 mit Hyper-V als Virtualisierungsplattform.
Vor dem ersten Start – Anpassung der Einstellungen
Bevor die VM das erste Mal angeschaltet wird, müssen wir noch ein paar Einstellungen anpassen. Wichtig ist hier vor allem die Umstellung der Secure Boot-Einstellungen, da die VM ansonsten nicht in das Setup läuft.
Tipp: Statische MAC-Adresse verwenden
Eine statische MAC-Adresse ist bei Linux-Systemen generell auch von Vorteil, damit es nicht beim Wechsel der MAC-Adresse zu Problemen kommt im Netzwerk.
Die Debian Installation
Bei der Installation muss nichts spezielles angepasst oder eingestellt werden. Ich bevorzuge ein System ohne Desktop, das spart Ressourcen und ich sehe den Desktop sowieso nie, daher lasse ich ihn direkt weg. Die einzig wichtige Einstellung hier wäre folglich diese hier:
Nach der Grundinstallation können wir uns per SSH an der VM anmelden und die benötigten Einstellungen tätigen. Hierzu zählen unter anderem die folgenden Einstellungen:
- Konfiguration einer festen IP-Adresse
- Anlegen weiterer Benutzer, falls notwendig
Die Installation von Pi-Hole
Damit wir Pi-Hole installieren und nutzen können, brauchen wir curl. Dies können wir per apt nachinstallieren:
apt install curl -y
Die eigentliche Installation ist schnell gemacht, hierzu reicht der folgende Befehl:
curl -sSL https://install.pi-hole.net | bash
Nun beginnt die Installation, prüft die Voraussetzungen und fragt uns einige Dinge ab. Die Einstellungen können nach Bedarf angepasst oder verändert werden.
Nun folgen ein paar Fragen bezüglich Netzwerk-Einstellungen, Datenschutz und mehr, danach ist die Installation dann auch schon abgeschlossen.
Aufruf der Admin-Konsole
Nun können wir die Admin-Konsole öffnen wie im letzten Screenshot angezeigt.
Hier sollten wir als erstes das System mit weiteren Blocklisten füttern. Dies geschieht über Group Management – Adlists
Hier können dann eine oder mehrere Listen mit gefilterten Domains hinzugefügt werden. Welche Listen genau genutzt werden hängt davon ab, was ihr alles so filtern möchtet. Ich für meinen Teil nehme Werbung, Tracking, Telemetrie und auffällige (suspicious) Seiten raus. Weiterhin möglich wäre auch Porn, Gewalt, …
Eine gute Übersicht über die einzelnen Listen findet sich unter anderem auf firebog.net. Hier wird neben den Listen auch gezeigt, wie aktuell die Listen sind und wie gut sie funktionieren. Diese Listen müssen nun im Pi-Hole eingetragen werden, danach kann über Tools – Update Gravity eine Aktualisierung angestoßen werden.
Nutzung als DNS-Server
Damit der Pi-Hole nun im Netzwerk als primärer DNS-Server genutzt wird, gibt es mehrere Möglichkeiten. Entweder sprechen die Clients das Gerät direkt an, in dem die IP-Adresse als DNS-Server eingetragen bzw. per DHCP verteilt wird. Alternativ kann der aktuelle DNS-Server so eingestellt werden, dass er als Upstream-DNS-Server die Pi-Hole verwendet. Ich habe in meinem Router die zweite Option eingestellt, dadurch ändert sich im Netzwerk nichts. Fragt ein Client einen oder mehrere Namen an, geht diese Anfrage zum Router. Dieser wiederum fragt dann den Pi-Hole, der die Anfrage entweder weiterleitet an die OpenDNS-Server (in meinem Fall, ihr könnt hier auch einen anderen Dienst benutzen), sie aus dem Cache heraus beantwortet oder alternativ aus der Blocklist heraus “beantwortet”.
Interessant ist in der Konsole auf jeden Fall die Statistik, was und wie viel weggeblockt wird. Bei mir liegt der ungewollte und gefilterte Anteil bei fast 30% nach zwei Tagen Nutzung, das ist schon sportlich. Im Log sieht man, dass ein großer Teil der geblockten Dinge Telemetrie ist von Dingen oder Geräten, die Daten nach Hause schicken. Das klappt jetzt nicht mehr 🙂 Generell merkt man auch sehr schnell den Unterschied bei einer Nutzung des WLANs und alternativ der mobilen Daten, bei denen dann keine Filterung mehr aktiv ist.
Zum Abschluss wird die neue VM noch in das Backup aufgenommen, damit sie konstant gesichert wird. Falls ihr eine Redundanz im Netzwerk benötigt, kann auch jederzeit eine zweite VM mit Pi-Hole aufgesetzt werden, die als alternativer DNS-Server funktioniert.
nichts als Fehlermeldungen. Die Anleitung taugt nichts.
Stimmt. Ich sollte es komplett sein lassen…
@Hein (blöd): Ich bin auf dieden Guide gestoßen, da ich zum erstem mal pi-hole auf HYPER-V aufsetze und wissen wollte, ob es spezifische Dinge bei diesem Hypervisor zu beachten gibt.
Resultat: “Works like a charme!” Alles, was ich hier auszusetzen habe, ist die Tatsache, dass rudimentäre nachfolgende konfigurative Schritte fehlen. Aber solche “hochqualitative” Aussagen wie Zitat “nichts als Fehlermeldungen. Die Anleitung taugt nichts.” bringen mich zum KOTZEN! Keine Information hinterlassen, was nicht funktioniert, keine Möglichkeit zum debuggen geben – aber mal eben raushauen, dass es Scheiße ist…
Sie passen in die Kategorie Anwender, die ich vor 30 Jahren beim jobben – während meines Studiums – an der Hotline hatte. Ich: “schließen sie bitte mal alle Fenster” – Anwender: “Okay, bin gleich wieder da…”
Ich nehme an, den verstehen sie auch nicht.
@Jan: ich hätte zumindest noch den password-change (pihole -a -p) und die unbound-config (127.0.0.1:53) als DNS mit aufgenommen – ansonsten Danke, für den Guide!