Keine Werbung und Tracker mit Adblock-Addon – OpenWrt Teil4

1. Beim DNS ist SchlussOpenWRT-Adblock

Ein Werbe- und Trackingblocker zählt heute zur Grundausstattung der digitalen Selbstverteidigung, um sich gegen die Auslieferung von schadhafter Online-Werbung (Malvertising) und datensammelnden Marketing-Unternehmen zu schützen.

Mit dem adblock-Addon für den OpenWrt-Router möchte ich euch eine Lösung vorstellen, die Werbung und Tracker bereits auf DNS-Ebene filtert. DNS-Anfragen an Werbe- und Trackingdomains werden dann von OpenWrt nicht wie üblich in die dazu passende IP-Adresse übersetzt und nachgeladen, sondern die Anfragen laufen praktisch »ins Leere«. Positiv: Mit dieser Lösung lassen sich Werbeeinblendungen und Datensammler auf allen Geräten in eurem Netzwerk filtern, die den OpenWrt-Router zur Namensauflösung nutzen.

Mit dem Addon luci-app-adblock lassen sich zudem alle relevanten Einstellungen bequem über das LuCI-Webinterface des OpenWrt-Routers vornehmen. Letztendlich ist die Lösung vergleichbar mit einem Pi-hole, der ebenfalls auf DNS-Ebene Werbe- und Trackingdomains filtert.

Dieser Beitrag ist Teil einer Artikelserie:

2. DNS-basierter Werbe- und Trackingfilter

Am Beispiel von In-App-Werbung möchte ich kurz erläutern, wie DNS-basiertes Filtern technisch funktioniert. Angenommen ein App-Entwickler hat in seiner App ein Werbemodul integriert. Bei jedem Start der App oder auch während der Laufzeit kontaktiert die App bzw. das integrierte Modul die Adresse:

werbung.server1.de

Dieser Domainname muss allerdings zunächst in eine IP-Adresse übersetzt werden, damit die Werbung anschließend von dort nachgeladen werden kann. Dieser Service wird vom Domain Name System (DNS) erledigt – einer der wichtigsten Dienste im Internet, der Domainnamen in die zugehörige IP-Adresse umwandelt. Das Prinzip dahinter kennt jeder: Ihr gebt im Browser eine URI ein (also den Domainnamen), dieser wird dann von einem DNS-Server in die zugehörige IP-Adresse übersetzt. Namen lassen sich eben leichter merken als IP-Adressen. In eurem OpenWrt-Router sind daher üblicherweise DNS-Server von eurem Provider hinterlegt oder ihr habt manuell eigene eingetragen, die dann anschließend die Adresse »werbung.server1.de« in eine IP-Adresse übersetzen.

Dieses DNS-Prinzip macht sich ein DNS-basierter Blocker nun zunutze. In seinem Speicher verwaltet der Blocker eine Liste mit Domainnamen, die entweder Werbung ausliefern, den Nutzer tracken oder anderweitig wie eine negative Auswirkung auf Sicherheit und Privatsphäre haben können.

Habt ihr das adblock-Addon für den OpenWrt-Router installiert, wird die DNS-Abfrage eures Clients zunächst an das Addon gesendet und dort mit der intern hinterlegten (schwarzen) Liste abgeglichen. Befindet sich die Adresse

werbung.server1.de

in der Liste bzw. kommt es zu einem Treffer, wird die IP-Adresse nicht wie üblich aufgelöst, sondern euer Gerät bzw. die App erhält sinngemäß die Antwort: »Nicht erreichbar« – die Übersetzung in die korrekte IP-Adresse wird vom Addon also unterdrückt. Die Folge: Die Werbung kann nicht von der eigentlichen Quelle bzw. IP-Adresse nachgeladen werden. Anstatt der Werbung sieht der Nutzer einen Platzhalter bzw. einfach nichts. Ein einfaches Prinzip, das die Werbung noch vor der Auslieferung – ja sogar noch vor der Übersetzung in die IP-Adresse – blockiert.

3. Installation

Für die Installation rufen wir zunächst das LuCI-Webinterface auf und selektieren anschließend System -> Software. In der Suchmaske gebt ihr anschließend im Feld Filter »adblock« ein.

Anschließend installiert ihr die folgenden drei Pakete:

  • adblock: Das notwendige Paket zur DNS-Werbe-Filterung
  • luci-app-adblock: Ein Webinterface zur Steuerung und Konfiguration des adblock-Addons über das LuCI-Webinterface
  • wget: Ein Werkzeug zum Download der Blocklisten – das Paket hat TLS-Support bereits integriert, um die Blocklisten via TLS-Verbindung von den Quellen zu beziehen.

Installation

4. Konfiguration

Nach der Installation ist das Addon nicht direkt aktiv, sondern muss zunächst über System -> Startup aktiviert werden. Sucht einfach nach der Zeile mit dem Eintrag »adblock« und klickt auf den Start-Button. Anschließend kann das Addon über Services -> Adblock an eure Bedürfnisse angepasst werden:

Konfiguration Adblock

Eine Anpassung solltet ihr unbedingt vornehmen. Stellt unter Download Utility auf: wget

Hilf mit die Spendenziele zu erreichen!

Unabhängig. Kritisch. Informativ. Praxisnah. Verständlich.

Die Arbeit von kuketz-blog.de wird vollständig durch Spenden unserer Leserschaft finanziert. Sei Teil unserer Community und unterstütze unsere Arbeit mit einer Spende.

Mitmachen ➡

4.1 Blocklist Sources

Bereits in der Standardauslieferung ist das Addon eigentlich gut konfiguriert. Ihr solltet nur noch zusätzliche Blocking-Listen aktivieren bzw. eigene hinzufügen, um die Filterquote zu verbessern. Folgende Blocklisten sind bei mir aktiv:

  • adaway
  • adguard
  • blacklist: Das ist die lokale Blacklist, die ihr über Advanced -> Edit Blacklist erreichen könnt, um dort eigene Domains zu hinterlegen.
  • disconnect
  • hphosts
  • malware
  • reg_de
  • winspy
  • youtube
  • yoyo
  • stevenblack: Hierbei handelt es sich um eine selbst hinzugefügte Quelle. Wie das funktioniert, werde ich noch erläutern.

Durch die Aktivierung der Filterlisten kann es zum sogenannten »Overblocking-Effekt« kommen. Das bedeutet: Es werden fälschlicherweise Domains gefiltert, die für die Funktionalität eines Dienstes, Webseite oder App erforderlich sind. Über Advanced -> Edit Whitelist könnt ihr für solche Fälle Ausnahmen definieren.

Hinweis

Weitere Blocking-Listen bzw. Quellen findet ihr auf der GitHub-Seite des adblock-Addons.

4.2 Extra Options

Auf ein paar Optionen möchte ich noch kurz eingehen, die adblock unter Extra Options anbietet. Folgende drei Anpassungen habe ich durchgeführt:

  • Enable Blocklist Backup: Das Aktivieren dieser Option ist aus mehreren Gründen sinnvoll. Einerseits, wenn Fehler beim Download auftreten. Andererseits aber auch in Kombination mit einer vorgeschalteten FRITZ!Box bzw. Modem, wenn beide Geräte über Nacht deaktiviert werden. Bei einem gleichzeitigen Neustart der Geräte kann der OpenWrt-Router die Listen aufgrund einer noch nicht aufgebauten Internetverbindung oftmals nicht herunterladen. Ist die Funktion aktiv, wird ein Backup der Listen bzw. blockierten Domains einer bereits erfolgreichen Aktualisierung (bspw. einem Tag davor) vorgehalten.
  • Backup Mode: Nach einem Neustart des OpenWrt-Routers werden die Listen nicht automatisch geladen, sondern das Backup geladen – vorgehalten durch die Funktion Enable Blocklist Backup.
  • Max. Download Queue: Die Anzahl an gleichzeitigen Downloads der Listen kann von 4 auf 8 erhöht werden.

Aufgrund des Netzwerkaufbaus bzw. der vorgeschalteten FRITZ!Box 6490 kann es unter Umständen also sinnvoll sein, den Backup-Modus zu aktivieren – gerade dann, wenn der OpenWrt-Router und das vorgeschaltete Modem über Nacht (automatisiert) ausgeschaltet werden. Über System -> Scheduled Tasks könnt ihr anschließend selbst einen Zeitpunkt definieren, an dem das adblock-Addon neugestartet wird und damit ein Update der Filterlisten anstoßen:

# Adblock Reload
45 06 * * * /etc/init.d/adblock restart

Jeden morgen um 6:45 Uhr wird das Addon neu gestartet und damit die Filterlisten aktualisiert.

4.3 Filterliste bzw. Quelle hinzufügen

Das adblock-Addon bringt schon einige Filterlisten mit, die man über die GUI aktivieren kann. Über Advanced -> Edit Configuration lassen sich noch weitere Quellen ergänzen – zum Beispiel StevenBlack Hostlist:

Blockliste hinzufügen

Wenn ihr in der Datei bzw. dem Fenster ganz nach unten scrollt, könnt ihr einfach folgenden Eintrag (bzw. Einträge) ergänzen und diesen anschließend in der Hauptansicht mit einem Häkchen bei der Filterliste stevenblack aktivieren:

config source 'stevenblack'
	option adb_src 'https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/fakenews-gambling-porn-social/hosts'
	option adb_src_rset '/^0\.0\.0\.0[[:space:]]+([[:alnum:]_-]+\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower(\$2)}'
	option adb_src_desc 'https://github.com/StevenBlack/hosts: unified blocklist + fakenews + gambling + porn + social, frequent updates, approx. 60.000 entries'
	option enabled '1'

config source 'hosts_blocklists'
	option adb_src 'https://raw.githubusercontent.com/notracking/hosts-blocklists/master/hostnames.txt'
	option adb_src_rset '/^0\.0\.0\.0[[:space:]]+([[:alnum:]_-]+\.)+[[:alpha:]]+([[:space:]]|$)/{print tolower(\$2)}'
	option adb_src_desc 'https://github.com/notracking/hosts-blocklists: No more ads, tracking and other virtual garbage'
	option enabled '1'

5. Adblock-Addon testen

Nach der Konfiguration des Addons und die Erweiterung der Filterlisten ist es an der Zeit, euer Setup zu testen. Dazu solltet ihr das adblock-Addon zunächst neu starten, um ein Update der Filterlisten anzustoßen bzw. die (veränderten) Einstellungen zu laden. Das geht ganz einfach über System -> Startup oder einem Befehl über die Kommandozeile, wenn ihr per SSH verbunden seid:

/etc/init.d/adblock restart

Anschließend navigiert ihr zu Services -> Adblock -> Advanced -> Query Domains und tragt dort einen Domainnamen ein, der geblockt sein sollte. Gebt bspw. »google.com« ein. Anschließend erscheint ein Textfeld mit den blockierten Domains:

::: results for domain 'google.com'
  + adservice.google.com.au
  + www.google.com-document-view.alibabatradegroup.com
  + google.com
  + ads.google.com
  + adservice.google.com
  + adservices.google.com
  + adwords.google.com
  + analytics.google.com
  + fundingchoicesmessages.google.com
  + gg.google.com
  + [...]

6. Fazit

Ein DNS-basierter Werbe- und Trackingblocker sollte in keinem Haushalt fehlen und zählt zum Inventar eines sicherheits- und datenschutzsensiblen Nutzers. Ähnlich wie der Pi-hole leistet das adblock-Addon für OpenWrt hier einwandfreie Dienste und schützt nicht nur den PC oder das Smartphone, sondern auch Geräte wie Smart TVs, die es nicht ermöglichen, einen Adblocker zu installieren.

Im nächsten Teil der OpenWrt-Artikelserie werden wir Stubby in Betrieb nehmen, das TLS-verschlüsselte DNS-Anfragen (DNS over TLS) an geeignete DNS-Server bzw. Resolver ermöglicht.

Über den Autor | Kuketz

Mike Kuketz

In meiner freiberuflichen Tätigkeit als Pentester / Sicherheitsforscher (Kuketz IT-Security) schlüpfe ich in die Rolle eines »Hackers« und suche nach Schwachstellen in IT-Systemen, Webanwendungen und Apps (Android, iOS). Des Weiteren bin ich Lehrbeauftragter für IT-Sicherheit an der Dualen Hochschule Karlsruhe, sensibilisiere Menschen in Workshops und Schulungen für Sicherheit und Datenschutz und bin unter anderem auch als Autor für die Computerzeitschrift c’t tätig.

Der Kuketz-Blog bzw. meine Person ist regelmäßig in den Medien (heise online, Spiegel Online, Süddeutsche Zeitung etc.) präsent.

Mehr Erfahren ➡

SpendeUnterstützen

Die Arbeit von kuketz-blog.de wird zu 100% durch Spenden unserer Leserinnen und Leser finanziert. Werde Teil dieser Community und unterstütze auch du unsere Arbeit mit deiner Spende.

Folge dem Blog

Wenn du über aktuelle Beiträge informiert werden möchtest, hast du verschiedene Möglichkeiten, dem Blog zu folgen:

Bleib aktuell ➡


Diskussion

18 Ergänzungen zu “Keine Werbung und Tracker mit Adblock-Addon – OpenWrt Teil4”

  1. Comment Avatar Anonymous sagt:

    Vielen Dank für den Artikel!
    Ich habe zwei Fragen: 1) Werden die Filterlisten über https geladen? Ich sehe z.T., dass diese Listen nur per http erreicht werden (nicht in deinem Fall, sondern generell). Wie relevant is hier die Absicherung per https überhaupt? 2) Du schreibst, dass dein Modem und die 4040 über Nacht ohne Strom sind, was wohl (neben Stromsparen) bewirken soll, eine neue IP zu erhalten. Das ist insbesondere beim Kabelmodem ja oft sonst nicht der Fall. Die Geräte haben keinen An/Aus-Schalter. Hast du eine Zeitschaltuhr? Wenn ja: Vertragen die Geräte das gut? Danke :)

    • Comment Avatar Mike Kuketz sagt:

      1.)
      Ich habe nur Listen aktiv, die sich via HTTPS laden lassen. Das erkennt man unter »Blocklist Sources« an der Spalte »SSL req.«.
      2.)
      Ich nutze eine analoge Zeitschaltuhr. Die Geräte vertragen das seit Jahren ohne Probleme.

  2. Comment Avatar libertador sagt:

    Das Herunterladen von Filterlisten hatte bei mir nicht funktioniert.

    Ich hatte einige Filterlisten aktiviert und adblock über System->Startup und ssh jeweils neu gestartet, aber aus einem Grund übernahm adblock nur meine manuelle Blacklist, aber ludt keine Filterlisten herunter. Ich habe in der manuellen Blacklist nur eine Test-Domain zugefügt:

    Das Logfile zeigte u. a. an:

    "Fri Oct 18 XX:XX:XX 2019 user.info adblock-3.5.5-2[3114]: blocklist with overall 1 domains loaded successfully"

    Es wird also nur die manuelle Blacklist geladen.

    Den Fehler konnte ich aber mithilfe von openwrt.org beheben. (https://openwrt.org/docs/guide-user/services/ad-blocking)
    Es war die Installation von ‚libustream-mbedtls‘ erforderlich.

  3. Comment Avatar Bob sagt:

    Overblocking scheint mir an dieser zentralen Stelle im Netzwerk eine nicht zu unterschätzende negative Auswirkung zu sein. An meinem heimischen Pi-hole habe ich die Anzahl der Filterlisten reduziert, nachdem sich meine Familie über fehlende Funktionalität auf den Mobilgeräten beklagt hat. Eine Whitelist wäre hier für mich keine zeitlich vertretbare Option gewesen. Am von mir genutzten PC sieht es dann schon wieder anders aus.

    Ich würde mir einen Artikel über die verschiedenen Filterlisten wünschen. Welche sind für wen sinnvoll, welche decken was ab. Schutz vor Tracking ist manchem wichtiger als das Blockieren von adult content. Haushalte ohne Android/iPhone brauchen eventuell unterschiedliche Blocklisten?

    • Comment Avatar Anonymous sagt:

      Es gibt Projekte, die sich mit dem Sammeln und Bewerten von Listen befassen. Beispiele sind:

      https://github.com/notracking/hosts-blocklists (wird von securedns.eu für den DoT Adblock DNS Server genutzt)

      https://firebog.net/ (bietet Listen gruppiert nach dem Whitelisting Aufwand)

      Ich habe beide intensiv getestet und bei ~ 800.000 blockierten Domains mit Pihole 5 Einträge auf der Whitelist.

    • Comment Avatar savant sagt:

      Wenn die Anwendungen ohne Tracking nicht funktionieren, dann sollte man sie nicht verwenden. Ansonsten bleibt nur die Whitelist als praktikable Option.

  4. Comment Avatar Anonymous sagt:

    Sehr schöner, prägant formulierter, aber ausreichend verständlicher Artikel, danke!

    Was mir noch unklar ist: Macht OpenWRT-Adblock den Einsatz von uBlock Origin im Heimnetzwerk unnötig?

  5. Comment Avatar Sigi sagt:

    Erstmal, vielen Dank für den Artikel. Er bietet eine gute Grundlage und erleichtert den Einstieg in das Thema.
    Mir ist aufgefallen das ein aktivieren der Blocklist Source „reg_de“ bei mir die Downloads im Google Play Store blockiert.
    Als ich nun nachsehen wollte um welche Domian es sich im Detail handelt um diese gegeben Falls auf die Whiteliste zu setzen, ist mir aufgefallen das gar kein „DNS Query Report“ abrufbar existiert. Dieser ist erst Bestandteil ab Version 3.6.0 von adblock und daher leider nicht in der aktuellen Version 3.5.5-2 enthalten.

    Frage 1: Wie kann man Version 3.6.0 oder höher installieren?

    Frage 2: Welche Möglichkeiten neben dem oben Beschriebenen „DNS Query Report“ gibt es um in Erfahrung zu bringen welche DNS Anfragen zu welchen Domians inkl. Zeitstempel blockiert wurden?

    • Comment Avatar contax sagt:

      Das vermisse ich leider auch. Ich habe das Gefühl,dass man dafür openwrt 19.07 braucht,welches leider noch nicht stable ist.
      Falls es einen anderen Weg gibt wäre ich auch um einen Tipp glücklich.

    • Comment Avatar Ich sagt:

      Ich hatte auch das Problem.
      Du kannst unter Network -> DHCP and DNS Log queries aktivieren.
      Dann kannst du auf der Konsole mit logread -f dir die DNS Anfragen aus deinem Netz ansehen. Die NXDOMAIN Einträge sind die blockierten.

      Der Play Store läd die Daten von einer gvt1.com Subdomain.

      Ich hab dann die gvt1.com in die Whitelist eingetragen. Danach ging der Download wieder.

      • Comment Avatar Sigi sagt:

        Danke für den Tipp. Das System-LOG kann man auch bequem im Webinterface durchforsten.

        Kleiner Tipp an alle die Android Geräte in Zusammenhang mit NewPipe für ihren YouTube Konsum nutzen:
        Die YouTube Blockliste blockiert zwar Werbung auf dem Desktop-Rechner, jedoch funktioniert NewPipe dafür nicht mehr.
        Wenn ihr wie ich im Browser uBlock nutzt um euch am Desktop Rechner vor Tracking zu schützen, wäre es eine Überlegung wert die YouTube Blockliste zu deaktivieren ;-)

  6. Comment Avatar Dija sagt:

    Ich hatte mich an meiner pihole sehr gewöhnt, gerade sich wegen der netten und einfachen Oberfläche, mit der man einfach Listen hinzufügen oder Seiten auch wieder whitelisten kann.
    Ist das adblock Plugin diesbezüglich vergleichbar gut, sodass man den pihole dann damit ersetzen kann?

    • Comment Avatar Sigi sagt:

      Hängt vom jeweiligen Einsatzzweck ab bzw. deinen Anforderungen.
      Bin selbst vom Pihole auf adblock umgestiegen um somit ein gerät einsparen zu können.
      Wie aber bereits weiter oben von mir beschrieben bietet adblock im Gegensatz zum Pihole aktuell keine Statistik an.

  7. Comment Avatar Anonymous sagt:

    adblock macht iwie meinen Traffic kaputt. Ich bekomme mit allen Browsern immer wieder Ladefehler und muss F5 drücken damit die Seite geladen wird. Wenn ich adblock ausschalte, ist das Problem behoben.

    Hilfe?

  8. Comment Avatar Hubert sagt:

    Wie libertador am 18.10.2019 schreibt habe auch ich das Problem dass die Blockierlisten nicht geladen werden. Das Logfile zeigt
    Sun Nov 3 11:55:11 2019 user.info adblock-3.5.5-2[2977]: blocklist with overall 0 domains loaded successfully (AVM FRITZ!Box 4040, OpenWrt 18.06.4 r7808-ef686b7292)

    Die Installation von ‘libustream-mbedtls’ bringt keine Verbesserung. Alle unter https://openwrt.org/docs/guide-user/services/ad-blocking stehenden Einstellungen habe ich getroffen. Blockierlisten zeigen nach manuellem Update, nach Neustart des Routers und nach abwarten des eingestellten ‘Scheduled Taks’ zum automatischen Blockierlistenupdate den Wert 0 (backup mode) an. Pakete neu installieren hat auch nichts geholfen.

    Hat noch jemand eine Idee oder ein ähnliches Problem? Im Forum exsitiert noch keine Diskussion dazu.

    Gruß
    Hubert

    • Comment Avatar Alex sagt:

      Hallo Hubert,

      dasselbe Problem hatte ich auch. Dann hab ich gemerkt, dass bei mir (OpenWrt 18.06.4, o2Box 6431) weder wget noch uclient-fetch installiert sind. Beider nachgeholt, dazu noch den Backup mode von adblock kurzzeitig ausgemacht, etwas gewartet und alle Listen wurden heruntergeladen.

      @Mike, vielleicht kannst du den Hinweis mit den fehlenden wget und uclient-fetch mit in den Artikel aufnehmen. Stand zuerst auch auf dem Schlauch, warum es nicht funktioniert.

      Jetzt hab ich ein anderes Problem: das Interface ist extrem langsam und häufig kommt die Meldung „Out of memory“. Muss wohl einige der Listen wieder herausnehmen oder paar Komponente deinstallieren.

      Gruß
      Alex

    • Comment Avatar Sigi sagt:

      Hallo Hubert,

      ein laden der Blocklisten erfolgte bei mir erst nach umstellen auf das bereits von Alex erwähnte uclient-fetch Download Utility im Adblock Menü sowie nach hinzufügen des Packets: libustream-openssl

      Darauf gestoßen bin ich über diesen Github Eintrag

  9. Comment Avatar Hubert sagt:

    Hallo Alex, hallo Siggi,

    vielen Dank für Information. Nach Installation der Add-ons werden die Blockierlisten geladen und unter „query domain“ erscheinen jetzt Blockiereinträge bei Abfrage einer bestimmten URL. Funktioniert. Danke.

    Gruß
    Hubert

HilfeWenn du konkrete Fragen hast oder Hilfe benötigst, sind das offizielle Forum oder der Chat geeignete Anlaufstellen, um dein Anliegen zu diskutieren. Per E-Mail beantworte ich grundsätzlich keine (Support-)Anfragen – dazu fehlt mir einfach die Zeit. Kuketz-Forum

Abschließender Hinweis

Blog-Beiträge erheben nicht den Anspruch auf ständige Aktualität und Richtigkeit wie Lexikoneinträge (z.B. Wikipedia), sondern beziehen sich wie Zeitungsartikel auf den Informationsstand zum Zeitpunkt des Redaktionsschlusses.

Kritik, Anregungen oder Korrekturvorschläge zu den Beiträgen nehme ich gerne per E-Mail entgegen.