Bind

Bind9:禁用每個區域的 DNSSEC 驗證?

  • May 6, 2021

我正在嘗試使用 Bind9 製作一個僅記憶體/轉發 DNS 伺服器,並預設啟用 DNSSEC 驗證。

假設您從我的配置文件中獲得以下資訊:

acl "home-net"
{
   127.0.0.1;
   ::1;
   192.168.1.0/24;
   2000:db8:cafe:100::/64;
};

options
{
   forwarders
   {
      # Use Google DNS either by IPv6 or IPv4 is fine.
      2001:4860:4860::8888;
      2001:4860:4860::8844;

      8.8.8.8;
      8.8.4.4;
   };

  dnssec-enable yes;
  dnssec-validation auto;

  allow-query { any; };
  allow-query-cache { home-net; };
  allow-recursion { home-net; };
};

zone "subdomain.example.net" {
   type forward;
   forward only;

   forwarders 
   { 
      # SAMBA PDC1 (Active Directory)
      2000:db8:cafe:100::1;
   
      # SAMBA PDC2 (Active Directory)
      2000:db8:cafe:100::2;    
   };
};

據我所理解:

每當我想查找在子域中註冊的主機時subdomain.example.net,名稱伺服器就會聯繫我在區域配置的轉發器部分中列出的兩個 SAMBA PDC 之一。

域名伺服器將依次進行 DNSSEC 驗證,以確保這兩個 SAMBA PDC 實際上被授權回復對域的請求subdomain.example.net

如果來自 SAMBA PDC 的回复無法通過 DNSSEC 驗證,則名稱伺服器將轉向 Google DNS 並詢問他們是否可以提供經過 D​​NSSEC 驗證的響應。

現在問題來了:

據我了解,無論是通過使用 SAMBA INTERNAL_DNS 還是通過 BIND9_DLZ,在 SAMBA 中都沒有 DNSSEC 支持,因此您永遠無法對 SAMBA 維護的任何區域進行 DNSSEC 驗證。

據我了解有3個選項:

  • 全域禁用 DNSSEC 驗證。
  • 使用負信任錨。
  • 使用“驗證除外”選項。

我會一一處理。

禁用 DNSSEC

在我的書中,這不是一個真正的選擇。它基本上將您的設置減少到“在全球範圍內工作”……除了您在世界的某個小角落,所以最好一起禁用它。

只需將dnssec-enable和的值更改為dnssec-validation即可no

在我可以再次啟動 DNSSEC 之前,我只會將其用作臨時修復。

使用負信任錨

首先,我的興趣達到了頂峰。這個想法是您註冊一個特殊的加密密鑰,rndc然後它不會對您想要的域進行任何 DNSSEC 驗證。

然而,這是一個臨時修復,因為密鑰的生命週期最多為一周

這意味著您必須執行與 Let’s Encrypt 中的證書相同類型的資源 - 只是需要更頻繁地觸發 cron 作業。

使用 ‘validate-except’ 選項

從理論上講,這應該是所有解決方案中最簡單的。

我只需要添加一個新部分即可options呼叫validate-except

像這樣:

options
{

  dnssec-enable yes;
  dnssec-validation auto;

  validate-except
  {
      "subdomain.example.net";
      "another.example.net";
  };
};

聽起來很簡單——對吧?:-)

…除了我的名稱伺服器由於“未知選項 - 驗證除外”而沒有啟動。

編輯:原來 Raspberry OS 使用 Bind 版本 9.11 而該validate-except選項僅在 Bind 版本 9.13 中實現

作為參考,用於 Raspberry 的 Ubuntu 20.04 使用 Bind 版本 9.16。


那麼有沒有人有關於 DNSSEC 的混合模式設置的經驗?

…或者最簡單的解決方案是承認失敗並安裝 Ubuntu 20.04?:-)

不知道這是否仍然很熱門,但我認為使 BIND 配置複雜化會導致大量無償工作時間與伺服器作鬥爭。儘管您沒有列出系統的規格,但如果可以選擇,最好徹底檢查並完成它。這種配置最難的部分是為簡單而戰。最簡單的選擇是讓一切都“正常工作”,所以……使用 Ubuntu 20.04 LTS。就您的 SAMBA 配置而言,(同樣,不知道您的規格)與 20.04 一起使用允許您輕鬆使用 BIND DLZ,甚至還有 dhcpd 更新。如果有硬體方面的考慮,ubuntu 伺服器的可用配置最少,對系統資源的額外影響也很小。

用於 Rpi 的 Ubuntu 20.04 LTS

關於 Ubuntu 核心

MagPi:建構 RasPi SAMBA 伺服器

Matthias Kerstner:在 Raspberry Pi 3 上使用 Samba 4 設置 Active Directory 域控制器

手動安裝 BIND

引用自:https://serverfault.com/questions/1058501