Utgivelse av DNS-server BIND 9.18.0 med støtte for DNS-over-TLS og DNS-over-HTTPS

Etter to års utvikling har konsortiet ISC presentert den første stabile utgaven av den betydelige nytt versjonen av DNS-serveren BIND 9.18. Støtten for versjonen 9.18 vil være tilgjengelig i tre år frem til 2. kvartal 2025 som en del av den utvidede støtte syklusen. Støtten for versjonen 9.11 vil opphøre i mars, og for versjonen 9.16 i midten av 2023. For å utvikle funksjonaliteten i den neste stabile versjonen av BIND, er det dannet en eksperimentell versjon BIND 9.19.0.

Utgivelsen av BIND 9.18.0 er merkverdig for implementeringen av støtte for teknologiene "DNS over HTTPS" (DoH, DNS over HTTPS) og DNS over TLS (DoT, DNS over TLS), samt mekanismen XoT (XFR-over-TLS) for sikker overføring av DNS-sonens innhold mellom servere (støtte for både sending og mottak av soner via XoT). Med de riktige innstillingene kan en named-prosess nå håndtere ikke bare tradisjonelle DNS-forespørsel, men også forespørsel sendt ved hjelp av DNS-over-HTTPS og DNS-over-TLS. Klientstøtte for DNS-over-TLS er innebygd i verktøyet dig, som kan brukes til å sende forespørsel over TLS ved å angi flagget " +tls ".

Implementeringen av protokollen HTTP/2, som brukes i DoH, er basert på bruk av biblioteket nghttp2, som er inkludert blant de valgfrie byggeavhengighetene. Sertifikater for DoH og DoT kan leveres av brukeren eller genereres automatisk ved oppstart.

Behandling av forespørsel med DoH og DoT aktiveres ved å legge til alternativene "http" og "tls" i listen-direktivet. For å støtte ukryptert DNS-over-HTTP, må innstillingene angi "tls none". Nøklene defineres i "tls"-seksjonen. De standard nettverksportene 853 for DoT, 443 for DoH og 80 for DNS-over-HTTP kan overstyres via parametrene tls-port, https-port og http-port. For eksempel:

tls local-tls { key-file "/path/to/priv_key.pem"; cert-file "/path/to/cert_chain.pem"; }; http local-http-server { endpoints { "/dns-query"; }; }; options { https-port 443; listen-on port 443 tls local-tls http myserver {any;}; }

En implementeringen av DoH i BIND er det mulighet for å flytte TLS-krypteringsoperasjoner til en annen server, noe som kan være nødvendig i situasjoner der TLS-sertifikatene lagres på et annet system (for eksempel i en infrastruktur med webservere) og håndteres av annet personale. Støtte for ukryptert DNS-over-HTTP er implementert for å forenkle feilsøking og som et nivå for å videresende til en annen server i det interne nettverket (for å flytte krypteringen til en egen server). På den eksterne serveren kan nginx brukes for å lage TLS-trafikk, på samme måte som HTTPS-bindingen for nettsteder organiseres.

En annen funksjon er integrasjonen av DoH som et felles transportmiddel, som kan brukes ikke bare til å håndtere forespørslene fra klienter til resolveren, men også ved datautveksling mellom servere, ved overføring av soner av den autoritative DNS-serveren og ved håndtering av enhver forespørsel støttet av andre DNS-transporter.

Ulempene, som kan kompenseres ved å deaktivere bygningen med DoH/DoT eller ved å flytte krypteringen til en annen server, inkluderer en generell komplisering av kodebasen - en innebygd HTTP-server og TLS-bibliotek legges til, som potensielt kan inneholde sårbarheter og utgjøre ekstra angrepsvektorer. I tillegg øker trafikken når DoH brukes.

La oss minne om at DNS-over-HTTPS kan være nyttig for å hindre lekkasje av informasjon om etterspurte vertsnavn gjennom DNS-servere fra leverandører, bekjempe MITM-angrep og forfalskning av DNS-trafikk (for eksempel når man kobler til offentlig Wi-Fi), motvirke blokker på DNS-nivå (DNS-over-HTTPS kan ikke erstatte VPN i forhold til å omgå blokker som er implementert på DPI-nivå) eller for å organisere arbeid når direkte tilgang til DNS-servere ikke er mulig (for eksempel ved bruk av proxy). Hvis DNS-forespørslene vanligvis sendes direkte til systemkonfigurerte DNS-servere, så i tilfelle av DNS-over-HTTPS innkapsles forespørselen om å bestemme IP-adresser vertsnavnet i HTTPS-trafikken og sendes til en HTTP-server, hvor resolveren behandler forespørslene via Web API.

«DNS over TLS» skiller seg fra «DNS over HTTPS» ved å bruke standard DNS-protokoll (vanligvis benytter den nettverksport 853), innpakket i en kryptert kommunikasjonskanal opprettet ved hjelp av TLS-protokollen med validitetskontroll av vertsnavn via TLS/SSL-sertifikater sertifisert av en sertifiseringsmyndighet. Den eksisterende standarden DNSSEC bruker kryptering kun for autentisering av klienten og serveren, men beskytter ikke trafikken mot avlytting og garanterer ikke konfidensialitet av forespørslene.

Noen andre nyheter:

  • Nye innstillinger for tcp-receive-buffer, tcp-send-buffer, udp-receive-buffer og udp-send-buffer er lagt til for å angi størrelsen på buffere som brukes ved sending og mottak av forespørselene over TCP og UDP. På belastede servere vil økningen av inngående buffere bidra til å unngå pakkeavvisning i perioder med topp trafikk, mens reduksjon vil hjelpe med å fjerne opphopning av gamle forespørsel i minnet.
  • En ny loggkategori «rpz-passthru» er lagt til, som gjør det mulig å journalføre handlingene ved videresending av RPZ (Response Policy Zones) separat.
  • I seksjonen for response-policy er alternativet «nsdname-wait-recurse» lagt til, som når det er satt til «nei», betyr at RPZ-regler for NSDNAME kun gjelder hvis forespørselen finner autoritative servere i cachen, ellers ignoreres RPZ-reglene for NSDNAME, men informasjonen hentes i bakgrunnen og brukes til påfølgende forespørsel.
  • For poster med typene HTTPS og SVCB er håndtering av seksjonen «ADDITIONAL» implementert.
  • Legg til tilpassede typeoppdateringsregler — krb5-subdomain-self-rhs og ms-subdomain-self-rhs, som gjør det mulig å begrense oppdatering av SRV- og PTR-poster. I blokkene for oppdateringsregler er det også lagt til mulighet for å sette begrensninger på antall poster, spesifik for hver type.
  • Utdataene fra verktøyet dig har fått tillegg av informasjon om transportprotokoll (UDP, TCP, TLS, HTTPS) og DNS64-prefikser. For feilsøkingsformål er det blitt lagt til mulighet for å spesifisere et bestemt forespørsel-ID (dig +qid=).
  • Støtte for OpenSSL-bibliotek 3.0 har blitt lagt til.
  • For å løse problemer med IP-fragmentering ved behandling av store DNS-meldinger, merket med DNS Flag Day 2020-initiativen, er koden som justerer EDNS-bufferstørrelsen fjernet fra resolveren i tilfelle det ikke kom svar på forespørselen. EDNS-bufferstørrelsen settes nå til en konstant (edns-udp-size) for alle utgående forespørslene.
  • Bygningssystemet har blitt overført til å bruke en kombinasjon av autoconf, automake og libtool.
  • Støtten for sonefiler i 'map'-format (masterfile-format map) er opphørt. Brukere av dette formatet anbefales å konvertere soner til raw-format ved hjelp av verktøyet named-compilezone.
  • Støtten for gamle DLZ-drivere (Dynamically Loadable Zones) er opphørt, og de har blitt erstatte av DLZ-moduler.
  • Støtten for bygging og kjøring på Windows-plattformen er opphørt. Den siste grenen som kan installeres på Windows er BIND 9.16.

Kilde: opennet.ru

Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere 🔥 Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere | ProHoster