發布 BIND DNS 伺服器 9.18.0,支援 DNS-over-TLS 和 DNS-over-HTTPS

經過兩年的開發,ISC 聯盟發布了 BIND 9.18 DNS 伺服器主要新分支的第一個穩定版本。 作為延長支援週期的一部分,對分支 9.18 的支援將提供三年,直至 2 年第二季。 對 2025 分支的支持將於 9.11 月結束,對 9.16 分支的支持將於 2023 年中期結束。 為了開發 BIND 的下一個穩定版本的功能,已經形成了一個實驗分支 BIND 9.19.0。

BIND 9.18.0 的發布值得注意的是實現了對 DNS over HTTPS(DoH,DNS over HTTPS)和 DNS over TLS(DoT,DNS over TLS)以及 XoT(XFR-over-TLS)機制的支援用於安全傳輸DNS 內容。伺服器之間的區域(支援透過XoT 發送和接收區域)。 透過適當的設置,單一命名程序現在不僅可以服務傳統的 DNS 查詢,還可以服務使用 DNS-over-HTTPS 和 DNS-over-TLS 發送的查詢。 dig 實用程式內建了對 DNS-over-TLS 的用戶端支持,當指定「+tls」標誌時,該實用程式可用於透過 TLS 發送請求。

DoH 中使用的 HTTP/2 協定的實作是基於 nghttp2 函式庫的使用,該函式庫作為可選的組件相依性包含在內。 DoH 和 DoT 的憑證可以由使用者提供或在啟動時自動產生。

透過將「http」和「tls」選項新增至listen-on指令中,可以啟用使用DoH和DoT的請求處理。 要支援未加密的 DNS-over-HTTP,您應該在設定中指定「tls none」。 鍵在“tls”部分中定義。 DoT 的預設網路連接埠 853、DoH 的預設網路連接埠 443 以及 DNS-over-HTTP 的 80 可透過 tls-port、https-port 和 http-port 參數覆寫。 例如:

tls local-tls { 金鑰檔案“/path/to/priv_key.pem”; 證書檔案“/path/to/cert_chain.pem”; }; http local-http-server { 端點 { “/dns-query”; }; }; 選項 { https-連接埠 443; 監聽埠 443 tls local-tls http myserver {any;}; }

BIND 中DoH 實現的功能之一是能夠將TLS 的加密操作移至另一台伺服器,這在TLS 憑證儲存在另一個系統上(例如,在具有Web 伺服器的基礎架構中)並維護的情況下可能是必要的由其他人員。 實現對未加密 DNS-over-HTTP 的支援是為了簡化偵錯,並作為轉送到內部網路上另一台伺服器的層(用於將加密移至單獨的伺服器)。 在遠端伺服器上,nginx 可用於產生 TLS 流量,類似於為網站組織 HTTPS 綁定的方式。

另一個功能是將 DoH 集成為通用傳輸,它不僅可以用於處理客戶端對解析器的請求,還可以在伺服器之間通訊、透過權威 DNS 伺服器傳輸區域以及處理其他 DNS 支援的任何查詢時使用運輸。

在可以透過停用 DoH/DoT 建置或將加密移至另一台伺服器來彌補的缺點中,程式碼庫的一般複雜性很突出 - 新增了內建 HTTP 伺服器和 TLS 庫,這可能包含漏洞並充當額外的攻擊媒介。 此外,使用 DoH 時,流量會增加。

讓我們回想一下,DNS-over-HTTPS 可用於防止透過提供者的 DNS 伺服器洩漏有關所請求主機名稱的資訊、打擊 MITM 攻擊和 DNS 流量欺騙(例如,在連接到公共 Wi-Fi 時)、反擊在DNS 等級進行封鎖(DNS-over-HTTPS 無法取代VPN 來繞過在DPI 層級實施的封鎖)或在無法直接存取DNS 伺服器時(例如,透過代理程式工作時)組織工作。 如果在正常情況下 DNS 請求直接傳送到系統設定中定義的 DNS 伺服器,那麼在 DNS-over-HTTPS 的情況下,確定主機 IP 位址的請求將封裝在 HTTPS 流量中並傳送到 HTTP 伺服器,其中解析器透過Web API 處理請求。

「DNS over TLS」與「DNS over HTTPS」的不同之處在於使用標準DNS 協定(通常使用網路連接埠853),封裝在使用TLS 協定組織的加密通訊通道中,並透過經過認證的TLS/SSL 憑證進行主機有效性檢查由認證機構。 現有的DNSSEC標準僅使用加密來驗證客戶端和伺服器,但不能保護流量不被攔截,也不能保證請求的機密性。

其他一些創新:

  • 新增了 tcp-receive-buffer、tcp-send-buffer、udp-receive-buffer 和 udp-send-buffer 設置,以設定透過 TCP 和 UDP 發送和接收請求時使用的緩衝區大小。 在繁忙的伺服器上,增加傳入緩衝區將有助於避免資料包在流量高峰期間被丟棄,而減少傳入緩衝區將有助於消除舊請求造成的記憶體堵塞。
  • 新增了新的日誌類別“rpz-passthru”,讓您可以單獨記錄 RPZ(回應策略區域)轉發操作。
  • 在回應策略部分中,新增了「nsdname-wait-recurse」選項,當設定為「no」時,僅當為請求找到快取中存在的權威名稱伺服器時才套用 RPZ NSDNAME 規則,否則RPZ NSDNAME 規則將會被忽略,但資訊會在背景檢索並套用於後續請求。
  • 對於 HTTPS 和 SVCB 類型的記錄,已實作「ADDITIONAL」部分的處理。
  • 新增了自訂更新策略規則類型 - krb5-subdomain-self-rhs 和 ms-subdomain-self-rhs,可讓您限制 SRV 和 PTR 記錄的更新。 更新策略區塊還新增了對每種類型單獨設定記錄數量限制的功能。
  • 在 dig 公用程式的輸出中加入了有關傳輸協定(UDP、TCP、TLS、HTTPS)和 DNS64 前綴的資訊。 出於偵錯目的,dig 新增了指定特定請求識別碼的功能 (dig +qid= )。
  • 新增了對 OpenSSL 3.0 庫的支援。
  • 為了解決處理 2020 年 DNS Flag Day 確定的大型 DNS 訊息時的 IP 碎片問題,在沒有對請求的回應時調整 EDNS 緩衝區大小的程式碼已從解析器中刪除。 對於所有傳出請求,EDNS 緩衝區大小現在都設定為常數 (edns-udp-size)。
  • 建置系統已切換為使用 autoconf、automake 和 libtool 的組合。
  • 對「地圖」格式(主文件格式地圖)區域文件的支援已停止。 建議使用此格式的使用者使用named-compilezone 實用程式將區域轉換為原始格式。
  • 對舊版 DLZ(動態可載入區域)驅動程式的支援已停止,並由 DLZ 模組取代。
  • 對 Windows 平台的建置和運行支援已停止。 最後一個可以在 Windows 上安裝的分支是 BIND 9.16。

來源: opennet.ru

添加評論