Software-update: Unbound 1.20.0

Unbound logo (79 pix) Als je een dns-look-up uitvoert, begint een recursor in eerste instantie met het stellen van de look-upvraag aan een dns-rootserver. Deze kan dan doorverwijzen naar andere servers, vanaf waar weer doorverwezen kan worden naar andere servers enzovoort, totdat uiteindelijk een server is bereikt die het antwoord weet of weet dat de look-up niet mogelijk is. Van dit laatste kan sprake zijn als de naam niet bestaat of de servers niet reageren. Het proces van het langslopen van verschillende authoritative servers heet recursie. Unbound is een dns-recursor met ondersteuning voor moderne standaarden, zoals Query Name Minimisation, Aggressive Use of Dnssec-Validated Cache en authority zones. Versie 1.20 is uitgebracht en hierin zijn de volgende veranderingen en verbeteringen aangebracht:

Features
  • The config for discard-timeout, wait-limit, wait-limit-cookie, wait-limit-netblock and wait-limit-cookie-netblock was added, for the fix to the DNSBomb issue.
  • Merge #1027: Introduce 'cache-min-negative-ttl' option.
  • Merge #1043 from xiaoxiaoafeifei: Add loongarch support; updates config.guess(2024-01-01) and config.sub(2024-01-01), verified with upstream.
  • Implement cachedb-check-when-serve-expired: yes option, default is enabled. When serve expired is enabled with cachedb, it first checks cachedb before serving the expired response.
  • Fix #876: [FR] can unbound-checkconf be silenced when configuration is valid?
Bug Fixes
  • Fix for the DNSBomb vulnerability CVE-2024-33655. Thanks to Xiang Li from the Network and Information Security Lab of Tsinghua University for reporting it.
  • Update doc/unbound.doxygen with 'doxygen -u'. Fixes option deprecation warnings and updates with newer defaults.
  • Remove unused portion from iter_dname_ttl unit test.
  • Fix validator classification of qtype DNAME for positive and redirection answers, and fix validator signature routine for dealing with the synthesized CNAME for a DNAME without previously encountering it and also for when the qtype is DNAME.
  • Fix qname minimisation for reply with a DNAME for qtype CNAME that answers it.
  • Fix doc test so it ignores but outputs unsupported doxygen options.
  • Fix #1021 Inconsistent Behavior with Changing rpz-cname-override and doing a unbound-control reload.
  • Merge #1028: Clearer documentation for tcp-idle-timeout and edns-tcp-keepalive-timeout.
  • Fix #1029: rpz trigger clientip and action rpz-passthru not working as expected.
  • Fix rpz that the rpz override is taken in case of clientip triggers. Fix that the clientip passthru action is logged. Fix that the clientip localdata action is logged. Fix rpz override action cname for the clientip trigger.
  • Fix to unify codepath for local alias for rpz cname action override.
  • Fix rpz for cname override action after nsdname and nsip triggers.
  • Fix that addrinfo is not kept around but copied and freed, so that log-destaddr uses a copy of the information, much like NSD does.
  • Merge #1030: Persist the openssl and expat directories for repeated Windows builds.
  • Fix that rpz CNAME content is limited to the max number of cnames.
  • Fix rpz, it follows iterator CNAMEs for nsip and nsdname and sets the reply query_info values, that is better for debug logging.
  • Fix rpz that copies the cname override completely to the temp region, so there are no references to the rpz region.
  • Add rpz unit test for nsip action override.
  • Fix rpz for qtype CNAME after nameserver trigger.
  • Fix rpz so that rpz CNAME can apply after rpz CNAME. And fix that clientip and nsip can give a CNAME.
  • Fix localdata and rpz localdata to match CNAME only if no direct type match is available.
  • Merge #831 from Pierre4012: Improve Windows NSIS installer script (setup.nsi).
  • For #831: Format text, use exclamation icon and explicit label names.
  • Fix name of unit test for subnet cache response.
  • Fix #1032: The size of subnet_msg_cache calculation mistake cause memory usage increased beyond expectations.
  • Fix for #1032, add safeguard to make table space positive.
  • Fix comment in lruhash space function.
  • Fix to add unit test for lruhash space that exercises the routines.
  • Fix that when the server truncates the pidfile, it does not follow symbolic links.
  • Fix that the server does not chown the pidfile.
  • Fix #1034: DoT forward-zone via unbound-control.
  • Fix for crypto related failures to have a better error string.
  • Fix #1035: Potential Bug while parsing port from the "stub-host" string; also affected forward-zones and remote-control host directives.
  • Fix #369: dnstap showing extra responses; for client responses right from the cache when replying with expired data or prefetching.
  • Fix #1040: fix heap-buffer-overflow issue in function cfg_mark_ports of file util/config_file.c.
  • For #1040: adjust error text and disallow negative ports in other parts of cfg_mark_ports.
  • Fix comment syntax for view function views_find_view.
  • Fix #595: unbound-anchor cannot deal with full disk; it will now first write out to a temp file before replacing the original one, like Unbound already does for auto-trust-anchor-file.
  • Fixup compile without cachedb.
  • Add test for cachedb serve expired.
  • Extended test for cachedb serve expired.
  • Fix makefile dependencies for fake_event.c.
  • Fix cachedb for serve-expired with serve-expired-reply-ttl.
  • Fix to not reply serve expired unless enabled for cachedb.
  • Fix cachedb for serve-expired with serve-expired-client-timeout.
  • Fixup unit test for cachedb server expired client timeout with a check if response if from upstream or from cachedb.
  • Fixup cachedb to not refetch when serve-expired-client-timeout is used.
  • Merge #1049 from Petr Menšík: Py_NoSiteFlag is not needed since Python 3.8
  • Fix #1048: Update ax_pkg_swig.m4 and ax_pthread.m4.
  • Fix configure, autoconf for #1048.
  • Add checklock feature verbose_locking to trace locks and unlocks.
  • Fix edns subnet to sort rrset references when storing messages in the cache. This fixes a race condition in the rrset locks.
  • Merge #1053: Remove child delegations from cache when grandchild delegations are returned from parent.
  • Fix ci workflow for macos for moved install locations.
  • Fix configure flto check error, by finding grep for it.
  • Merge #1041: Stub and Forward unshare. This has one structure for them and fixes #1038: fatal error: Could not initialize thread / error: reading root hints.
  • Fix to disable fragmentation on systems with IP_DONTFRAG, with a nonzero value for the socket option argument.
  • Fix doc unit test for out of directory build.
  • Fix cachedb with serve-expired-client-timeout disabled. The edns subnet module deletes global cache and cachedb cache when it stores a result, and serve-expired is enabled, so that the global reply, that is older than the ecs reply, does not return after the ecs reply expires.
  • Add unit tests for cachedb and subnet cache expired data.
  • Man page entry for unbound-checkconf -q.
  • Cleanup unnecessary strdup calls for EDE strings.
  • Fix doxygen comment for errinf_to_str_bogus.

Unbound

Versienummer 1.20.0
Releasestatus Final
Besturingssystemen Linux, BSD, macOS, Solaris, Windows 10, Windows Server 2016, Windows Server 2019, Windows 11
Website Unbound
Download https://nlnetlabs.nl/projects/unbound/download/
Licentietype Voorwaarden (GNU/BSD/etc.)

Door Bart van Klaveren

Downloads en Best Buy Guide

08-05-2024 • 15:19

20

Bron: Unbound

Update-historie

17-07 Unbound 1.23.1 3
24-04 Unbound 1.23.0 24
10-'24 Unbound 1.22.0 25
08-'24 Unbound 1.21.0 4
05-'24 Unbound 1.20.0 20
03-'24 Unbound 1.19.3 3
03-'24 Unbound 1.19.2 4
02-'24 Unbound 1.19.1 4
11-'23 Unbound 1.19.0 12
08-'23 Unbound 1.18.0 0
Meer historie

Reacties (20)

20
20
18
0
0
0
Wijzig sortering
Jammer dat Raspberry Pi OS vaak zo achter loopt. Deze zit nog op versie 17.1
Ik gebruik docker hiervoor (https://github.com/klutchell/unbound-docker). Deze wordt meestal vrij snel geüpdatet.
Klopt. Deze werd een paar uur na de release al naar 1.20.0 gebracht. 😇
Inderdaad. Zeker als je deze lijst van bugfixes ziet en weet dat er dus nog een aantal versies meer zijn is het eigenlijk schrikbarend hoe ver de Raspi distro achterloopt ;(
Als je een beetje avontuurlijk bent zou je unbound uit Debian Unstable kunnen halen. Hier zul je wel wat aanpassingen aan je apt source preferences moeten doen.

Misschien simpeler is het gebruik van een Docker image met een recente versie.
Je kan unbound ook compilen van de source. Ik doe dit sinds een aantal versies omdat de repo altijd veel achterloopt. Als het eenmaal loopt dan is een upgrade heel simpel.

Instructies vind je hier. Wel eerste de versie die je nu hebt helemaal verwijderen.

https://discourse.pi-hole...k-with-dns-over-tls/19017

[Reactie gewijzigd door Pizzal520 op 22 juli 2024 16:39]

Kan ik met Unbound ook bepaalde queries onderscheppen?

Bijv. A-record: iets => 192.168.x.x?
Lijkt me handig om dit zo in te richten om al mijn web-verkeer direct intern naar mijn reverse-proxy te routen, zonder dat ik met NAT reflection hoef te kloten (wat overigens heel traag is op mijn router).
Hiervoor kan je local-data (en/of local-zone) in de Unbound config gebruiken: https://unbound.docs.nlne...l#unbound-conf-local-data
Thanks! Precies wat ik zocht
local-data kan inderdaad. Alternatief is gebruik maken van RPZ. Dat is een gestandaardiseerd formaat dat door meerdere DNS servers wordt ondersteund.

https://unbound.docs.nlne...topics/filtering/rpz.html
Pihole kan dat ook.
Grap is dan weer dat PiHole adviseert om Unbound te gebruiken als upstream DNS server: https://docs.pi-hole.net/guides/dns/unbound/

Maar blijft dan uiteraard wel makkelijker om local records in PiHole te zetten. Maar anderzijds: je kunt ook "blocklists" in Unbound toevoegen, dan heb je helemaal geen PiHole / Adguard Home / Blocky meer nodig. Heb dat zelf nu verschillende maanden draaien. De bekende "Steven Black" blocklist download ik van hier: https://scripttiger.github.io/alts/ periodiek (/systemd timer die dat automatisch doet, incl config reload bij unbound). Scheelt weer het draaien van extra software.
Bedoel je een normale redirection regel? Want dat kan inderdaad, je kan voor ieder domein die je maar wilt een A of AAAA record overwrite toevoegen die je dan zal gebruiken.
Iemand een idee waarom ik deze software zou willen?
Vooral privacy: een DNS server weet welke sites jij opvraagt, of het nu je provider of andere dienst is. Met unbound vraag je zelf ieder vanaf top level domain de gewenste ip adressen.
Unencrypted dus kan je provider/tap nog steeds meelezen of kan dat verkeer ook encrypted?

Ik vraag me af wat "veiliger" is, unbound gebruiken en vanaf root server opvragen of DOH/DOT van b.v. Mullvad gebruiken (wat overigens ook weer via unbound kan)?

[edit: voorbeeld unbound config voor DOT requests bij Mullvad]

unbound config:
include-toplevel: "/etc/unbound/unbound.conf.d/*.conf"

server:
tls-cert-bundle: "/etc/ssl/certs/ca-certificates.crt"

forward-zone:
name: "."
forward-tls-upstream: yes # use DNS-over-TLS forwarder
forward-first: no # do NOT send direct
forward-addr: 194.242.2.2@853#dns.mullvad.net

[Reactie gewijzigd door xxs op 22 juli 2024 16:39]

Terechte vraag.

Ik zie het zo: bij doh of dot ziet die ene dns provider al je queries, bij het contacteren van de authoritative dns servers is dat niet zo maar zijn inderdaad je queries in principe wel zichtbaar voor je provider. Echter, zelfs als je doh of dot gebruikt, ziet je provider wel nog steeds welke ip adressen je bezoekt, dus ik vind dat dat een beetje een vals gevoel van veiligheid.
Maar beide standpunten zijn dus te verdedigen. Mijn advies: doe waar jij je best bij voelt! En idd, unbound kan beiden...
Natuurlijk kan je ISP nog steeds de bezochte IP adressen zien dus waarom dan unbound gebruiken?
Wat blijft er dan staan m.b.t. het privacy argument?

Linksom of rechtsom komt het er op neer dat je ISP (zonder gebruik van VPN) altijd de bezochte ip adressen kan zien wat niet per se een volledige dns query is.

Enfin, ik voel me goed bij een VPN en encrypted queries bij een ander dan mijn ISP of VPN provider.

Bedankt in elk geval voor het delen van jouw visie.
Weet iemand welk dashboard wordt weergegeven in de screenshot? Ziet er uit als Grafana. Thanks!
Is inderdaad Grafana, heb dat ooit eens opgezocht.

Op dit item kan niet meer gereageerd worden.