Werbung und Tracker zu blockieren ist eines der wichtigsten Elemente zum Schutz der digitalen Privatsphäre. Am Desktop reicht dafür oft ein Adblocker im Browser. Durch die vielen Apps muss man bei Android oder iOS anders vorgehen.
Vorbemerkungen
In der Vergangenheit hatte ich hier im Blog bereits zwei Lösungen vorgestellt: Blokada für Android und AdGuard Pro für das iPhone. Beide setzen auf ein virtuelles VPN, um den Datenverkehr des Geräts filtern zu können. Bei Lösungen halte ich auch immer noch für mögliche Vorgehensweisen. Es gibt noch zahlreiche weitere Apps, die vergleichbare Funktionen bieten. Sie funktionieren aber nicht in jeder Situation, z. B. wenn man aus anderen Gründen VPN benötigt.
Es gibt aber auch ernste Implikationen durch solche Blocker, die man in seiner Entscheidungsfindung berücksichtigen sollte. Dazu aus den FAQ von GrapheneOS:
Apps and web sites can detect that ad-blocking is being used and can determine what’s being blocked. This can be used as part of fingerprinting users. Using a widely used service like AdGuard with a standard block list is much less of an issue than a custom set of subscriptions / rules, but it still stands out compared to the default of not doing it.
GrapheneOS FAQ, abgerufen am 15.01.2022
Das ist beileibe keine Minderheitenmeinung, sondern so funktioniert im Prinzip auch der Tor Browser. Durch massive Maßnahmen zum Blockieren von Inhalten verstärkt man faktisch auch den eigenen Fingerabdruck. Beim Tor Browser versucht man stattdessen in der Masse unterzugehen und die Trackingmaßnahmen dadurch ins Leere laufen zu lassen.
Nur möchte ich wie viele andere eben auch trotzdem keine Werbung haben und dazu empfiehlt GraphenOS den Einsatz eines Private DNS (DNS-over-TLP) Server mit Unterstützung für Adblocking.
Funktionsweise von Adblock via DNS
Das Prinzip dieser Lösung ist ziemlich einfach erklärt. Webseiten oder Apps kontaktieren zur Auslieferung von Werbung die Adresse der Werbenetzwerke. Genau wie normale Anwender, wenn sie im Internet surfen, rufen die Apps keine konkrete IP-Adresse auf, sondern eine Domain. Diese Aufrufe von Drittanbietern kennen die meisten durch die Anzeige von Addons wie ublock origin im Browser.
Diese Domain muss in eine IP-Adresse übersetzt werden und dafür kommt der DNS-Server (Domain Name System) als „Telefonbuch des Internets“ zum Einsatz. Das ist ein normaler Vorgang und passiert immer, wenn wir im Netz unterwegs sind. Normalerweise sind bei jedem im Router die DNS-Server des Internetanbieters zur korrekten Weiterleitung hinterlegt. Dafür kann man aber auch individuelle Server hinterlegen.
Normalerweise sind solche DNS-Server neutral und verweisen auf die korrekte Ziel-IP. DNS-Server sind aber in manchen Ländern auch ein Instrument, um unerwünschte Netzinhalte zu blockieren, indem z. B. durch den Staat eine Blacklist gepflegt wird, die nicht aufgelöst werden darf. Ich schreibe dies deshalb, weil die Frage, ob man DNS-Server für so etwas wie Adblocking verwenden sollte, durchaus umstritten ist und es Leute gibt, die finden, solche Dienste sollten strikt neutral sein und die entsprechenden Funktionen sollten anderweitig umgesetzt werden.
Adblock via DNS-Server funktioniert, indem man einen DNS-Anbieter wählt, der eben keinen neutralen Server betreibt, sondern eine Blacklist mit eben jenen Servern verwaltet, die Werbung und/oder Tracker ausliefern.
Dadurch stellen die Webseiten oder Apps nicht fest, dass etwas blockiert wird, sondern bekommen die Rückmeldung, dass die gewählte Adresse nicht erreichbar ist. Ein Vorgang, der auch aus anderen Gründen zeitweilig passieren kann.
DNS-Server Anbieter mit Adblock-Funktion
Es gibt einige Betreiber entsprechender DNS-Server. Einen besonders wichtigen Anbieter listet GrapheneOS in seinen FAQ. Eine kleine Liste von DNS-over-TLS oder DNS-over-HTTPS Betreibern kann man im Privacy-Handbuch finden. Folgende drei Anbieter möchte ich hier explizit nennen:
- Mullvad DNS: adblock.doh.mullvad.net (Kommerzieller Anbieter, der einen sehr beliebten und positiv bewerteten VPN-Dienst betreibt. DNS-Server kann kostenlos genutzt werden)
- AdGuard DNS: dns.adguard.com/dns-query (AdGuard ist ein kommerzieller Anbieter, der sich durch den Verkauf von Apps und Addons im Bereich des Adblock finanziert. Der DNS-Server kann kostenlos genutzt werden)
- dnsforge: dnsforge.de/dns-query (privater Anbieter, der sich mit Spenden finanziert. Die Blocklisten kann man transparent auf der verlinkten Webseiten einsehen)
Die Wahl des Anbieters ist letztlich eine persönliche Entscheidung und ich kann und will hier keine fundierte Empfehlung abgeben. Neben den drei hier gelisteten und sicherlich sehr populären Servern, kann man auch andere im Privacy-Handbuch verlinkte DNS-Server-Anbieter wählen.
Android-Nutzer haben hier die volle Auswahl. Anwender mit einem iPhone sollten einen DNS-Server-Betreiber wählen, der DNS-over-TLS anbietet. Das wäre z. B. dnsforge.
Einrichtung
Grundsätzlich kann man einen DNS-Server individuell für jeden Browser und jedes Desktopbetriebssystem konfigurieren. Hier empfehle ich aber eher, den DNS-Server bei Bedarf zentral im Router auszutauschen oder ein Pi-Hole einzurichten (aber achtet dabei die Privatsphäre der anderen Nutzer im Netzwerk). Bei mobilen Geräten ist man natürlich nicht immer im heimischen Netzwerk oder mit diesem über VPN verbunden und hier kann es deshalb sinnvoll sein, zentral einen eigenen DNS-Server mit entsprechender Adblock-Funktion zu hinterlegen.
Einrichtung unter Android
Android macht es seinen Anwender wie so oft leicht, solche Funktionen zu nutzen. Das ist definitiv eine der Stärken des Betriebssystems von Google.
Man navigiert in den Einstellungen in den Bereich Netzwerke & Internet:
Hier kann man im Punkt Privates DNS einen individuellen DNS-Server hinterlegen:
Einrichtung und iOS (iPhone)
Apple macht das etwas anders. Hier gibt es für solche Konfigurationen (und auch andere Sachen) sogenannte Profile. Dabei handelt es sich um Konfigurationsdateien mit der Endung .mobileconfig Zur Verwendung muss man mittels Safari die Seite des entsprechenden Dienstanbieters aufrufen und dort das Profil herunterladen. Bei dnsforge sind diese prominent auf der Seite verlinkt. Mit einem Klick auf Zulassen aktiviert man das Profil. Anschließend kann man in den Einstellungen die geladenen Profile ansehen und aktivieren.
Funktion prüfen
Die korrekte Funktionsweise lässt sich mit verschiedenen Checkseiten prüfen. Mullvad bietet hierfür z. B. eine eigene Seite namens Mullvad-Check an. Eine andere Möglichkeit wäre dnsleaktest.
Grundsätzlich sollten jetzt in keiner App und auf keiner Webseite mehr Werbung angezeigt werden.
Grenzen der Methode
Ein Problem von Adblock via DNS ist die geringe Konfigurierbarkeit. Entweder man nutzt den Dienst oder nicht. Wenn man Probleme mit Overblocking hat oder den Datenverkehr überwachen und granularer steuern möchte, sollte man auf alternative Methoden setzen.
Das zentrale Aussperren von Werbung und Trackern über einen solchen Dienst ist aber eine sehr taugliche Lösung für all jene, die gerne einmal etwas einrichten und es dann vergessen wollen.
Ein Problem bei einem externen DNS Server, der direkt auf dem Gerät eingestellt ist, besteht dann auch darin, dass Geräte wie eine NAS im eigenen LAN nicht mehr per Name erreicht werden können. Dann muss man in den Einstellungen immer umschalten. Das vergisst man manchmal und wundert sich, warum nichts geht. Gibt es da bei iOS eine bessere Lösung. Habe noch nichts gefunden.
Ja. Nextdns.io kann man vieles konfigurieren. Sowie das erstellen eine Config Profile für Apple Geräte, welches Ausnahmen zulässt, z.B. lokale Domain des Heimnetzes oder im heimischen WLAN.
Du kannst auch im lokalen Netzwerk einen forwarder zu DoT einrichten (z.B. mit kresd: https://blog.mdosch.de/2021/10/31/dns-over-tls-in-debian/#client ) und kannst den lokalen forwarder konfigurieren die Namen für lokale Geräte aufzulösen.
Ich habe z.B. kresd als forwarder zu meinem rekursiven DNS über DoT auf einem Pi laufen und alle anderen Geräte nutzen den Pi als DNS server. Ist auch ganz praktisch, weil kres cached und dementsprechend nicht jedes mal debian.org beim upstream DNS server angefragt werden muss wenn ein client auf updates prüft.
Auflösung von lokalen Geräten habe ich aber nicht eingebaut, das habe ich ganz oldschool in `/etc/hosts` festgenagelt. 😀
Ich verwende die Android App DNS66. Die funktioniert als lokales VPN und leitet DNS-Anfragen um. Es können auch/stattdessen Blocklisten verwendet werden. Wenn man die selbst hosted, ist man komplett unabhängig von externen Anbietern und hat kein Privatsphärenproblem.
Funktioniert iCloud Privat Relay nicht auch so?
Ich benutze Vanadium mit Mulvad private DNS. Das hat eine Weile lang funktioniert, aber jetzt kommt in der populären Nachrichtenseite blick.ch nur noch eine Meldung, ich müsse den Adblocker deaktivieren.