Mit Pi-hole netzwerkweit Anzeigen und Tracker blockieren

Aus LinuxUser 11/2019

Mit Pi-hole netzwerkweit Anzeigen und Tracker blockieren

© tonobalaguer, 123RF

Nur mit Filter

Der Adblocker Pi-hole filtert für alle Geräte im Netz, vom Smartphone bis zum Küchenherd, Anzeigen und Tracker aus dem Datenstrom.

Es ist ein stetes Ringen zwischen Nutzern, Inhalteanbietern und den Entwicklern von Adblock-Plugins. Während die Anwender sich an aufdringlichen Anzeigen stören, beklagen die Content-Provider lautstark ihre Einnahmeausfälle. Die Adblocker-Hersteller wiederum versuchen sich an eigenen Geschäftsmodellen, bei denen sie die Anzeigen der Inhalteanbieter gegen vorgeblich unaufdringliche eigene Werbeeinblendungen tauschen.

In Webseiten eingebettete Anzeigen lassen sich mit Browser-Addons auf einem Rechner recht gut in den Griff bekommen. Auch für mobile Geräte gibt es mit Firefox einen Webbrowser, der sich wie das Desktop-Pendant sehr einfach mit Erweiterungen inklusive Adblockern ausstatten lässt. Doch nicht jeder Anwender möchte auf dem Smartphone den Mozilla-Browser nutzen. In Apps eingebaute Anzeigen bleiben von den Filtern im Browser sowieso unangetastet. Dasselbe gilt für moderne Smart-TVs, Stereoanlagen oder Waschmaschinen, die mitunter sehr gesprächig Daten ins Internet funken.

Eingelocht

Aus Unix-Zeiten stammt noch die Hosts-Datei, die man auf Linux-Systemen unter /etc/hosts findet [1]. Noch vor der Einführung des DNS-Systems ermöglichte sie in Netzwerken das Auflösen von Rechnernamen in IP-Adressen. Mithilfe der Datei lassen sich allerdings auch Anfragen zu Werbenetzwerken und Trackern so umbiegen, dass sie ins Leere laufen. Sammlungen wie die Ultimate Hosts Blacklist [2] kuratieren lange Listen, die man dazu einspielen kann.

Als netzwerkweite und geräteübergreifende Alternative bietet sich Pi-hole [3] an. Die Software kombiniert gängige Linux-basierte Netzwerkwerkzeuge wie den DNS-Forwarder Dnsmasq mit einem Lighttpd-Webserver und anderen Linux-Werkzeugen zu einem Adblock-Instrument. Viele Anwender installieren das Programm, wie der Name schon andeutet, auf einem Raspberry Pi. Neben Raspbian unterstützt das Projekt aber auch Debian, Ubuntu, Fedora und CentOS (siehe Kasten “Pi-hole unter Linux”).

Pi-hole unter Linux

Im Test mit Ubuntu 18.04 und 19.04 ergaben sich während der Installation von Pi-hole keine Probleme. Allerdings muss man sich als Anwender der Tatsache bewusst sein, dass Pi-hole recht tief ins System eingreift. So deaktiviert die Installationsroutine den integrierten DHCP-Client und ersetzt ihn durch Dhcpcd5, wobei das System eine statische IP-Adresse setzt. Möchten Sie die IP später ändern, rufen Sie dazu mit administrativen Rechten pihole -r auf und wählen die Option Reconfigure.

Prinzipiell sollten Sie Pi-hole auf einem Rechner im LAN installieren, der rund um die Uhr läuft. Sobald Sie Ihr Netzwerk entsprechend konfigurieren, funktioniert der Internet-Zugang ohne den Pi-hole-Server nicht mehr einwandfrei. Aus eben diesem Grund bietet sich der Einsatz eines Raspberry Pi besonders an: Selbst der brandneue RasPi 4B kostet nur 35 Euro und benötigt kaum Strom. Bei vielen Anwendern verrichtet ein Raspberry Pi ohnehin schon andere Aufgaben. Pi-hole selbst braucht nur wenig Ressourcen, so lasten Sie den SBC besser aus.

Die Installation von Pi-hole erfolgt über ein Skript, das Sie mit den Befehlen aus Listing 1 auf dem späteren Adblock-System aus dem Netz herunterladen und mit administrativen Rechten ausführen. Am Ende zeigt das Setup-Skript die URL und ein zufälliges Passwort für die Weboberfläche an, das Sie bei Bedarf mit dem Kommando pihole -a -p noch ändern. Das funktioniert auch ohne das alte Passwort zu kennen.

Listing 1

$ wget -O basic-install.sh https://install.pi-hole.net
$ sudo bash basic-install.sh
[...]
  [+] Pi-hole Enabled
  [i] Web Interface password: llw32Fil
  [i] This can be changed using 'pihole -a -p'
  [i] View the web interface at http://pi.hole/admin or http://192.168.188.29/admin
  [i] You may now configure your devices to use the Pi-hole as their DNS server
  [i] Pi-hole DNS (IPv4): 192.168.188.29
  [i] Pi-hole DNS (IPv6): fd00::ef26:23c0:a6fd:eeac
  [i] If you set a new IP address, please restart the server running the Pi-hole
  [i] The install log is located at: /etc/pihole/install.log

DNS: Die Qual der Wahl

Im Lauf der Installation müssen Sie eine Reihe von Fragen beantworten: Beim Upstream DNS Provider (Abbildung 1) haben Sie unter anderem die Wahl zwischen den DNS-Servern von Google, OpenDNS [4] und Quad9 [5] (siehe Kasten “Geschenkt, aber nicht umsonst”). Optional tragen Sie über die Auswahl Custom beliebige DNS-Server in das System ein (nacheinander, mit einem Komma getrennt), etwa die Ihres Internet-Anbieters. Alternativ pflegt das Projekt Ungefiltert Surfen [6] eine Liste mit auf Erreichbarkeit und Funktionalität getesteten Nameservern. Auch das nichtkommerzielle OpenNIC-Projekt betreibt eigene DNS-Server [7].

Abbildung 1: Pi-hole selbst braucht für die Namensauflösung einen DNS-Server. Das Installationsskript bringt eine Vorauswahl mit.

Abbildung 1: Pi-hole selbst braucht für die Namensauflösung einen DNS-Server. Das Installationsskript bringt eine Vorauswahl mit.

Geschenkt, aber nicht umsonst

Beachten Sie, dass viele DNS-Anbieter ihre Dienste zwar prinzipiell gratis offerieren, aber keineswegs umsonst. Wie gerne Google Daten sammelt, ist sattsam bekannt. OpenDNS gehört inzwischen zum Netzwerkriesen Cisco. Hinter Quad9 stehen IBM, Packet Clearing House (PCH) sowie die Global Cyber Alliance – Letztere wurde von den Polizeibehörden von London und New York gegründet. Der Dienst verspricht zwar, keine personenbezogenen Daten zu speichern, aber allein die Nähe zu staatlichen Stellen lässt die Alarmglocken läuten.

Danach erfragt die Installationsroutine, welche Adblock- und Anti-Tracker-Listen Sie verwenden möchten. Für einen möglichst umfassenden Schutz sollten Sie sämtliche vorausgewählten Optionen aktiv lassen. Im weiteren Verlauf müssen Sie die Netzwerkeinstellungen konfigurieren. Das Setup erkennt automatisch, ob es für IPv4 und IPv6 aktiv sein soll. Danach ermittelt das Programm die aktuelle IPv4-Adresse, und fragt, ob es sie in Zukunft automatisch verwenden soll. Das ebenfalls anzugebende IPv4 default gateway entspricht in der Regel der IP-Adresse Ihres Routers; das Setup erkennt das Gateway jedoch meist automatisch.

Statische IP-Adresse

Damit es zu keinen IP-Konflikten kommt, sollten Sie die Einstellungen Ihres WLAN-Routers öffnen und diese IP-Adresse der Pi-hole-Maschine als statisch gesetzt markieren. Bei einer Fritzbox etwa finden Sie die entsprechende Option Diesem Netzwerkgerät immer die gleiche IPv4-Adresse zuweisen, indem Sie das Gerät unter Heimnetz | Netzwerk editieren. Alternativ passen Sie die in den Pi-hole-Server eingetragene IP-Adresse so an, dass Sie aus einem Bereich stammt, den der WLAN-Router nicht verwendet (Fritzbox: Heimnetz | Netzwerk | Netzwerkeinstellungen | IPv4-Adressen).

TIPP

Möchten Sie später einmal die Konfiguration von Pi-hole ändern, rufen Sie die Installationsroutine mit dem Kommando pihole -r noch einmal neu auf. Dann haben Sie die Wahl zwischen Repair, was die bestehenden Einstellungen noch einmal sauber ins System überträgt, und Reconfigure, womit Sie das Setup unter Vorgabe der bisherigen Einstellungen noch einmal wiederholen.

Bei den restlichen Fragen sollten Sie die voreingestellte Auswahl nicht verändern. Hier (de-)aktivieren Sie das webbasierte Admin-Interface, installieren den Lighttpd-Server (freundlich als “Lighty” bezeichnet) und wählen aus, ob und was das System später protokollieren soll. Der Privacy Mode erlaubt Varianten von 0 Show everything bis hin zu 3 Anonymous mode und erlaubt auch das komplette Deaktivieren aller Statistiken.

Zum Abschluss zeigt das System nochmal eine Zusammenfassung mit den wichtigsten Daten, dem Pfad zum Installationslog sowie den URLs, über die Sie zukünftig das System erreichen (Abbildung 2). Diese Informationen finden Sie auch noch einmal als Ausgabe im Terminal. Ein Neustart wird abschließend nur fällig, falls Sie die IP-Adresse des Systems geändert haben.

Abbildung 2: Am Ende der Installation fasst das Setup noch einmal alle wichtigen Informationen zum Pi-hole-System zusammen.

Abbildung 2: Am Ende der Installation fasst das Setup noch einmal alle wichtigen Informationen zum Pi-hole-System zusammen.

Netzwerkkonfiguration

Damit die in Ihrem Netzwerk vorhandenen Geräte nun auch den Pi-hole-Adblocker als DNS-Server verwenden, müssen Sie die entsprechende Konfiguration entweder in die Clients oder in die Einstellungen des WLAN-Routers eintragen. Die letztgenannte Option bietet den Vorteil, dass automatisch alle im Netz aktiven Geräte, vom Smartphone bis hin zur WLAN-fähigen Kaffeemaschine, ohne weitere Konfigurationen den DNS-Filter verwenden. Besonders bei IoT-Consumer-Produkten lassen sich die nötigen erweiterten Einstellungen oft gar nicht erst vornehmen.

Lokale Namensauflösung

Der DNS-Server im WLAN-Router übernimmt in der Regel auch die Namensauflösung im lokalen Netzwerk. So können Sie zum Beispiel einen im Netz aktiven Raspberry Pi über ssh pi@raspberrypi ansteuern, ohne dessen IP-Adresse zu kennen. Der Router weiß über die Zuordnung von Rechnernamen und IP-Adressen Bescheid, da er selbst über seinen DHCP-Server die IPs vergibt. Indem Sie nun aber die DNS-Abfragen über den Pi-hole-Blocker leiten, fällt dieser Komfort weg, da Pi-hole keine Informationen vom Router erhält. Um weiterhin Rechnernamen im Netz nutzen zu können, müssen Sie in den Einstellungen von Pi-hole unter Settings | DNS die Option Use Conditional Forwarding aktivieren und die IP-Adresse des Routers sowie die lokalen Domain-Namen (im Falle einer Fritzbox fritz.box) eintragen. Anfragen zu lokalen Netzwerknamen leitet Pi-hole dann an den Router weiter.

Bei einer Fritzbox finden Sie die entsprechende Konfiguration unter Heimnetz | Netzwerk | Netzwerkeinstellungen | IPv4-Adressen. Dort tragen Sie die IPv4-Adresse des Pi-hole-Systems unter Lokaler DNS-Server ein (Abbildung 3). Dasselbe wiederholen Sie in den Einstellungen zu den IPv6-Adressen. Dort gibt es für die DNSv6-Server im Heimnetz einen eigenen Abschnitt.

Abbildung 3: Die Konfiguration des Routers müssen Sie so ändern, dass der DHCP-Server den Clients die IP-Adresse des Pi-hole-Servers als DNS-Server für IPv4 (und eventuell IPv6) übermittelt.

Abbildung 3: Die Konfiguration des Routers müssen Sie so ändern, dass der DHCP-Server den Clients die IP-Adresse des Pi-hole-Servers als DNS-Server für IPv4 (und eventuell IPv6) übermittelt.

Sobald Sie die Netzwerkverbindung eines Clients neu starten, etwa über den Network-Manager der Desktop-Umgebung, sollte das System Pi-hole als DNS-Server verwenden. Vergleichen Sie dazu die Ausgaben in Listing 2. Um sicherzugehen, empfiehlt es sich jedoch, alle Clients einmal neu zu starten. Ein im Testnetz eingesetztes Android-Smartphone wollte zum Beispiel den Pi-hole-DNS erst nach einem Neustart verwenden; es genügte nicht, das WLAN ab- und wieder einzuschalten.

Listing 2

$ cat /etc/resolv.conf
# Generated by NetworkManager
search fritz.box
nameserver 192.168.188.1
nameserver fd00::e228:6dff:fe46:f46b
nameserver 2003:de:d722:c300:c8fa:d0de:2df0:266b
$ cat /etc/resolv.conf
# Generated by NetworkManager
search fritz.box
nameserver 192.168.188.11
nameserver 2003:de:d722:c300:c8fa:d0de:2df0:266b

Den Effekt des Pi-hole-Adblockers prüfen Sie unter Linux mit dem Kommando dig. Die Ausgaben in Listing 3 zeigen beispielsweise, dass das System den Rechner mit der IP-Adresse 192.168.188.11 als DNS-Server verwendet und nur bei der Domain google.com eine IP-Adresse erhält. Die Abfrage nach der IP von google-analytics.com liefert hingegen 0.0.0.0, was die Anfrage ins Leere laufen lässt und zu einem Timeout führt.

Listing 3

$ dig google.com
[...]
google.com.             50      IN      A       216.58.210.14
;; Query time: 9 msec
;; SERVER: 192.168.188.11#53(192.168.188.11)
;; WHEN: Mo Aug 05 21:10:09 CEST 2019
;; MSG SIZE  rcvd: 55
$ dig google-analytics.com
[...]
google-analytics.com.   2       IN      A       0.0.0.0
;; Query time: 2 msec
;; SERVER: 192.168.188.11#53(192.168.188.11)
;; WHEN: Mo Aug 05 21:11:09 CEST 2019
;; MSG SIZE  rcvd: 65

Unique Local Addresses

Nach dem Eintragen des Pi-hole-Systems als DNS-Server in der Fritzbox-Konfiguration kann es vorkommen, dass sich die Ladezeiten von Webseiten spürbar verschlechtern. In diesem Fall sollten Sie die IPv6-Einstellungen in der Administrationsoberfläche des Routers unter Heimnetz | Netzwerk | Netzwerkeinstellungen | IPv6-Adressen kontrollieren. Im Abschnitt Unique Local Addresses findet sich in der Regel als Voreinstellung die Option Unique Local Addresses (ULA) zuweisen, solange keine IPv6-Internetverbindung besteht. Dadurch vergibt der Router keine Unique Local Addresses (das IPv6-Pendant zu privaten IPv4-Adressen), sobald eine IPv6-Adresse durch den Internet-Provider zur Verfügung gestellt wird.

Durch die in IPv6 implementierten Privacy Extensions variiert die IPv6-Adresse – auch die des Pi-hole-Servers – jedoch immer wieder, wodurch DNSv6-Abfragen dann ins Leere laufen. Bei auffällig langen Ladezeiten aktivieren Sie die Option Unique Local Addresses (ULA) immer zuweisen und starten dann den Pi-hole-Server neu. Idealerweise kontrollieren Sie die Einstellung sogar noch vor der Installation von Pi-hole. Die Unique Local Address des Pi-hole-Systems ermitteln Sie mit dem Kommando ip -6 addr. Achten Sie auf die inet6-Zeile, die mit fd00 oder dem von Ihnen in der Konfiguration der Fritzbox gesetzten Prefix beginnt. Diese Adresse tragen Sie dann im Format fd00:0:0:0:aaaa:bbbb:ccccdddd als Lokaler DNSv6-Server in den IPv6-Adressen ein. Zu guter Letzt müssen Sie die Konfiguration von Pi-hole mittels pihole -r aktualisieren, sodass das System die neue IPv6-Adresse verwendet.

Das Admin-Backend

Die Konfigurationsoberfläche des Pi-hole-Servers erreichen Sie über http://pi.hole/admin oder, falls die Namensauflösung nicht funktioniert, über die Eingabe von http://IP-Adresse/admin in der Adresszeile des Browsers. Mit einem Klick auf den Eintrag Login in der Seitenleiste melden Sie sich mit dem während der Installation zufällig erzeugten Passwort an. Sollten Sie es vergessen haben, müssen Sie sich via SSH oder lokal auf dem System anmelden und mit dem Kommando sudo pihole -a -p ein neues Passwort setzen.

Das System empfängt Sie mit dem Dashboard, das eine Reihe von Statistiken anzeigt (Abbildung 4). Bei aktiviertem Logging finden Sie hier auch die am meisten abgefragten sowie die am häufigsten durch Pi-hole geblockten Domains. Details zu den aktuellen Abfragen erhalten Sie über das Query Log; mit der Übersicht unter Long term data erstellen Sie Statistiken zu beliebigen Zeiträumen (Abbildung 5).

Abbildung 4: Das Dashboard der Admin-Oberfläche von Pi-hole liefert zahlreiche Informationen zum Status des Adblockers.

Abbildung 4: Das Dashboard der Admin-Oberfläche von Pi-hole liefert zahlreiche Informationen zum Status des Adblockers.


Abbildung 5: Als Betreiber eines DNS-Servers erfahren Sie viel über die Vorgänge in Ihrem Netzwerk. Bei Bedarf lässt sich die Protokollierung komplett deaktivieren.

Abbildung 5: Als Betreiber eines DNS-Servers erfahren Sie viel über die Vorgänge in Ihrem Netzwerk. Bei Bedarf lässt sich die Protokollierung komplett deaktivieren.

Geht Ihnen eine so detaillierte Zusammenfassung Ihrer Internet-Aktivitäten über die Hutschnur, passen Sie die Protokollierung unter Settings | Privacy an. Bei Bedarf deaktivieren Sie zudem mit dem Kommando sudo pihole logging off das Systemprotokoll in /var/log/pihole.log.

Lädt eine Webseite nicht wie gewünscht, dann deaktivieren Sie die Filterfunktion von Pi-hole über Disable. In dem Menü haben Sie die Wahl zwischen einer Auszeit von 10 Sekunden bis zu 5 Minuten, einer beliebigen Zeit, oder Sie stellen den Filter gleich komplett ab. Sobald Sie den Filter abstellen, leuchtet der Active-Status links oben über der Seitenleiste rot auf.

Benötigen Sie die problematische Seite zwingend, dann setzen Sie die betroffene Domain auf die Whitelist. Über die Blacklist fügen Sie dem Filter weitere zu blockierende Seiten hinzu. Das System erlaubt an dieser Stelle reguläre Ausdrücke und Wildcards.

Doppelt gefiltert

Um den Effekt von Pi-hole auf die Ladezeiten zu untersuchen, vergleichen wir mit Spiegel Online, Welt.de und Golem.de drei typische Nachrichtenportale. Dazu nutzen wir als Webbrowser Chrome in Version 76.0.3809.87 – einmal unverändert, einmal mit dem Adblock-Addon uBlock Origin und zu guter Letzt ohne Adblocker, aber mit dem DNS-Filter von Pi-hole 1.21.6. Letztendlich schauen wir uns auch an, was die Kombination aus allen Filtern bringt.

Die Zahlen im Kasten “Ladezeiten im Vergleich” zeigen, dass die dedizierten Adblocker den Ladevorgang merklich besser beschleunigen als der Pi-hole-Filter allein. Nichtsdestotrotz reduzieren Sie mit der Kombination beider Techniken, also Adblocker plus Pi-hole, die Ladezeiten nochmals um 10 bis 20 Prozent. Besonders bei mit Anzeigen zugepflasterten Seiten, wie denen aus dem Axel-Springer-Verlag, erweist sich der Geschwindigkeitsvorteil als eklatant: Die Seite von Welt.de baute sich im Test um den Faktor 6 schneller auf.

 

Chrome

Pi-hole

uBlock Origin

Pi-hole + uBlock Origin

Version

76.0.3809.87

04.03.01

1.21.6

1.21.6 + 04.03.01

SpOn

7459 (± 194)

3490 (± 690)

1928 (± 64)

1959 (± 122)

Welt

9817 (± 436)

5862 (± 360)

2210 (± 272)

1644 (± 202)

Golem

6778 (± 458)

2619 (± 93)

506 (± 69)

463 (± 38)

Alle Zeiten in Millisekunden (gerundet). Werte mit den Chrome Dev Tools als Durchschnitt aus fünf Durchläufen ermittelt.

Fazit

Doppelt genäht hält besser: Der Spruch gilt auch für den optimalen Adblocker und den Privatsphären-Schutz im eigenen Netzwerk. Pi-hole verhindert zuverlässig, dass sich netzwerkfähige Haushaltsgeräte zu bekannten Trackern verbinden und so Nutzungsdaten ins Netz blasen. Das bedeutet im Umkehrschluss allerdings nicht, dass Pi-hole jegliches Tracking verhindert: Überträgt etwa ein Kühlschrank Daten zu einem Server des Herstellers, müssten Sie Letzteren selbst ermitteln und dann von Hand in die Blacklist eintragen.

Trotzdem fällt nach wenigen Tagen auf, dass besonders Smartphones und netzwerkfähige Multimediageräte vom Privacy-Filter des Pi-hole-Servers profitieren. Zu den im Testnetz am häufigsten blockierten Domains gehören neben den typischen Anzeigenetzwerken auch Analysetools, die sich besonders auf das Erheben von Nutzerdaten auf mobilen Geräten spezialisiert haben. Auch einen gesprächigen Samsung-Fernseher und die im Netz ebenso geschwätzigen aktiven Sonos-Boxen bremst Pi-hole ohne zusätzliche Konfiguration aus.

Bezogen auf das Surferlebnis auf dem PC bringt Pi-hole einen Tick weniger als ein ausgewachsenes Adblock-Addon wie uBlock Origin: Der klassische Adblocker lässt sich besser konfigurieren, zudem beschleunigt er den Seitenaufbau mehr als der DNS-Filter von Pi-hole allein. Das optimale Ergebnis erzielen Sie durch die Kombination von Adblocker und Pi-hole. Die Ladezeiten vieler Webseiten lassen sich so auf einen Bruchteil der ungefilterten Originale reduzieren. Zudem filtert Pi-hole Anzeigen und Tracker aus dem Datenstrom, auch wenn die Geräte oder Programme selbst keine Filtermöglichkeit bieten. 

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 11/2019 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben