这是我正在尝试做的事情:
使用 TSIG 验证 DNS 事务:查询和响应。
我知道 TSIG 通常在两台主机之间用于安全区域传输。但是,我正在尝试使用 TSIG 验证来自我的客户的简单查询。我使用工具在服务器上生成了一个私钥dnssec-gen
,然后在客户端将一条 TSIG 记录附加到传出的 DNS 查询消息中。
我不确定如何启用 BIND 服务器来验证传入查询的 TSIG RR。我刚刚在named.conf
文件中添加了一个与客户端签名的 TSIG RR 匹配的密钥配置。当我在服务器端收到 TSIG 签名的 DNS 查询时,会显示以下错误消息:
请求的签名无效:TSIG mytsigkey: tsig verify failure (BADSIG)
但是,我强烈认为我生成并附加到 DNS 查询记录的 MAC 是正确的(我使用 Slavasoft HMAC 计算器验证了它)。我不确定我是否遗漏了named.conf
文件中的任何内容。
下面是配置。任何输入都受到高度赞赏。
key "mytsigkey" {
algorithm hmac-md5;
secret "AsZN6W/8HJiHoFFaLh/4xg==";
};
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { any; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query {any ;};
recursion yes;
allow-transfer {key test_tsig.com;};
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
};