AprÚs deux ans de développement, le consortium ISC a présenté le premier relùchement stable de la nouvelle version majeure du serveur DNS BIND 9.18. Le support de la version 9.18 sera assuré pendant trois ans jusqu'au deuxiÚme trimestre 2025 dans le cadre d'un cycle de maintenance prolongé. Le support de la version 9.11 prendra fin en mars, et celui de la version 9.16 au milieu de l'année 2023. Pour le développement des fonctionnalités de la prochaine version stable de BIND, une branche expérimentale BIND 9.19.0 a été formée.
La sortie de BIND 9.18.0 se distingue par la mise en Ćuvre du support des technologies « DNS over HTTPS » (DoH, DNS sur HTTPS) et DNS over TLS (DoT, DNS sur TLS), ainsi que du mĂ©canisme XoT (XFR-over-TLS) pour le transfert sĂ©curisĂ© du contenu des zones DNS entre les serveurs (supportĂ© Ă la fois pour l'envoi et la rĂ©ception de zones via XoT). Avec les configurations appropriĂ©es, un processus nommĂ© peut dĂ©sormais traiter non seulement des requĂȘtes DNS traditionnelles, mais aussi des requĂȘtes envoyĂ©es via DNS-over-HTTPS et DNS-over-TLS. Le support client pour DNS-over-TLS est intĂ©grĂ© dans l'utilitaire dig, qui peut ĂȘtre utilisĂ© pour envoyer des requĂȘtes via TLS en spĂ©cifiant le drapeau « +tls ».
L'implĂ©mentation du protocole HTTP/2, utilisĂ© dans DoH, repose sur la bibliothĂšque nghttp2, qui fait partie des dĂ©pendances de construction facultatives. Les certificats pour DoH et DoT peuvent ĂȘtre fournis par l'utilisateur ou gĂ©nĂ©rĂ©s automatiquement au moment du dĂ©marrage.
Le traitement des requĂȘtes utilisant DoH et DoT s'active en ajoutant les options « http » et « tls » dans la directive listen-on. Pour prendre en charge le DNS sur HTTP non chiffrĂ©, il faut spĂ©cifier « tls none » dans les configurations. Les clĂ©s sont dĂ©finies dans la section « tls ». Les ports rĂ©seau standards 853 pour DoT, 443 pour DoH et 80 pour DNS-over-HTTP peuvent ĂȘtre redĂ©finis via les paramĂštres tls-port, https-port et http-port. Par exemple :
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;}; }
Parmi les caractĂ©ristiques de l'implĂ©mentation de DoH dans BIND, il convient de noter la possibilitĂ© de dĂ©placer les opĂ©rations de chiffrement pour TLS vers un autre serveur, ce qui peut ĂȘtre nĂ©cessaire lorsque le stockage des certificats TLS est effectuĂ© sur un autre systĂšme (par exemple, dans une infrastructure avec des serveurs web) et gĂ©rĂ© par un autre personnel. Le support DNS-over-HTTP non chiffrĂ© est mis en Ćuvre pour simplifier le dĂ©bogage et comme niveau pour le transfert vers un autre serveur dans le rĂ©seau interne (pour dĂ©charger le chiffrement sur un serveur distinct). Un serveur externe, tel que nginx, peut ĂȘtre utilisĂ© pour le trafic TLS, analogiquement Ă la maniĂšre dont le binding HTTPS pour les sites est organisĂ©.
Une autre caractĂ©ristique est l'intĂ©gration de DoH en tant que transport commun, qui peut ĂȘtre appliquĂ© non seulement pour le traitement des requĂȘtes des clients vers le rĂ©solveur, mais aussi lors de l'Ă©change de donnĂ©es entre serveurs, lors du transfert de zones par les serveurs DNS autorisĂ©s et lors du traitement de toute demande prise en charge par d'autres transports DNS.
Les inconvĂ©nients, qui peuvent ĂȘtre compensĂ©s par la dĂ©sactivation de la compilation avec DoH/DoT ou le dĂ©placement du chiffrement vers un autre serveur, comprennent la complexitĂ© gĂ©nĂ©rale du code â l'ajout d'un serveur HTTP intĂ©grĂ© et d'une bibliothĂšque TLS, qui peuvent potentiellement contenir des vulnĂ©rabilitĂ©s et devenir des vecteurs d'attaque supplĂ©mentaires. De plus, l'utilisation de DoH augmente le trafic.
Rappelons que DNS-over-HTTPS peut ĂȘtre utile pour Ă©viter les fuites d'informations concernant les noms d'hĂŽtes demandĂ©s par les serveurs DNS des fournisseurs, lutter contre les attaques MITM et la substitution de trafic DNS (par exemple, lorsque vous vous connectez Ă un Wi-Fi public), et contrer les blocages au niveau DNS (DNS-over-HTTPS ne peut pas remplacer VPN les mĂ©thodes de contournement des blocages mises en Ćuvre au niveau DPI) ou pour organiser le travail en cas d'incapacitĂ© Ă se connecter directement aux serveurs DNS (par exemple, lors d'un travail via un proxy). Dans une situation normale, les requĂȘtes DNS sont envoyĂ©es directement aux serveurs DNS spĂ©cifiĂ©s dans la configuration du systĂšme, mais dans le cas de DNS-over-HTTPS, la requĂȘte pour la dĂ©termination adresses IP de l'hĂŽte est encapsulĂ©e dans le trafic HTTPS et envoyĂ©e Ă un serveur HTTP, sur lequel le rĂ©solveur traite les requĂȘtes via une API Web.
"DNS over TLS" se distingue de "DNS over HTTPS" par l'utilisation du protocole DNS standard (utilisant gĂ©nĂ©ralement le port rĂ©seau 853), encapsulĂ© dans un canal de communication chiffrĂ© organisĂ© par le protocole TLS, avec vĂ©rification de la validitĂ© de l'hĂŽte Ă travers des certificats TLS/SSL signĂ©s par une autoritĂ© de certification. La norme DNSSEC existante utilise le chiffrement uniquement pour l'authentification du client et du serveur, mais ne protĂšge pas le trafic contre l'interception et ne garantit pas la confidentialitĂ© des requĂȘtes.
Quelques autres nouveautés :
- Des paramĂštres tcp-receive-buffer, tcp-send-buffer, udp-receive-buffer et udp-send-buffer ont Ă©tĂ© ajoutĂ©s pour dĂ©finir les tailles des tampons utilisĂ©s lors de l'envoi et de la rĂ©ception de requĂȘtes par TCP et UDP. Sur les serveurs chargĂ©s, l'augmentation des tampons entrants permettra d'Ă©viter la perte de paquets pendant les pics de trafic, tandis que la rĂ©duction aidera Ă Ă©viter l'encombrement de la mĂ©moire par des requĂȘtes anciennes.
- Une nouvelle catégorie de logs «rpz-passthru» a été ajoutée, permettant de journaliser séparément les actions de transfert des RPZ (Response Policy Zones).
- Dans la section response-policy, une option «nsdname-wait-recurse» a Ă©tĂ© ajoutĂ©e, qui, lorsqu'elle est dĂ©finie sur «no», applique les rĂšgles RPZ NSDNAME uniquement si des serveurs de noms autorisĂ©s prĂ©sents dans le cache sont trouvĂ©s pour la requĂȘte ; sinon, la rĂšgle RPZ NSDNAME est ignorĂ©e, mais les informations sont extraites en arriĂšre-plan et appliquĂ©es aux requĂȘtes suivantes.
- Pour les enregistrements de types HTTPS et SVCB, le traitement de la section «ADDITIONAL» a Ă©tĂ© mis en Ćuvre.
- Des types de rĂšgles update-policy personnalisĂ©es â krb5-subdomain-self-rhs et ms-subdomain-self-rhs â ont Ă©tĂ© ajoutĂ©s, permettant de restreindre la mise Ă jour des enregistrements SRV et PTR. Dans les blocs update-policy, il est dĂ©sormais possible de dĂ©finir des limites sur le nombre d'enregistrements, spĂ©cifiques Ă chaque type.
- La sortie de l'utilitaire dig a Ă©tĂ© enrichie d'informations sur le protocole de transport (UDP, TCP, TLS, HTTPS) et les prĂ©fixes DNS64. Pour les besoins de dĂ©bogage, dig a Ă©tĂ© modifiĂ© pour permettre la spĂ©cification d'un identifiant de requĂȘte spĂ©cifique (dig +qid=).
- La prise en charge de la bibliothÚque OpenSSL 3.0 a été ajoutée.
- Pour rĂ©soudre les problĂšmes de fragmentation IP lors du traitement des messages DNS de grande taille, comme indiquĂ© par l'initiative DNS Flag Day 2020, le code responsable de l'ajustement de la taille du tampon EDNS a Ă©tĂ© supprimĂ© du rĂ©solveur en l'absence de rĂ©ponse Ă la requĂȘte. La taille du tampon EDNS est dĂ©sormais fixĂ©e de maniĂšre constante (edns-udp-size) pour toutes les requĂȘtes sortantes.
- Le systÚme de construction a été mis à jour pour utiliser le trio autoconf, automake et libtool.
- La prise en charge des fichiers de zone au format « map » (masterfile-format map) a été abandonnée. Les utilisateurs de ce format sont invités à convertir leurs zones au format raw à l'aide de l'utilitaire named-compilezone.
- La prise en charge des anciens pilotes DLZ (Dynamically Loadable Zones) a été abandonnée, remplacée par des modules DLZ.
- La construction et l'exĂ©cution pour la plateforme Windows ont Ă©tĂ© abandonnĂ©es. La derniĂšre version pouvant ĂȘtre installĂ©e sous Windows reste BIND 9.16.
Source : opennet.ru
