c't 20/2022
S. 78
Titel
Netzwerkfilter: FAQ

AdGuard Home und Pi-hole

Der Einsatz eines DNS-Filters im eigenen Netzwerk geht meist mit unerwünschten Nebenwirkungen einher. Viele können Sie mit den richtigen Kniffen ausgleichen.

Von Peter Siering

Langsames DNS

Bremst ein Filter beim Surfen meinen Internetzugang aus?

Grundsätzlich fügen Sie mit der Inbetriebnahme meist eine weitere Station hinzu, die Namensanfragen durchlaufen. Andererseits sorgt der Filter dafür, dass viele Anfragen schon lokal beantwortet werden: Das gilt zum einen, weil alle blockierten Namen keine weiterzuleitenden Anfragen auslösen, und zum anderen, weil bereits angefragte Namen aller Clients in einem gemeinsamen Cache landen und eben auch keine weiterzuleitenden Anfragen auslösen. Unterm Strich bewirkt das eine gefühlte Beschleunigung beim ersten Laden von werbeüberfrachteten Websites.

So wünschenswert es wäre, das zu quantifizieren: DNS ist ein dynamisches System. Ladezeiten von Webseiten zu ermitteln, stellt immer nur eine Momentaufnahme dar. Auch beeinflussen weitere Faktoren die Antwortzeiten, etwa die Auslastung der Netzwerke. Reproduzierbare Benchmarks liefern deswegen nur wenig praxisrelevante Einschätzungen. Kurzum: Wenn Ihr Netz nach Installation eines DNS-Filters signifikant langsamer wird, dann stimmt etwas Grundsätzliches nicht: Sie haben gerade schlecht erreichbare Upstream-Server gewählt oder vielleicht eine falsche IP-Adresse eingetragen.

Verräterische Logs

Meine Mitbewohner sind skeptisch, dass ich als Verwalter des DNS-Filters sehe, was sie im Netzwerk tun. Was kann ich tun, um diese Bedenken zu zerstreuen?

Sie können die Log-Level der Filtersoftware so anpassen, dass sie möglichst wenig Daten mitschneidet. Andererseits sollten sich die Mitbewohner auch klar sein, dass der Verwalter des Routers eigentlich immer schnüffeln kann – es ist ein Problem, dass Sie gemeinsam vor allem im Gespräch klären müssen.

Für das Setzen eigener Regeln aus dem Query Log kann detailliertes Protokollieren sinnvoll sein. Was im Dauerbetrieb gesetzt ist, sollten Sie mit den Mitbenutzern abstimmen.
Für das Setzen eigener Regeln aus dem Query Log kann detailliertes Protokollieren sinnvoll sein. Was im Dauerbetrieb gesetzt ist, sollten Sie mit den Mitbenutzern abstimmen.

Netzwerk klemmt nach Probebetrieb

Irgendwie habe ich mich mit Pi-hole nicht anfreunden können. Doch wenn ich den Filter außer Betrieb nehme, funktioniert im heimischen Netz kein Gerät mehr. Was muss ich tun?

Sie müssen Änderungen an Ihrem Router wieder rückgängig machen, wenn Sie den für Pi-hole umkonfiguriert haben: Wenn Sie Pi-hole als DNS-Server in den Router eingetragen haben, weisen Sie ihn an, wieder vom Internetanbieter zugewiesene DNS-Server zu nutzen. Wenn Sie die DHCP-Konfiguration geändert haben, entfernen Sie den dort eingetragenen „Lokalen DNS Server“ (so der Name des Felds bei einer Fritzbox).

Upstream DNS-Server

In der Filtersoftware soll ich einen DNS-Server als Upstream auswählen, an den der Filter Namensanfragen weiterleitet, die er selbst noch nicht beantworten kann. Welcher Server von den Vorschlägen ist der richtige?

Das hängt von Ihren Ansprüchen ab: Die vorgeschlagenen Server großer Anbieter wie Google dürften sehr betriebsstabil sein, weil viele davon abhängen. Andererseits räumen sich diese Größen teils ein, die DNS-Anfragen statistisch auszuwerten. Unter ihnen tut sich das gemeinnützige Quad9 hervor, denn der Anbieter verspricht, das Nutzerverhalten nicht zu protokollieren.

Es müssen nicht die vorgeschlagenen Server sein, Sie können ebenso gut die IP-Adresse Ihres Routers eintragen (sofern Sie in Ihrem Router nicht den Filter als DNS-Server eintragen), dann würde Ihr DNS-Filter Namensanfragen an den vom Provider beim Verbindungsaufbau an Ihren Router übermittelten DNS-Server weiterleiten. Auch hier darf man mit dauerhaft guter Erreichbarkeit rechnen. Mancher nutzt auch einen lokal laufenden DNS-Server (siehe „Unbound extra“).

DNS-Server für den DNS-Filter

Ist es sinnvoll, auf dem als Installationsziel genutzten Raspi den Filter auch als DNS-Server einzutragen?

Aus unserer Sicht eher nicht: Wenn der DNS-Filter mal nicht funktioniert, würde auch der Raspi keine Namensanfragen mehr beantwortet bekommen. In der Praxis ergibt es mehr Sinn, die Adresse des Routers als DNS-Server auf dem Raspi zu konfigurieren, sodass im Log des Filters nicht die IP-Adressen der Clients, sondern deren Namen auftauchen. Das macht die Log-Lektüre meist leichter. Wenn Sie das nicht interessiert, wäre auch ein externer DNS-Server eine sichere Wahl.

Vorteile durch Docker

Pi-hole und AdGuard Home bieten ja eine Container-Installation an. Hat das Vorteile?

Ja und nein: Wenn Ihnen Docker vertraut ist und ohnehin schon in ihrem lokalen Netzwerk läuft, dürften Sie schneller fertig sein. Falls Watchtower automatisiert Ihre Container aktualisiert, haben sie auf diese Weise stets eine aktuelle Version am Start. Allerdings: Die Pi-hole-Macher warnen eindringlich davor, die Software automatisiert mit Watchtower zu aktualisieren. Sie können nicht ausschließen, bei einem Update auch mal etwas zu zerschießen, so die Begründung.

Dagegen lohnt es sich kaum, Docker einzurichten, um einen DNS-Filter zu betreiben. Und: Wenn der nicht nur filtern, sondern auch als DHCP-Server IP-Adressen im lokalen Netz verteilen soll, ist Docker keine gute Wahl – standardmäßig kommunizieren Container über Bridge-Netzwerke und NAT-Regeln mit dem lokalen Netz und das verträgt sich mit den für DHCP nötigen Broadcasts nicht.

Unbound extra?

In Foren lese ich immer wieder, dass andere Pi-hole-Nutzer den DNS-Filter zusätzlich mit Unbound kombinieren. Wofür ist das gut?

Pi-hole filtert DNS-Anfragen und beschleunigt sie dadurch, dass häufig gestellte Anfragen in einem Zwischenspeicher (Cache) landen. Um einen Namen initial zu ermitteln, befragt Pi-hole die als „Upstream“ konfigurierten Server. Die leiten ihrerseits Anfragen im hierarchischen DNS-System weiter, bis sie eine Antwort erhalten.

Mancher Nutzer misstraut den Upstream-Servern und lässt lieber deren Aufgaben lokal durch einen Unbound-Server erledigen. Der befragt dann direkt die weltweit verteilten DNS-Server. Initiale Antworten brauchen dadurch oft länger, aber man hinterlässt weniger Informationskrumen an zentralen Stellen im Netz. Unbound selbst ist ein DNS-Server wie auch das in Pi-hole steckende dnsmasq.

Wozu DNSSEC, DoH, DoT und DNSCrypt?

DNS gilt als unsicher, weil es Informationen im Klartext überträgt. In den Konfigurationsoptionen von Pi-hole finde ich nur DNSSEC. Brauche ich mehr?

Das kommt auf Ihre Anforderungen an. Mit DNSSEC können Sie sicherstellen, dass DNS-Anfragen aus authentischer Quelle stammen, also nicht unterwegs manipuliert worden sind. Mit den anderen Techniken vermeiden Sie, dass Dritte den Inhalt von DNS-Anfragen mitlesen.

Pi-hole bietet dafür zurzeit keine Funktionen an, sondern braucht Nachhilfe in Form von parallel installierten Diensten wie DNSCrypt-Proxy und Stubby (siehe c’t 4/2012, S. 134). Unsere Anleitungen dazu sind leider etwas überholt: Es ist meist nicht mehr nötig, diese zusätzlichen Dienste wie damals beschrieben selbst zu übersetzen; sie sind mittlerweile als fertiges Paket in Raspberry Pi OS (und Debian) verfügbar.

Wenn Ihnen das zu viel Aufwand ist, Sie aber eine Fritzbox Ihr Eigen nennen, können Sie auch Pi-hole zur Namensauflösung als Upstream-DNS-Server Ihrer Fritzbox eintragen und dort „DNS over TLS (DoT)“ aktivieren. Sie müssen dann allerdings Pi-hole als DNS-Server per DHCP zuweisen und verzichten somit auf die Möglichkeit, auch DNS-Anfragen im Fritzbox-Gastnetz durch Pi-hole zu leiten (siehe Artikel auf S. 28).

Lokale Namen auflösen

Ich möchte meine lokal betriebenen Server weiter unter ihren Namen erreichen, das klappt seit der Installation von Pi-hole nicht mehr. Was kann ich tun?

Wenn Sie einen DNS-Filter wie standardmäßig empfohlen einrichten, übergehen sie damit die lokale Namensauflösung, wie sie etwa Fritzboxen anbieten – die erreichen Sie selbst zum Beispiel als fritz.box. Wenn Sie diese Automatik beibehalten wollen, dann können Sie als Upstream-DNS-Server Ihren Router als DNS-Server eintragen. Alternativ finden Sie in der Weboberfläche der Filter Optionen, um lokale Systeme dort namentlich mit deren IP-Adresse einzutragen.

Pi-hole kennt außerdem ein „Conditional Forwarding“. Darüber können Sie den Filter auffordern, lokale Adressen beim Router und nicht beim Upstream-DNS-Server zu erfragen. Sie hinterlegen die IP-Adresse Ihres Netzes, die Adresse des Routers (und DHCP-Servers, der die Namen kennt) und den lokalen Domain-Namen wie fritz.box.

Pi-Hole auch aushäusig

Ich möchte auf das Filtern auch unterwegs nicht verzichten. Kann ich einen DNS-Filter auch außerhalb meines Heimnetzes zugänglich machen?

Entweder richten Sie einen VPN-Server ein, mit dem Sie sich unterwegs verbinden. Im VPN tragen Sie dann Ihren lokal installierten DNS-Filter als DNS-Server ein. Oder Sie betreiben einen solchen Filter auf einem Mietserver: Dann müssen Sie sich aber darüber im Klaren sein, dass dritte den DNS-Verkehr mitlesen können. Idealerweise setzen Sie AdGuard Home ein und aktivieren dort die sicheren DNS-Methoden. Das zieht allerdings einigen Aufwand für die Zertifikatsbeschaffung und Client-Konfiguration nach sich.

Pi-hole: Die Einstellungen für das Conditional Forwarding finden Sie in den „Settings“ unter dem Reiter „DNS“, wenn Sie nach ganz unten scrollen.
Pi-hole: Die Einstellungen für das Conditional Forwarding finden Sie in den „Settings“ unter dem Reiter „DNS“, wenn Sie nach ganz unten scrollen.

Update-Strategien

Wie aktualisiere ich die DNS-Filtersoftware am besten und wie komme ich an neue Filterlisten?

Für die regulären Installationen gilt: Um neue Filterlisten brauchen Sie sich nicht zu kümmern. Alle konfigurierten Filterlisten aktualisieren Pi-hole und AdGuard Home automatisch. Bei Pi-hole erledigt das wöchentlich ein eingerichteter cron-Job, den man anpassen kann. AdGuard Home kümmert sich selbst täglich um Updates und erlaubt andere Vorgaben in seiner Weboberfläche.

Updates der Software selbst sind allerdings eine manuelle Aufgabe: Die Filter prüfen nur, ob Updates verfügbar sind, und zeigen dann Hinweise in der Weboberfläche an. Im Fall von Pi-hole genügt dann auf der Kommandozeile ein Aufruf pihole -up, um die Software zu aktualisieren. Bei AdGuard Home muss man die Sofware herunterladen und die Programmdatei austauschen, in der alles steckt. Hinweise zu Docker finden Sie weiter oben unter „Vorteile durch Docker“.

Filterlisten

Welche Filterlisten sollte ich unbedingt verwenden?

Das hängt vor allem davon ab, was Sie sich versprechen. Die nach dem Einrichten aktiven Blocklists sorgen recht zuverlässig dafür, dass Sie deutlich weniger Werbung zu sehen bekommen. Wenn Sie Tracker abschütteln wollen, können Sie passende Listen ergänzen. Zur Erhöhung der Sicherheit bieten sich zudem Listen an, die gängige Malware-Sites blockieren – letztere bringen ein Extra an Sicherheit, ersetzen aber keine Virenschutzsoftware.

Folgen Sie ansonsten den Empfehlungen des Filterherstellers. Eine umfangreiche Sammlung von Community-gepflegten Listen für Pi-hole finden Sie auf The Firebog (siehe ct.de/ysm9). Nach einem manuellen Hinzufügen müssen Sie Pi-hole auffordern, die neuen Listen zu aktivieren (unter Tools finden Sie dazu Update Gravity). AdGuard bietet über die Listen hinaus auf der Seite für „Allgemeine Einstellungen“ zusätzliche Sicherheitsfunktionen: Sperrlisten für unsichere Domains, Kindersicherung und sicheres Suchen.

AdGuard Home erleichtert das Hinzufügen von weiteren vorbereiteten Sperrlisten.
AdGuard Home erleichtert das Hinzufügen von weiteren vorbereiteten Sperrlisten.
Pi-hole: Beim Ergänzen weiterer Blocklists frisst das Eingabefeld gleich mehrere URLs mit einem Kommentar.
Pi-hole: Beim Ergänzen weiterer Blocklists frisst das Eingabefeld gleich mehrere URLs mit einem Kommentar.

VPN-Tunnel stört

Mein DNS-Filter funktioniert nicht, wenn ich auf meinem PC eine VPN-Verbindung aufbaue.

Viele VPN-Konfigurationen bringen eine an den Tunnel angepasste DNS-Konfiguration mit und aktivieren diese. Das heißt, der Client befragt nicht mehr Ihren Filter, sondern den in der VPN-Konfiguration hinterlegten DNS-Server. Es ist durchaus denkbar, dass sich die Verwalter des VPN-Zugangs dabei etwas gedacht haben. Im Zweifel möchten diese aus Sicherheitsgründen erzwingen, dass der von ihnen betriebene DNS-Servers genutzt wird.

Auch wenn es nicht um Sicherheit geht: Gerade bei Firmen-VPNs löst der interne DNS-Server Namen interner Dienste häufig so auf, dass Sie diese nur über das VPN, nicht aber im Internet erreichen können. Wenn Sie den DNS-Server verbiegen dürfen, können Sie die IP-Adresse Ihres Filters in die VPN-Konfiguration setzen und die Adressen interner Dienste händisch Ihrem DNS-Filter hinzufügen (siehe „Lokale Namen auflösen“). (ps@ct.de)

Erwähnte Downloads und Websites: ct.de/ysm9

Kommentare lesen (1 Beitrag)