Cover Image

DNS over TLS/HTTPS med Unbound

 Sat 2023-03-04    DNS

Tidligere satt jeg opp Unbound som lokal DNS-server med split horizon og full pakke. Den gangen spesifiserte jeg Mullvads private, no-log DNS-server som forwarder, men tidligere i år annonserte Mullvad at de ikke lenger kommer til å ha denne serveren operativ. Alternativet deres var å gå over til DoT og/eller DoH - DNS over TLS eller HTTPS.

Jeg prøvde i det lengste å utsette denne overgangen siden alt jeg leste om det virket veldig komplisert, men til slutt var jeg rett og slett nødt fordi forwarderen til Mullvad forsvant av nettet.

Rask recap av oppsettet:

  • FreeBSD
  • Unbound med python-støtte og ub-split-map

Dette er fremgangsmåten:

  1. cd /usr/ports/dns/unbound ; make config
    +--------------------------- unbound-1.17.1_2 -----------------------------+
    +--------------------------------------------------------------------------+
    ≠ [ ] DEP-RSA1024   Deprecate the use of RSA 1024 keys                     ≠
    ≠ [ ] DNSCRYPT      Enable dnscrypt support                                ≠
    ≠ [ ] DNSTAP        Enable dnstap logging support                          ≠
    ≠ [x] DOCS          Build and/or install documentation                     ≠
    ≠ [x] DOH           Enable DNS-over-HTTPS support                          ≠
    ≠ [x] DYNLIB        Enable support for dynamic (shared) 3rd-party libraries≠
    ≠ [x] ECDSA         Enable ECDSA (elliptic curve) support (OpenSSL >= 1.0) ≠
    ≠ [ ] EVAPI         (Experimental) pluggable event based libunbound API sup≠
    ≠ [ ] FILTER_AAAA   Build with AAAA filter functionality (contrib)         ≠
    ≠ [x] GOST          Enable GOST support (requires OpenSSL >= 1.0)          ≠
    ≠ [ ] HIREDIS       Enable hiredis support for the cachedb module          ≠
    ≠ [x] LIBEVENT      Build against libevent                                 ≠
    ≠ [ ] MUNIN_PLUGIN  Install Munin plugin                                   ≠
    ≠ [x] PYTHON        Python bindings or support                             ≠
    ≠ [x] SUBNET        Enable client subnet support                           ≠
    ≠ [ ] TFOCL         Enable TCP Fast Open for client mode                   ≠
    ≠ [ ] TFOSE         Enable TCP Fast Open for server mode                   ≠
    ≠ [x] THREADS       Threading support                                      ≠
    +--------------------------------------------------------------------------+
    +--------------------------------------------------------------------------+
    ≠                     <  OK  >            <Cancel>                         ≠
    +--------------------------------------------------------------------------+
  2. Enable støtte for "DOH"
  3. make deinstall reinstall
  4. service unbound restart
  5. vim /usr/local/etc/unbound/unbound.conf
  6. Legg inn følgende linje under "server:-seksjonen:
    1. tls-cert-bundle: "/usr/local/share/certs/ca-root-nss.crt"
    2. Endre "forward-zone: fra hva den er satt opp til nå, til:
      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#doh.mullvad.net
  7. Lagre filen og start unbound på nytt enda en gang og du har en DNS-server som snakker med (i dette tilfellet) Mullvads upstream forwarder over DoT.