Pi-Hole DNS Server als VM unter Hyper-V

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 ManagementAdlists

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 ToolsUpdate 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.


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.

3 Kommentare:

  1. nichts als Fehlermeldungen. Die Anleitung taugt nichts.

  2. @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!

Schreibe einen Kommentar

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