Pi-hole schützt alle Endgeräte im Lokalen Netzwerk vor Tracking, Datensammlung und Werbeeinblendungen.
Einführung
Immer wenn ein Server im Internet über eine Adresse aufgerufen wird, wird der Domain Name Server nach der IP-Adresse der jeweiligen URL (Internetadresse) befragt. Mit dieser IP-Adresse kann man dann den richtigen Server erreichen und erhält die Webseite oder die Dienstleistung die man haben möchte. Naja, und eben noch viele neben her. Denn Apps, Internetseiten, Betriebssystem, Smarthome Geräte und alles mögliche an Dingen die ihr so verwendet, funken nach Hause und übermitteln Daten über dich.
Normalerweise ist der Domain Name Server innerhalb eines Heim-Netzwerks (und damit der erste Ansprechpartner für alle Endgeräte in diesem Netzwerk) der Router. Die Anfragen die der Router nicht beantworten kann, reicht dieser an den DNS-Server des Internetproviders weiter.
So weit so gut.
Und hier kommt Pi-hole ins Spiel. Ist Pi-hole vorhanden und konfiguriert, wird Pi-hole im Netzwerk als DNS-Server hinterlegt. Pi-hole führt dabei eine oder mehrere Adlisten – also eine Liste mit Servern denen wir keine Daten übermitteln möchten und prüft bei jeder DNS Abfrage ob die betreffende Adresse auf dieser Adliste steht. Wenn, gibt Pi-hole an das fragende Endgeräte das Feedback: Kenne ich nicht. Das Endgerät kann dann keine Verbindung zu dem Server aufbauen.
In der Folge kann keine Werbung ausgespielt werden und keine Daten über den Nutzer erfasst werden. Und das ist aus verschiedenen Gründen toll.
Natürlich gibt es auch andere Wege sowas zu lösen. Man kann ein VPN-Dienst (z.B. Nord-VPN) nutzen, Adblocker im Browser oder sichere Browser. Es gibt auch Online Dienste die sowas wie Pi-hole anbieten, z. B. https://adguard-dns.io oder auch https://controld.com/.
Pi-hole hat dabei folgende Vorteile:
- kostenlos
- Open Source
- volle Kontrolle
- frei konfigurierbar
Installation
Wurde der Proxmox Container erfolgreich erstellt und geupdatet startet die Installation über die Konsole mit folgenden Befehlen:
sudo apt-get install curl -y
sudo curl -sSL https://install.pi-hole.net | bash
Damit wird das Installationsprogramm heruntergeladen und gestartet.
Es folgen einige Hinweise die man jeweils nur bestätigen muss (hier auf die Buttons achten, die switchen).
Nach dem die statische IP gesetzt wurde (was hier wirklich Sinn ergibt, da die IP-Adresse später in der DNS Konfiguration des Routers eingetragen werden muss) erfolgt die Abfrage des zu verwendenden DNS-Servers.
Die Verwendung von OpenDNS oder DNS.Watch kann zusätzlichen Datenschutz und Sicherheit ermöglichen. Ich würde diesen dann aber im Router hinterlegen und an dieser Stelle Custom wählen. Im nächsten Schritt dann die IP-Adresse des Routers hinterlegen. So sorgt man dafür das der Router lokale Nameserver auflösen kann (also xxx.fritz.box).
Anschließend wird der erste Default-Blocklist hinzugefügt.
Es folgt die Abfrage ob ein Webinterface installiert werden soll (natürlich). Auch die nächsten Fragen mit Yes und Continue beantworten. Am Ende wird die Installation durchgeführt.
War das erfolgreich ist die Weboberfläche von Pi-hole über ip-adresse/admin im Browser aufrufbar.
Mit pihole -a -p kann man das Passwort anpassen.
So … die Maschine ist bereit für den Einsatz.
Pi-hole Konfiguration
Erstmal rufe ich die Weboberfläche von Pi-Hole über http://ip-adresse/admin auf (da bei der Installation eine feste IP vergeben wurde, funktioniert die Namensauflösung pihole.fritz.box erstmal nicht) und logge mich mit dem vergebenen Passwort ein.
Da Pi-hole nur über ein Passwort geschützt ist, mache ich Pi-hole nicht über den Nginx-Proxy von außen erreichbar – soviel Sicherheit muss sein. Nach dem Login stelle ich unter Local DNS / DNS Records ein, das pihole.fritz.box die Konfig aufruft. Jetzt muss ich mir die IP nicht merken sondern kann die Konfig über die URL aufrufen.
Als nächstes geht es an die Konfiguration der Adlists.
Wie in der Einführung erklärt brauch Pi-hole eine sogenannte Adlists. Bei der Installation haben wir bereits eine default-Liste ausgewählt. Aber da geht noch mehr. Es gibt zahlreiche Projekt mit Listen von Domains die man besser blocken sollte. Eines dieser Projekte wir von einem GitHub User Namens Hagezi geführt. Unter https://github.com/hagezi/dns-blocklists finden sich eine Reihe unterschiedlicher Listen, z.B. eine die nur Pornoseiten sperrt.
Aber auch Listen die Werbung, Adblocker und Tracking unterbindet. Aber nicht jeder will den vollen Schutz (siehe In der Praxis) und deswegen gibt es diese Liste in unterschiedlichen Ausprägungen. Unterschiedlich Härtegrade könnte man sagen.
Hier hab ich mir die folgenden drei Listen herausgesucht:
- Multi Light > https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/light.txt
- Multi normal > https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/multi.txt
- Multi ultimate > https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/ultimate.txt
Damit mein Pi-hole die auch kennt rufe ich also den Menüpunkt Adlists in der Weboberfläche auf …
… und füge hier die Listen zu. Dazu füge ich in das Feld Adress (1) die jeweilige URL und unter Comment (2) eine passende Beschreibung. Mit Add (3) in die Liste (4) ein.
Das wiederhole ich für alle drei Listen und disable am Ende die voreingestellt Liste von Steven Black.
Jetzt müssen die Listen erst mal importiert werden. Dazu auf Tools / Update Gravity wechseln und den Update Button betätigen.
Erscheint die Anzeige success war der Import erfolgreich.
Als nächstes lege ich passende Gruppen an. Dazu unter Groups jeweils den Namen befüllen und mit Add hinzufügen. Bei mir gibt es
- default
- normal
- light
Zurück auf der Seite Adlists kann ich jetzt die verschiedenen Listen den erstellten Gruppen zuordnen. Dabei hat default immer den höchsten Schutz. Alle Geräte die nicht von mir einer bestimmten Gruppe zugeordnet werden, sind automatisch in der Gruppe default.
Damit sind wir hier erst mal fertig. Damit die Geräte im Netzwerk auf Pi-hole nutzen können, konfigurieren wir als nächstes den Router.
Fritz!Box Konfiguration
Ich hab ein Fritz!Box, das ganze geht sicher auch mit den meisten anderen Routern. Natürlich können Wege und Beschriftungen von dieser Anleitung abweichen. Versucht das zu abstrahieren.
Gerätenamen
Damit ich später die Geräte im Netzwerk einer Gruppe im Pi-hole zuordnen kann, ist es wichtig das diese im Backend von Pi-hole mit einem möglichst erkennbaren Namen auftauchen.
Das ist nach Anzahl der Geräte im Netzwerk unter Umständen mühselig. Man muss das auch nicht zwingend tun. Ich erhoffe mir in der Praxis dadurch aber mehr Klarheit. Wir werden sehen.
Daher schaue ich mir zuerst die Gerät im Netzwerk an und benenne diese passend (ob das bei jedem Router geht, weiß ich nicht.)
Mit http://fritz.box rufe ich die Weboberfläche meines Routers auf und wechsle auf Heimnetz / Netzwerk. Hier finde ich unter Netzwerkverbindungen eine Liste der bekannten Geräte.
Teilweise sind die Namen der Geräte so benannt, das ich diese wiedererkennen kann. tux.fritz.box ist z. B. mein Notebook. Ich hab es eben TUX benannt. Andere Geräte(1) sind total abstrakt benannt. Ich versuche herauszufinden was hinter den einzelnen Geräten steckt und benennen die Geräte in der Fritz!Box passend um.
Dazu klicke ich auf den Stift (2) und wechsel auf den Reiter Heimnetz.
Hier finde ich eine MAC-Adresse (2). Diese kopiere ich und wechsel auf die Seite https://www.dein-ip-check.de/tools/macfinder. Ich füge die MAC-Adresse in das Suchfeld ein (3) und nach dem ich die Suche abgeschickt habe, weiß ich um welchen Hersteller es sich handelt (4).
Hab ich von dem Hersteller mehr als ein Gerät muss ich in den Netzwerkeinstellungen des Gerätes schauen welche IP-Adresse diese hat um es genau zuordnen zu können. Oder ich schalte alle Geräte aus und warte welches in der Liste der aktiven Geräte übrigbleibt. Dann benennen ich das Gerät so um, das ich es eindeutig zuordnen kann (z. B. Amazon TV-Stick – Schlafzimmer). Bei der Gelegenheit aktiviere ich noch die Option IPv4-Adresse dauerhaft zuweisen.
DNS zuweisen
Jetzt ist es soweit. Ich kann den Geräten in meinem Netzwerk den neuen DNS zuweisen. Dazu wechsel ich in der Fritz!Box Weboberfläche auf
- Heimnetz / Netzwerk
- Netzwerkeinstellungen
- LAN-Einstellungen
- Weitere Einstellungen.
- IP-Adressen
- IPv4-Einstellungen
Hier wird trage ich unter Lokaler DNS Server die IP-Adresse der Pi-hole Maschine ein. Mit Übernehmen wird die Einstellungen gespeichert. Jetzt den Router neu starten (falls das nicht automatisch passiert, bin mir nicht sicher). Alle Geräte erhalten den neuen DNS Server und der Spaß kann losgehen.
Aus der Praxis
Installation und Einrichtung ist das eine. Aber zu welchen Problemen kommt es bei der Nutzung und wie Sinnvoll ist das ganze am Ende? Hier ein wenige Erfahrungsbericht.
Freudig ging ich ins Internet und …. merkte keinen unterschied. Natürlich, ich bin ja eh nicht oder kaum auf den Werbe-getriebenen Portalen und Sozialen Netzwerken unterwegs. Erst als ich eine passende Testseite (https://fuzzthepiguy.tech/adtest/) öffnete konnte ich mich davon überzeugen das alles so funktioniert wie ich es mir wünsche.
Die Ehefrau merkte aber schnell das Ihr Facebook kaputt war und zwar sogar so extrem das Postings nicht gelesen werden konnten. Ich urteile nicht ich Löse ihr Problem:
- Konfigurationsoberfläche Pi-hole geöffnet
- Über Clients Manja Handy in die Geräteliste aufgenommen
- Manja Handy in die Light Group aufgenommen.
Es funktioniert.
Die nächste Überraschung ist: Google Ads ist ein Problem. Zumindesten für meine Frau. Denn tatsächlich nimmt sie die Werbebanner in Instagram und Facebook war und klickt auch darauf. Dann kommt leider nur die Meldung das die Seite nicht erreichbar wäre. Aber auch andere Beiträge, z. B. die Teaser von Tageszeitschriften – werden mit Google Ads gemessen und sind so für sie nicht aufrufbar.
Und hier muss man natürlich sagen: Pi-hole funktioniert. Mal sehen wie lange sie damit leben kann.
Von den Jugendlichen im Haus gab es keinerlei Beschwerden. Lediglich die Hoffnung das Youtube keine Werbung zeigen würde. Leider doch, denn die Werbung in den Videos wird auch von youtube.com ausgespielt. Würde man diese blockieren, gäb es keine Videos.
Aber auf dem einen und dem anderen Internetportal kann ich jetzt ohne Abo und ohne Cookies ganze Beiträge lesen. Das ist nichts für die Kids, aber der Papa findet das ziemlich gut.
Pi-hole bietet jeden Menge Statistiken. Zum Beispiel:
Auf der Grafik sieht man die Anzahl an DNS Abfragen aus meinen Netzwerk. Man sieht einen grünen Bereich – die gültigen Abfragen – und eine grauen Bereich – die geblockten Abfragen.
Die Anzahl an geblockten Anfragen ist in den Abendstunden am höchsten und verhält sich natürlich parallel zu den gültigen. Die Spanne ist von unter 1000 DNS Abfrage und geht bis zu über 8000. Das ist schon eine ganze Menge und wirft fragen auf. Z.B. warum DNS abfragen nur so eine kurze Gültigkeit haben und ob wir nicht Last im Netz entfernen könnten wenn wir nicht ständig Dinge Nachfragen die wir schon kennen.
Ich stelle aber auch fest das die TV-Sticks im Haushalt ziemlich viel Nachhause funken und das sogar dann wenn das Gerät ausgeschaltet ist. Muss mal näher checken was da los ist.
Fazit
Würde ich für Pi-hole Geld zahlen? Bin ich mir noch nicht sicher. Es macht mein Internet schneller, es macht mich ein wenig Unsichtbarer. Ob es aber sich so stark auswirkt wie ich es mir wünschen würde, kann ich noch nicht beurteilen.
Spannend wird z.B. ob es jetzt seltener vorkommt das meine Frau mir sagt was ich im laufe des Tages im Internet gesucht habe, weil ihr die passende Werbung angezeigt wurde.
Aber Pi-hole kostet mich kein Geld und auf dem Heimserver verursacht die Maschine kaum Last. Also definitiv ein Gewinn für mich.