Software-update: Unbound 1.15.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. De ontwikkelaars hebben versie 1.15.0 uitgebracht en daarin zijn de volgende veranderingen en verbeteringen aangebracht:

New Features:
  • Fix #596: unset the RA bit when a query is blocked by an unbound RPZ nxdomain reply. The option rpz-signal-nxdomain-ra allows to signal that a domain is externally blocked to clients when it is blocked with NXDOMAIN by unsetting RA.
  • Add rpz: for-downstream: yesno option, where the RPZ zone is authoritatively answered for, so the RPZ zone contents can be checked with DNS queries directed at the RPZ zone.
  • Merge PR #616: Update ratelimit logic. It also introduces ratelimit-backoff and ip-ratelimit-backoff configuration options.
  • Change aggressive-nsec default to yes.
Bug Fixes:
  • Fix compile warning for if_nametoindex on windows 64bit.
  • Merge PR #581 from fobser: Fix -Wmissing-prototypes and -Wshadow warnings in rpz.
  • Fix validator debug output about DS support, print correct algorithm.
  • Add code similar to fix for ldns for tab between strings, for consistency, the test case was not broken.
  • Allow local-data for classes other than IN to inherit a configured local-zone's type if possible, instead of defaulting to type transparent as per the implicit rule.
  • Fix to pick up other class local zone information before unlock.
  • Add missing configure flags for optional features in the documentation.
  • Fix Unbound capitalization in the documentation.
  • Fix #591: Unbound-anchor manpage links to non-existent license file.
  • contrib/aaaa-filter-iterator.patch file renewed diff content to apply cleanly to the current coderepo for the current code version.
  • Fix to add test for rpz-signal-nxdomain-ra.
  • Fix #596: only unset RA when NXDOMAIN is signalled.
  • Fix that RPZ does not set RD flag on replies, it should be copied from the query.
  • Fix for #596: fix that rpz return message is returned and not just the rcode from the iterator return path. This fixes signal unset RA after a CNAME.
  • Fix unit tests for rpz now that the AA flag returns successfully from the iterator loop.
  • Fix for #596: add unit test for nsdname trigger and signal unset RA.
  • Fix for #596: add unit test for nsip trigger and signal unset RA.
  • Fix #598: Fix unbound-checkconf fatal error: module conf 'respip dns64 validator iterator' is not known to work.
  • Fix for #596: Fix rpz-signal-nxdomain-ra to work for clientip triggered operation.
  • Merge #600 from pemensik: Change file mode before changing file owner.
  • Fix prematurely terminated TCP queries when a reply has the same ID.
  • For #602: Allow the module-config "subnetcache validator cachedb iterator".
  • Fix EDNS to upstream where the same option could be attached more than once.
  • Add a region to serviced_query for allocations.
  • For dnstap, do not wakeupnow right there. Instead zero the timer to force the wakeup callback asap.
  • Fix #610: Undefine-shift in sldns_str2wire_hip_buf.
  • Fix #588: Unbound 1.13.2 crashes due to p->pc is NULL in serviced_udp_callback.
  • Merge PR #612: TCP race condition.
  • Test for NSID in SERVFAIL response due to DNSSEC bogus.
  • Fix #599: [FR] RFC 9156 (obsoletes RFC 7816), by noting the new RFC document.
  • Fix tls-* and ssl-* documented alternate syntax to also be available through remote-control and unbound-checkconf.
  • Better cleanup on failed DoT/DoH listening socket creation.
  • iana portlist update.
  • Fix review comment for use-after-free when failing to send UDP out.
  • Merge PR #603 from fobser: Use OpenSSL 1.1 API to access DSA and RSA internals.
  • Merge PR #532 from Shchelk: Fix: buffer overflow bug.
  • Merge PR #617: Update stub/forward-host notation to accept port and tls-auth-name.
  • Update stream_ssl.tdir test to also use the new forward-host notation.
  • Fix header comment for doxygen for authextstrtoaddr.
  • please clang analyzer for loop in test code.
  • Fix docker splint test to use more portable uname.
  • Update contrib/aaaa-filter-iterator.patch with diff for current software version.
  • Fix for #611: Integer overflow in sldns_wire2str_pkt_scan.

Unbound

Versienummer 1.15.0
Releasestatus Final
Besturingssystemen Windows 7, Linux, BSD, macOS, Solaris, UNIX, Windows Server 2008, Windows Server 2012, Windows 8, 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

10-02-2022 • 15:38

9

Submitter: jpgview

Bron: Unbound

Update-historie

Reacties (9)

9
9
6
2
0
3
Wijzig sortering
Recent gestart met het gebruik van unbound response policy zones (RPZ). Werkt prima, zones die extern worden beheerd, worden door unbound automatisch geupdate zonder enige interventie.
Met deze versie (RPZ bestaat al sinds v1.10.0) kan nu ook pihole een door unbound RPZ beantwoorde query herkennen. pihole heeft daarvoor het status type 8, tot voor kort alleen voor het indentificeren van quad9 blocks, nu dus ook voor unbound RPZ blocks.

Meer weten, documentje gemaakt met info over urlhaus rpz (alle 5 minuten een update) en mijn DoH lijst in rpz formaat (dagelijkse update) hier (PDF).
Jammer dat de repositories die door Raspian gebruikt worden niet bijgewerkt worden: ik zit nog op versie 1.9.0.
En bij handmatig updaten krijg ik een foutmelding over ssl (ondanks dat OpenSSL geïnstalleerd is).
Als je graag een latere versie van Unbound wil draaien, kan je hem in principe zelf compileren zonder al te veel moeite. (niet vergeten het officiële package te verwijderen of in elk geval uit te schakelen, anders is het potentieel gedoe)
# Compileer-spullen installeren indien je die nog niet hebt:
sudo apt install build-essential libssl-dev libexpat1-dev
# Laatste versie van unbound downloaden en uitpakken:
wget http://www.unbound.net/downloads/unbound-latest.tar.gz
tar -xzf unbound-latest.tar.gz
# Configureren, compileren en installeren
cd unbound-<versienummer>
./configure ; make; sudo make install
Het enige waar je dan logischerwijs rekening mee moet houden, is dat de bestanden niet in de OS-standaardlocaties geïnstalleerd zijn. Dus de binary unbound staat nu niet in /usr/sbin, maar in /usr/local/sbin. Of belangrijker. Het configuratiebestand staat dan niet in /etc maar in /usr/local/etc.

Voor de rest zou alles hetzelfde moeten zijn.

N.B. Over het algemeen hebben Linux distributies redenen om software bij bepaalde versies te houden. Meestal is dit om functionele garanties te kunnen stellen. (dus dat je nooit bij een update iets hebt dat niet meer werkt omdat de functionaliteit is veranderd). Ik verwacht alleen dat als je Unbound gebruikt 'omdat het kan' (wat een zeer legitieme reden is voor een Tweaker :) ) dat je er in dit geval dan niet tegen aan zal lopen.

Disclaimer: Ik gebruik zelf geen Unbound (heb er geen gebruik voor), dus ik kan je niet 100% garanderen dat bovenstaande stappen voldoende zijn. (al weet ik het wel redelijkerwijs wel zeker dat het niet meer zou moeten zijn dan dat). Je zal er overigens ook niks mee stuk maken. In het slechtste geval verwijder je de boel weer met make uninstall

Edit:
Bovenstaande stapper kan/moet je herhalen bij iedere update van Unbound. De oude de-installeren is in principe niet nodig bij updates (over het algemeen veranderd er weinig qua bestandenlayout bij updates, maar als je het een prettiger idee vindt, of graag je /usr/local/xxx/ tree schoon houdt, kan je dat natuurlijk altijd doen.

[Reactie gewijzigd door lenwar op 23 juli 2024 00:00]

Die stappen die je beschrijft heb ik doorlopen, maar dan loop ik dus juist tegen de de ssl error aan (Cannot find the SSL libraries in /usr/local/ssl /usr/lib/ssl /usr/ssl /usr/pkg /usr/local /opt/local /usr/sfw /usr).

Ik heb al geprobeerd om "aan te wijzen" waar ssl staat (./configure --with-ssl=/usr/bin/openssl) maar dat maakt weinig indruk: alleen de foutmelding wordt iets korter: Cannot find the SSL libraries in /usr/bin/openssl

Er lijken dus libraries te ontbreken, maar welke en hoe krijg ik die alsnog geïnstalleerd?
Als ik me niet vergis komt die foutmelding tijdens het compileren? (de 'make'-stap). Je mist dan waarschijnlijk het openssl development package. Dus die moet je dan eerst installeren. Die zal denk ik iets van libssl-dev heten bij Debian-achtige-distro's. (ben zelf meer een RedHat man, dus mogelijk heet hij net anders :) )

Als hij de fout geeft tijdens het opstarten van de binary, dan kan je met ldd kijken welke libraries hij mist.

Je kan met ldd (list dynamic dependencies (ofzo) ) zien welke libraries hij niet kan vinden. Dus in de trent van:
ldd /usr/local/bin/unbound #(of waar hij unbound ook precies zet)
Dan zie je de 'naam' van de libraries die hij wil gebruiken bij het opstarten en ook welke hij niet kan vinden.

Vervolgens kan je met apt-file het betreffende package vinden waar het bestand in staat
apt-file search <librarybestandsnaam>
(mogelijk moet je apt-file installeren)


Edit: Als je er niet uit komt, stuur even een PM. Dan hoeven de rest er niet mee te vervelen ;-)

[Reactie gewijzigd door lenwar op 23 juli 2024 00:00]

Die libssl had ik al naar gezocht. Ik zag dat op de Pi4 libssl 1.0.2q en de libssl 1.1.0 geïnstalleerd waren, terwijl op de Pi3b (waar unbound dus niet op wil installeren) alleen de laatste van de twee geïnstalleerd was.

LDD is een goede tip, daar ga ik mee aan de slag!
Dank voor je hulp zover, als het nodig is meld ik me wel :)
Dat is normaal bij Debian (wat Raspbian basically is). Kun je omheen werken met bijvoorbeeld Docker.
Docker maakt weinig verschil: het gaat om het besturingssysteem dat draait op de virtuele (want docker) of fysieke (want Raspberry Pi) machine.
Ik heb 2 raspberrie Pi's. De ene (Pi4) heb ik wel handmatig kunnen updaten, de andere (Pi3b) geeft een SSL melding. Daar lijkt dus iets op te ontbreken (libraries?) wat de installatie tegenhoudt.
Als je Docker installeert, dan maakt je Docker image (van Unbound) gebruik van TLS/SSL die meegeleverd wordt met de Docker image, en dus niet native van Raspbian. Het maakt dus wel degelijk verschil.

Op dit item kan niet meer gereageerd worden.