Werbung auf Webseiten unterbinden – Pi-hole in Debian 12 VM

Werbung auf Webseiten verursacht nicht nur visuelle Ablenkung, sondern auch erheblichen Ressourcenverbrauch in Form von Datenverkehr, Prozessorlast und Energie. Bestimmte Webseiten – etwa Online-Marktplätze – benötigen dadurch wesentlich längere Ladezeiten.

Eine effektive Lösung bietet Pi-hole: ein lokaler DNS-Filter, der Werbe- und Tracking-Domains anhand von Blocklisten unterbindet. Anstatt zusätzliche Hardware wie einen Raspberry Pi zu verwenden, kann Pi-hole auch als virtuelle Maschine auf einem bestehenden Server oder NAS betrieben werden – etwa innerhalb einer Debian-Netinstall-VM.

Die Pi-hole-Software unterstützt verschiedene Linux-Distributionen. Die Installation sollte aus Performancegründen jedoch ohne grafische Benutzeroberfläche erfolgen. Damit der DNS-Server des Pi-hole aus dem Netzwerk erreichbar ist, muss die Netzwerkkarte der virtuellen Maschine im Bridge-Modus konfiguriert werden.

Durch die flexible Konfiguration kann Pi-hole nicht nur im lokalen LAN, sondern auch über VPN- oder Multi-LAN-Strukturen eingesetzt werden – stets unter Wahrung der Sicherheit durch korrekte Interface- und Firewall-Einstellungen.


1. Voraussetzungen

  • Minimalinstallation von Debian 12 (Netinst, ohne grafische Oberfläche)
  • Eine im Bridge-Modus konfigurierte Netzwerkschnittstelle der VM, damit Pi-hole aus dem gesamten LAN erreichbar ist
  • Statische IP-Adresse der VM (im Router fest zugewiesen)
  • Internetzugang für die Installation

2. Installation von Pi-hole

Nach der Grundinstallation von Debian und dem Paket curl

wird Pi-hole mit folgendem Einzeiler heruntergeladen und installiert:

Während der Installation werden folgende Punkte abgefragt:

  • Auswahl des Upstream-DNS-Servers (z. B. Cloudflare, Quad9, Google DNS)
  • Aktivierung der Blocklisten
  • Netzwerkinterface, über das Pi-hole erreichbar ist (z. B. ens18)

Nach Abschluss werden die Admin-URL und das automatisch generierte Passwort angezeigt.
Das Webinterface ist anschließend erreichbar unter:


3. Grundkonfiguration

Damit Pi-hole als DNS-Server für das gesamte lokale Netzwerk genutzt wird, ist dessen IP-Adresse im DHCP-Server (zumeist im Router) als bevorzugter DNS-Server einzutragen. Bei Fritz!Box-Routern erfolgt die Konfiguration unter:

Heimnetz → Netzwerk → Netzwerkeinstellungen → IPv4-Adressen → Lokaler DNS-Server

Für eine korrekte Namensauflösung lokaler Geräte (z. B. printer.fritz.box) muss die IP-Adresse des DHCP-Servers (z. B. der Fritz!Box) zusätzlich im Pi-hole unter

Settings → DNS → Upstream DNS Servers

eingetragen werden. Dadurch können lokale Hostnamen, die durch den DHCP-Server vergeben werden, innerhalb des Netzwerks ordnungsgemäß aufgelöst werden, ohne dass entsprechende Anfragen an externe DNS-Resolver weitergeleitet werden.


4. Erweiterte DNS-Einstellungen

Unter Settings → DNS im Webinterface (Expert-Ansicht aktivieren) können verschiedene erweiterte Optionen eingestellt werden:

Never forward non-FQDN A and AAAA queries

Verhindert, dass Anfragen für unvollständige Hostnamen (ohne Punkt, z. B. „server“) an externe DNS-Server weitergeleitet werden. Wenn der Name nicht über /etc/hosts oder den DHCP-Server aufgelöst werden kann, wird „not found“ zurückgegeben. Diese Einstellung erhöht die Privatsphäre und vermeidet unnötige Anfragen nach lokalen Gerätenamen.

Never forward reverse lookups for private IP ranges

Blockiert Rückwärtsanfragen (Reverse DNS) für private IP-Bereiche wie 192.168.x.x oder 10.x.x.x, wenn keine Zuordnung lokal vorhanden ist. So wird verhindert, dass interne IPs versehentlich an externe DNS-Dienste gesendet werden. Auch diese Option sollte zur Wahrung der Privatsphäre aktiviert werden.

Use DNSSEC

Aktiviert die Validierung kryptografisch signierter DNS-Antworten. Empfohlen ist die Nutzung nur mit DNS-Servern, die DNSSEC unterstützen (z. B. Quad9, Cloudflare, Google DNS). Bei Problemen mit bestimmten Domains kann diese Funktion temporär deaktiviert werden.


5. Nutzung über mehrere Netzwerke (z. B. WireGuard, LAN 2)

Soll Pi-hole DNS-Anfragen aus weiteren Netzen – etwa über WireGuard, VLANs oder weiterer Fritz!Boxen – beantworten, genügt meist eine Anpassung der Interface-Optionen in Pi-hole selbst.

Im Webinterface unter Settings → DNSExpert Mode können die Optionen für den Zugriff angepasst werden:

  • Respond only on interface ens18 – Pi-hole antwortet nur auf DNS-Anfragen, die über das Interface ens18 eintreffen.
  • Bind only to interface ens18 – DNS-Dienst ist fest an ein bestimmtes Interface gebunden.
  • Permit all origins – erlaubt Anfragen von allen Netzwerken (z. B. bei mehreren LANs oder VPNs).

⚠️ Wichtiger Hinweis:
Der Interface-Name muss exakt mit der Netzwerkschnittstelle des Systems übereinstimmen (ip a zeigt alle Interfaces). Pi-hole sollte niemals aus dem Internet erreichbar sein, wenn es für andere Netze als das Lokale LAN genutzt wird, da es sonst für DNS-Amplification- oder DDoS-Angriffe missbraucht werden könnte.


6. Wartung und Verwaltung

  • Webinterface-Passwort ändern:
  • Anzeige-Fehler bei großen Logdateien beheben:
    In /etc/php/8.2/cgi/php.ini folgenden Wert erhöhen und den Webserver neu starten:

  • Einträge aus Logdatenbank löschen:
  • Pihole updaten:

     
  • Konfiguration sichern:

7. Tipps und Testseiten

Adblock-Testseiten:

RegEx-Filter für Domains (inkl. Subdomains):

  • Hauptdomain blockieren:
  • Alle Subdomains blockieren:

CC_BY_NC_SASpeefak | Infosource | Infosource

Schreibe einen Kommentar

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

Back To Top