Domain-Name-System

驗證 DNS 查詢

  • December 31, 2018

有沒有辦法將 TSIG(或其他)密鑰與 DNS 查詢結合使用來驗證到 DNS 視圖以用於遞歸?就像是:

key trusted-key {
   algorithm HMAC-SHA256;
   secret "blonggggg";
};

acl trusted { key trusted-key; };

view trusted {
   match-clients { trusted; };
   allow-recursion { any; };
};

如果是這樣,查詢客戶端將如何指定用於身份驗證的密鑰?如果可以保證查詢始終來自為分支機構提供本地記憶體 DNS 的下游 DNS 伺服器,該怎麼辦?下游 DNS 伺服器是否可以配置為使用特定密鑰來處理它轉發到上游伺服器的所有查詢?

謝謝。

出於測試目的,您可以只使用dig -k ...or dig -y ...

對於客戶端機器直接執行此操作,我認為這是不可行的。我不知道任何具有實際執行 TSIG 簽名的存根解析器的作業系統。

但是,可以有一個轉發名稱伺服器,它使用 TSIG 對轉發的查詢進行簽名。

你可以做這樣的事情(可能在兩端,取決於場景):

key trusted-key {
   algorithm HMAC-SHA256;
   secret "x";
};

server 192.0.2.1 {
   keys { trusted-key.; };
};

這將導致 BIND 始終使用指定的密鑰對其他伺服器(由 IP 標識)的查詢進行簽名。

server手冊中的部分

keys子句標識由 key 語句定義的key_id **,**用於在與遠端伺服器通信時用於事務安全(TSIG,稱為“TSIG”的部分)。當請求發送到遠端伺服器時,將使用此處指定的密鑰生成請求籤名並附加到消息中。來自遠端伺服器的請求不需要使用此密鑰進行簽名。

目前僅支持每個伺服器一個密鑰。

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