Unbound DNS
Unbound ist ein validierender, rekursiver, cachender DNS-Resolver. Er ist auf Schnelligkeit und Schlankheit ausgelegt und enthält moderne Funktionen, die auf offenen Standards basieren.
Dies ist unser Standard-DNS-Dienst, der standardmäßig aktiviert ist.
Allgemeine Einstellungen
Im Folgenden finden Sie die wichtigsten Einstellungen aus dem Menüabschnitt Allgemein.
Aktivieren | Aktivieren Sie unseren DNS-Resolver |
Hörender Port | Port zum Abhören, wenn leer, wird der Standard (53) verwendet. |
Netzwerkschnittstellen | Schnittstellen-IP-Adressen, die für die Beantwortung von Anfragen von Clients verwendet werden. Wenn eine Schnittstelle sowohl IPv4- als auch IPv6-IPs hat, werden beide verwendet. Anfragen an andere, nicht ausgewählte Schnittstellen-IPs werden verworfen. Das Standardverhalten ist die Beantwortung von Anfragen an jede verfügbare IPv4- und IPv6-Adresse. |
DNSSEC | Aktivieren Sie DNSSEC, um digitale Signaturen zu verwenden, um Ergebnisse von Upstream-Servern zu validieren und Cache Poisoning zu verhindern. |
DNS64 | Aktivieren Sie DNS64, damit nur IPv6-Clients nur IPv4-Server erreichen können. Wenn aktiviert, synthetisiert Unbound AAAA-Einträge für Domänen, die nur A-Einträge haben. DNS64 erfordert NAT64, z. B. das Tayga-Plugin oder einen NAT64-Dienst eines Drittanbieters, um nützlich zu sein. Das DNS64-Präfix muss mit dem von NAT64 verwendeten IPv6-Präfix übereinstimmen. |
DHCP Registrierung | Nur IPv4 Wenn diese Option gesetzt ist, werden Rechner, die bei der Anforderung eines DHCP-Lease ihren Hostnamen angeben, in Unbound registriert, so dass ihr Name aufgelöst werden kann. Die Quelle für diese Daten ist client-hostname in der Datei dhcpd.leases |
DHCP-Domainüberschreibung | Wenn die obigen Registrierungen nicht denselben Domainnamen verwenden sollen, der auf dieser Firewall konfiguriert ist, können Sie hier einen anderen angeben. |
Statische DHCP-Zuweisungen | Registrieren Sie statische dhcpd-Einträge, damit Clients sie auflösen können. Unterstützt auf IPv4 und IPv6. |
IPv6 Link-local | Registrieren Sie lokale Link-Adressen für IPv6. |
TXT-Kommentarunterstützung | Registerbeschreibungen als Kommentare für dhcp static host-Einträge. |
DNS Abfrage-Weiterleitung | Weiterleitung von Anfragen an konfigurierte Nameserver in System ‣ Einstellungen ‣ General : DNS Server |
Localer Zonentyp | Der lokale Zonentyp, der für die Systemdomäne verwendet wird. Typbeschreibungen finden Sie unter „local-zone:“ in der Handbuchseite unbound.conf(5). Die Vorgabe ist ‚transparent‘. |
Seien Sie vorsichtig, wenn Sie „DNS Query Forwarding“ in Kombination mit DNSSEC aktivieren. Wenn der Upstream-Server DNSSEC nicht unterstützt, werden seine Antworten als unsicher angesehen, da keine DNSSEC-Validierung durchgeführt werden konnte.
Damit der Client ungebunden abfragen kann, muss in Dienste ‣ Unbound DNS ‣ Zugriffslisten eine ACL zugewiesen sein. Die konfigurierten Schnittstellen sollten automatisch eine ACL erhalten. Wenn sich die Client-Adresse in keinem der vordefinierten Netzwerke befindet, fügen Sie bitte manuell eine hinzu.
Überbrückung
Im Abschnitt „Overrides“ können Sie separate Hostdefinitionseinträge erstellen und angeben, ob Anfragen für eine bestimmte Domain an einen vordefinierten Server weitergeleitet werden sollen.
Host-Übersteuerungseinstellungen
Host | Name des Hosts ohne den Domainanteil. Verwenden Sie „*“ für einen Wildcard-Eintrag. |
Domain | Domain des Hosts (z. B. example.com) |
Typ | Datensatztyp, A oder AAA (IPv4- oder IPv6-Adresse), MX, um einen Mail-Austausch zu definieren |
IP | Adresse des Hosts |
Beschreibung | Vom Benutzer lesbare Beschreibung, nur zu Informationszwecken |
Aliase | Kopien der obigen Daten für verschiedene Hosts |
Domänenüberschreibungseinstellungen
Domain | Zu überschreibende Domäne |
IP-Adresse | IP-Adresse des authoritativen DNS-Servers für diese Domain |
Beschreibung | Vom Benutzer lesbare Beschreibung, nur zu Informationszwecken |
Erweitert
Obwohl die Standardeinstellungen für die meisten Setups angemessen sein sollten, benötigen einige mehr Tuning oder erfordern die Einstellung bestimmter Optionen.
Identität verbergen | Falls aktiviert, werden Abfragen für id.server und hostname.bind verweigert. |
Version verstecken | Wenn aktiviert, werden version.server- und version.bind-Abfragen abgelehnt. |
Unterstützung des Vorab-Abrufs | Nachrichtenzwischenspeicherelemente werden abgerufen bevor sie ablaufen, damit der Zwischenspeicher aktuell gehalten wird. Wenn diese Option aktiviert ist, kann das dazu führen, dass der DNS-Datenverkehr um circa 10% ansteigt, jedoch werden häufig angefragte Einträge nie im Zwischenspeicher ablaufen. |
Unterstützung des Vorab-Abrufs von DNS-Schlüsseln | DNSKEYs werden früher im Validierungsprozess abgerufen, wenn ein Delegationsunterzeichner angetroffen wird. Dies trägt dazu bei, die Latenzzeit von Anfragen zu verringern, beansprucht aber etwas mehr CPU. |
Härte DNSSEC-Daten | DNSSEC-Daten sind für vertrauensverankerte Zonen erforderlich. Falls diese Daten fehlen, wird die Zone fehlerhaft. Falls dies deaktiviert ist und keine DNSSEC-Daten empfangen werden, wird die Zone als unsicher markiert. |
Sende veraltete Antworten | Beantworte Anfragen mit veralteten Ergebnissen aus dem Cache mit einer TTL von 0 ohne auf die Fertigstellung der Auflösung zu warten. |
Nachrichtenzwischenspeichergröße | Größe des Nachrichtenzwischenspeichers. Der Nachrichtenzwischenspeicher enthält DNS-rcodes und Prüfergebnisse. Der RRSet-Zwischenspeicher wird automatisch auf das Doppelte dieser Anzahl gesetzt. Die Standardgröße ist 4 Megabyte. |
Ausgehende TCP-Puffer | Die Anzahl an ausgehenden TCP-Puffern, die pro Thread angefordert werden. Der Standardwert ist 10. Falls 0 ausgewählt wird, werden keine TCP-Anfragen an authoritative Server gesendet. |
Eingehende TCP-Puffer | Die Anzahl an eingehenden TCP-Puffern die pro Thread angelegt werden. Der Standardwert ist 10. Falls 0 ausgewählt wird, werden keine Anfragen von Clients akzeptiert. |
Anzahl an Abfragen pro Thread | Die Anzahl an Anfragen, die jeder Thread gleichzeitig bearbeitet. Falls mehr Anfragen, die bearbeitet werden sollen, ankommen und keine Abfragen mehr angestoßen werden können, werden diese Anfragen verworfen. |
Anstoß-Gültigkeitsdauer | Diese Gültigkeitsdauer wird verwendet, wenn der Server sehr beschäftigt ist. Dies schützt gegen Denial of Service durch langsame Abfragen oder hohe Abfrageraten. Der Standardwert ist 200 Millisekunden. |
Maximale TTL für RR-Datensätze und Nachrichten | Konfigurieren Sie eine maximale Lebensdauer von RR-Sets und Nachrichten im Zwischenspeicher. Der Standardwert ist 86400 Sekunden (1 Tag). Wenn die interne Lebensdauer abgelaufen ist, werden die zwischengespeicherten Daten ungültig. Dies kann konfiguriert werden, damit der Resolver dazu gezwungen wird, die Daten öfter abzufragen und einer (sehr hohen) Lebensdauer nicht zu vertrauen. |
Minimale TTL für RR-Datensätze und Nachrichten | Konfigurieren Sie die minimale Lebensdauer für RR-Sets und Nachrichten im Zwischenspeicher. Der Standardwert ist 0 Sekunden. Falls der minimale Wert zum Zug kommt, werden die Daten länger zwischengespeichert als es der Domainbetreiber vorsieht und daher weniger Abfragen gesendet. Wer Wert 0 stellt sicher, dass die Daten Zwischenspeicher so sind, wie sie der Domaininhaber vorgesehen hat. Hohe Werte können zu Problemen führen, da die Daten im Zwischenspeicher nicht notwendigerweise mit den aktuellen Daten übereinstimmen. |
TTL für Hostzwischenspeicherungseinträge | Lebensdauer von Einträgen im Hostzwischenspeicher. Der Hostzwischenspeicher enthält die Umlaufzeitinformation und Information zum EDNS-Unterstützung. Der Standardwert ist 15 Minuten. |
Anzahl an Hosts zur Zwischenspeicherung | Anzahl der Hosts, für die Informationen zwischengespeichert werden. Standard 10000. |
Grenzwert ungewollter Antworten | Falls aktiviert, wird eine Gesamtanzahl an ungewollter Antworten in jedem Thread verfolgt. Wenn ein Grenzwert überschritten wird, wird eine Abwehraktion ausgelöst und eine Warnung in die Protokolldatei geschrieben. Die Abwehraktion bereinigt die RRSet und Nachrichtenzwischenspeicher, um die Vergiftung zu beseitigen. Standardmäßig ist diese Option deaktiviert, aber falls sie aktiviert wird, wird ein Wert von 10 Millionen empfohlen. |
Protokolldetaillierungsgrad | Wählen Sie die Ausführlichkeit des Protokolls. Stufe 0 bedeutet keine Ausführlichkeit, nur Fehler. Stufe 1 gibt Betriebsinformationen. Stufe 2 liefert detaillierte Betriebsinformationen. Ebene 3 gibt Informationen auf Abfrageebene, Ausgabe pro Abfrage. Ebene 4 liefert Informationen auf Algorithmenebene. Ebene 5 protokolliert die Client-Identifikation für Cache-Fehlversuche. Standard ist Ebene 1. |
Zugriffslisten
Zugriffslisten definieren, welche Clients unseren dns-Resolver abfragen dürfen. Datensätze für die zugewiesenen Schnittstellen werden automatisch erstellt und in der Übersicht angezeigt. Sie können auch eigene Richtlinien definieren, die eine Aktion auf vordefinierte Netzwerke anwenden.
Die Aktion kann wie in der folgenden Liste definiert sein. Es wird die spezifischste Netzblockübereinstimmung verwendet, wenn keine vorhanden ist, wird match deny verwendet. Die Reihenfolge der Zugriffskontrollanweisungen spielt daher keine Rolle.
Aktionen
Ablehnen | Diese Aktion stoppt Anfragen von Hosts innerhalb der definierten Netzwerke. |
Verweigern | Diese Aktion stoppt auch Anfragen von Hosts innerhalb der definierten Netzwerke, sendet aber eine DNS rcode REFUSED-Fehlermeldung zurück an den Client. |
Erlauben | Diese Aktion erlaubt Abfragen von Hosts innerhalb der definierten Netzwerke. |
Snoop zulassen | Diese Aktion erlaubt rekursive und nicht rekursive Zugriffe von Hosts innerhalb der definierten Netzwerke. Wird für Cache-Snooping verwendet und sollte idealerweise nur für Ihren administrativen Host konfiguriert werden. |
Verweigern Nicht-lokal | Erlaubt nur autoritative lokale Datenabfragen von Hosts innerhalb der definierten Netzwerke. Nachrichten, die nicht zugelassen sind, werden verworfen. |
Abfälle Nicht lokal | Erlaubt nur autoritative Local-Data-Anfragen von Hosts innerhalb der definierten Netzwerke. Sendet eine DNS rcode REFUSED-Fehlermeldung zurück an den Client für Nachrichten, die nicht erlaubt sind. |
Schwarze Liste
Aktivieren Sie das integrierte dns-Blacklisting mit einer der vordefinierten Quellen oder benutzerdefinierten Speicherorten.
Aktivieren | Blacklists einschalten |
Typ der DNSBL | Vordefinierte externe Quellen |
URLs von Blacklists | Zusätzlicher http[s]-Ort zum Herunterladen von Blacklists, es werden nur reine Textdateien mit einer Liste von fqdn’s (z. B. |
Domains auf die Whitelist setzen | Wenn ein Eintrag in der Blacklist ein in dieser Liste definiertes Muster enthält, wird er aus den Ergebnissen ausgelassen. z.B. |
Wenn einer der DNSBL-Typen verwendet wird, wird der Inhalt direkt aus der Originalquelle geholt. Um ein besseres Verständnis für die Quelle der Listen zu bekommen, haben wir die folgende Liste mit Verweisen auf die Listenbetreuer zusammengestellt.
Vordefinierte Quellen
AdAway | |
AdGuard-Liste | |
Blockliste.site | |
EasyList | |
Easyprivacy | |
noCoin-Liste | |
PornTop1M-Liste | |
Einfache Werbeliste | |
Einfache Tracker-Liste | https://s3.amazonaws.com/lists.disconnect.me/simple_tracking.txt |
StevenBlack/Hosts | https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts |
WindowsSpyBlocker | |
YoYo-Liste |
Um die Listen in bestimmten Zeitabständen automatisch zu aktualisieren, müssen Sie einen Cron-Task hinzufügen. Gehen Sie dazu auf System ‣ Einstellungen ‣ Cron und erstellen Sie einen neuen Task für den Befehl „Download Unbound DNSBLs and restart“.
Normalerweise ist einmal am Tag ein ausreichendes Intervall für diese Art von Aufgaben.
Statistiken
Die Statistikseite bietet einige Einblicke in den laufenden Server, z. B. die Anzahl der ausgeführten Abfragen, die Cache-Nutzung und die Betriebszeit.
Erweiterte Konfigurationen
Einige Installationen erfordern Konfigurationseinstellungen, die nicht über die Benutzeroberfläche zugänglich sind. Um diese zu unterstützen, können einzelne Konfigurationsdateien mit der Erweiterung .conf
in das Verzeichnis /var/unbound/etc
gelegt werden. Diese Dateien werden automatisch von der vom UI generierten Konfiguration einbezogen. Es können mehrere Konfigurationsdateien dort abgelegt werden. Beachten Sie aber, dass
-
Da nicht vorhergesagt werden kann, in welcher Klausel die Konfiguration gerade stattfindet, müssen Sie der Konfiguration die gewünschte Klausel voranstellen. Für das Konzept der „Klausel“ siehe die Dokumentation
unbound.conf(5)
. -
Die Wildcard-Include-Verarbeitung in unbound basiert auf
glob(7)
. Die Reihenfolge, in der die Dateien eingeschlossen werden, ist also in aufsteigender ASCII-Reihenfolge. -
Namenskollisionen mit Plugins, die diesen Erweiterungspunkt verwenden, z. B.
unbound-plus
, können auftreten. Achten Sie daher darauf, einen eindeutigen Dateinamen zu verwenden. -
Es ist eine gute Idee, die vollständige Konfiguration zu überprüfen, indem Sie das Dienstprogramm unbound-checkconf ausführen:
PYTHON# check if configuration is valid unbound-checkconf /var/unbound/unbound.conf
Dadurch werden Fehler gemeldet, die den Start von unbound verhindern.
Dies ist eine Beispielkonfigurationsdatei zum Hinzufügen einer Option in der Server-Klausel:
server:
private-domain: xip.io
Abschließend ist zu beachten, dass auf speicherbasierten Systemen /var
flüchtig ist und jede Datei, die darin oder darunter liegt, einen Neustart nicht überlebt. Als Lösung kann das Template System verwendet werden, um diese Dateien automatisch zu generieren.
Um den gleichen Effekt zu erzielen, wie wenn Sie die Datei aus dem obigen Beispiel direkt in /var/unbound/etc
platzieren, führen Sie folgende Schritte aus:
-
Erstellen Sie eine
+TARGETS
-Datei in/usr/local/opnsense/service/templates/sampleuser/Unbound
:PYTHONsampleuser_additional_options.conf:/var/unbound/etc/sampleuser_additional_options.conf
-
Legen Sie die Vorlagendatei als
sampleuser_additional_options.conf
in das gleiche Verzeichnis:PYTHONserver: private-domain: xip.io
-
Testen Sie die Vorlagengenerierung, indem Sie den folgenden Befehl eingeben:
PYTHON# generate template configctl template reload sampleuser/Unbound
-
Prüfen Sie die Ausgabe im Zielverzeichnis:
PYTHON# show generated file cat /var/unbound/etc/sampleuser_additional_options.conf # check if configuration is valid unbound-checkconf /var/unbound/unbound.conf
Es liegt in der alleinigen Verantwortung des Administrators, der eine Datei im Erweiterungsverzeichnis ablegt, sicherzustellen, dass die Konfiguration gültig ist.
Diese Methode ersetzt die Einstellungen Benutzerdefinierte Optionen
auf der Seite Allgemein der Unbound-Konfiguration, die bereits als „in Zukunft zu entfernen“ markiert war.