使用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";
};