有没有办法将 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 服务器配置为在其转发到上游服务器的所有查询中使用特定密钥?
谢谢。
答案1
为了测试目的,您只需使用dig -k ...
或即可dig -y ...
。
对于客户端计算机来说,直接执行此操作,我认为不可行。我不知道有任何操作系统具有实际执行 TSIG 签名的存根解析器。
但是,可以有一个使用 TSIG 来签署转发查询的转发名称服务器。
您可以做这样的事情(可能在两端,取决于具体情况):
key trusted-key {
algorithm HMAC-SHA256;
secret "x";
};
server 192.0.2.1 {
keys { trusted-key.; };
};
这将导致 BIND 始终使用指定的密钥对其他服务器(由 IP 标识)签署查询。
来自server
手册中的部分:
这键条款确定了密钥 ID由密钥语句定义,用于交易安全(TSIG,“TSIG” 部分) 与远程服务器通信。当请求发送到远程服务器时,将使用此处指定的密钥生成请求签名并附加到消息中。来自远程服务器的请求不需要使用此密钥签名。
目前仅支持每个服务器一个密钥。