验证 DNS 查询

验证 DNS 查询

有没有办法将 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” 部分) 与远程服务器通信。当请求发送到远程服务器时,将使用此处指定的密钥生成请求签名并附加到消息中。来自远程服务器的请求不需要使用此密钥签名。

目前仅支持每个服务器一个密钥。

相关内容